> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rallyuxr.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Send an incentive to study participants

> Sends a standard (money / gift card) incentive to one or more study participants, mirroring the manual "Send Incentive" action in Rally. Larger sends are processed asynchronously.



## OpenAPI

````yaml https://api.rallyuxr.com/api/openapi post /incentives
openapi: 3.1.0
info:
  title: Rally UXR Developer Docs
  version: '1.0'
servers:
  - url: https://api.rallyuxr.com/api/public/v1
security:
  - bearerAuth: []
tags:
  - name: Forms
    description: Operations on Forms in your workspace
  - name: People
    description: Operations on Person's stored in your workspace
  - name: Person Properties
    description: Operations on workspace level Person Properties
  - name: Populations
    description: Operations on Populations in your workspace
  - name: Segments
    description: Operations on Segments in your workspace
  - name: Studies
    description: Operations on Studies in your workspace
  - name: Participants
    description: Operations on Participants in studies
  - name: Participant Status Events
    description: Poll participant status-change events across your workspace
  - name: Study Status Events
    description: Poll-based access to study status-change events in your workspace
  - name: Screener
    description: Operations on a study's screener
  - name: Consent Submissions
    description: Operations on Consent Submissions for studies
  - name: Incentives
    description: Operations on Incentives in your workspace
  - name: Messages
    description: Operations on Message activities in your workspace
  - name: Imports
    description: Operations on Imports in your workspace
  - name: Users
    description: Operations on Workspace Users
  - name: Teams
    description: Operations on Teams in your workspace
  - name: Backfills
    description: >-
      Routes that can be used to backfill data into Rally. If you'd like access
      to these apis, please reach out to your Customer Success rep
  - name: Person
    description: Deprecated, use People
paths:
  /incentives:
    post:
      tags:
        - Incentives
      summary: Send an incentive to study participants
      description: >-
        Sends a standard (money / gift card) incentive to one or more study
        participants, mirroring the manual "Send Incentive" action in Rally.
        Larger sends are processed asynchronously.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                studyId:
                  type: string
                  description: The ID of the study the participants belong to
                participantIds:
                  type: array
                  items:
                    type: string
                  minItems: 1
                  maxItems: 10
                  description: >-
                    The IDs of the study participants to send the incentive to.
                    A maximum of 10 participants may be sent to per request.
                amountCents:
                  type: integer
                  exclusiveMinimum: 0
                  description: >-
                    Override for the incentive value in cents. Defaults to the
                    study's configured incentive amount. Applies to monetary
                    incentives, and to custom incentives configured as a
                    monetary value
                currency:
                  type: string
                  enum:
                    - AUD
                    - CAD
                    - EUR
                    - GBP
                    - NZD
                    - USD
                  description: >-
                    Override for the incentive currency. Defaults to the study's
                    configured incentive currency. Applies to monetary
                    incentives
                incentiveBudgetId:
                  type: string
                  description: >-
                    Override for the incentive budget to draw from. Defaults to
                    the study's configured budget
                updateToParticipantStatusId:
                  type: string
                  description: >-
                    When provided, participants are moved to this status after
                    the incentive is sent
                allowDuplicate:
                  type: boolean
                  description: >-
                    By default, participants who already have an outstanding
                    (not canceled or expired) incentive for this study are
                    skipped and returned in skippedParticipantIds. Set to true
                    to send anyway, allowing multiple incentives per participant
              required:
                - studyId
                - participantIds
              description: >-
                Send the monetary incentive configured on a study to one or more
                of its participants. This mirrors the manual "Send Incentive"
                action in Rally: the incentive amount, email content, and sender
                all come from the study configuration, with amount / currency as
                the only overrides. Studies configured with a custom (logged)
                incentive must use POST /incentives/custom/log instead.
      responses:
        '202':
          description: The incentive send was accepted
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SendIncentiveResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthorized
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            text/plain:
              schema:
                type: string
                example: Unauthorized
        '403':
          description: Forbidden
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            text/plain:
              schema:
                type: string
                example: Forbidden
        '429':
          description: Too Many Requests
          headers:
            Retry-After:
              $ref: '#/components/headers/Retry-After'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            text/plain:
              schema:
                type: string
                example: Too Many Requests
        '500':
          description: Internal Server Error
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            text/plain:
              schema:
                type: string
                example: Internal Server Error
      security:
        - bearerAuth: []
components:
  headers:
    X-RateLimit-Limit:
      description: The maximum number of requests the client is allowed to make.
      schema:
        type: integer
        format: int32
    X-RateLimit-Remaining:
      description: >-
        The number of requests remaining for the client in the current time
        window.
      schema:
        type: integer
        format: int32
    X-RateLimit-Reset:
      description: >-
        The time at which the current time window ends (in Unix timestamp
        format).
      schema:
        type: integer
        format: int32
    Retry-After:
      description: The number of seconds until the client should retry the request.
      schema:
        type: integer
        format: int32
  schemas:
    SendIncentiveResponse:
      type: object
      properties:
        success:
          type: boolean
          description: Whether the incentive send was accepted
        isAsync:
          type: boolean
          description: >-
            Whether the send is processed asynchronously. Larger sends are
            queued and processed in the background
        bulkActionRequestId:
          type:
            - string
            - 'null'
          description: >-
            The ID of the background bulk action when the send is processed
            asynchronously
        hasInsufficientFundsForIncentives:
          type: boolean
          description: True when the budget does not have enough funds
        totalAvailableBalanceCents:
          type:
            - number
            - 'null'
          description: The available budget balance in cents
        skippedParticipantIds:
          type: array
          items:
            type: string
          description: >-
            Participants that were skipped because they already had an
            outstanding incentive for the study. Empty when allowDuplicate is
            true
      required:
        - success
        - isAsync
        - bulkActionRequestId
      description: The result of sending an incentive
    BadRequestError:
      type: object
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              message:
                type: string
              path:
                type: array
                items:
                  anyOf:
                    - type: string
                    - type: number
            required:
              - message
              - path
      required:
        - errors
      description: Error response for a bad request with details on what was invalid
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````