Impact Radius Contracts API

The Contracts API from Impact Radius — 5 operation(s) for contracts.

Operations 6

GET /Advertisers/{AccountSID}/Campaigns/{CampaignId}/Contracts List All Contracts #
GET /Advertisers/{AccountSID}/Campaigns/{CampaignId}/Contracts/{ContractId} Get Contract Details #
POST /Advertisers/{AccountSID}/Programs/{ProgramId}/Contracts Accept a Pending Contract #
DELETE /Advertisers/{AccountSID}/Programs/{ProgramId}/Contracts Decline a Pending Contract #
GET /Mediapartners/{AccountSID}/Contracts List Contracts #
GET /Mediapartners/{AccountSID}/Contracts/{Id} Retrieve a Contract #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/impact-radius-contracts-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

impact-radius-contracts-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Impact Radius Contracts API
  version: '1.0'
  description: 'Operations tagged Contracts across 2 of this provider''s published API definitions: impact-radius-brand-contracts-v14.yml, impact-radius-partner-contracts-v15.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.impact.com
tags:
- name: Contracts
paths:
  /Advertisers/{AccountSID}/Campaigns/{CampaignId}/Contracts:
    get:
      summary: List All Contracts
      description: Returns a list of your contracts for a specific campaign, with options for filtering. If no status is specified, only ACTIVE contracts are returned.
      operationId: listContracts
      tags:
      - Contracts
      parameters:
      - name: AccountSID
        in: path
        required: true
        schema:
          type: string
          example: IRATkFHXxJ27tnkWnkS3
      - name: CampaignId
        in: path
        required: true
        schema:
          type: integer
          example: 1000
      - name: DateLastUpdatedBefore
        in: query
        description: Return contracts updated before a specific date and time (ISO-8601).
        schema:
          type: string
          format: date-time
      - name: DateLastUpdatedAfter
        in: query
        description: Return contracts updated after a specific date and time (ISO-8601).
        schema:
          type: string
          format: date-time
      - name: StartDateBefore
        in: query
        description: Return contracts that start before a specific date and time (ISO-8601).
        schema:
          type: string
          format: date-time
      - name: StartDateAfter
        in: query
        description: Return contracts that start after a specific date and time (ISO-8601).
        schema:
          type: string
          format: date-time
      - name: EndDateBefore
        in: query
        description: Return contracts that end before a specific date and time (ISO-8601).
        schema:
          type: string
          format: date-time
      - name: EndDateAfter
        in: query
        description: Return contracts that end after a specific date and time (ISO-8601).
        schema:
          type: string
          format: date-time
      - name: PartnerId
        in: query
        description: Return contracts for a specific partner.
        schema:
          type: integer
      - name: Signatory
        in: query
        description: Return contracts with a particular brand or partner signatory.
        schema:
          type: string
      - name: Status
        in: query
        description: Return contracts with a specific status. Defaults to ACTIVE if not specified.
        schema:
          type: string
          enum:
          - ACTIVE
          - DECLINED
          - EXPIRED
          - PENDING
          - UPCOMING
      - name: TemplateId
        in: query
        description: Return contracts sourced from a specific Template Terms ID.
        schema:
          type: integer
      responses:
        '200':
          description: A paginated list of contract objects.
          content:
            application/json:
              schema:
                type: object
                properties:
                  Contracts:
                    type: array
                    description: The list of contract objects.
                    items:
                      $ref: '#/components/schemas/Contract'
    servers:
    - url: https://api.impact.com
  /Advertisers/{AccountSID}/Campaigns/{CampaignId}/Contracts/{ContractId}:
    get:
      summary: Get Contract Details
      description: Retrieves the object of an existing contract, including details on any associated Creator, Performance, or Product Boost campaigns.
      operationId: getContractById
      tags:
      - Contracts
      parameters:
      - name: AccountSID
        in: path
        required: true
        schema:
          type: string
          example: IRATkFHXxJ27tnkWnkS3
      - name: CampaignId
        in: path
        required: true
        schema:
          type: integer
          example: 1000
      - name: ContractId
        in: path
        required: true
        description: The unique identifier for the contract.
        schema:
          type: string
          example: S-7777777
      responses:
        '200':
          description: A single contract object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Contract'
    servers:
    - url: https://api.impact.com
  /Advertisers/{AccountSID}/Programs/{ProgramId}/Contracts:
    post:
      summary: Accept a Pending Contract
      description: 'Accepts a pending partner contract proposal. Use this endpoint by passing the program and contract IDs. To identify contracts currently waiting to be actioned, filter your contract list with the `Status=PENDING` parameter.


        ## Decision precedence and conflict handling


        You can accept a contract proposal using multiple channels — the Applications UI, automated workflows, or impact ai — while an API request is in flight.


        ### The "first-in" rule


        - **Finality**: Once you accept a contract proposal through any channel, that decision is final.

        - **Conflict resolution**: If multiple determinations are submitted for the same `contractId`, the system honors the first determination received based on the server timestamp. All subsequent or conflicting submissions are ignored.

        '
      operationId: acceptContract
      tags:
      - Contracts
      parameters:
      - name: AccountSID
        in: path
        required: true
        description: Your account SID.
        schema:
          type: string
          example: IRATkFHXxJ27tnkWnkS3
      - name: ProgramId
        in: path
        required: true
        description: The unique identifier of the program the contract belongs to.
        schema:
          type: integer
          example: 8575
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AcceptContractRequest'
            example:
              contractId: P-25070000
              groupId: '1234'
      responses:
        '200':
          description: The contract was successfully accepted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContractDecisionResponse'
              example:
                Status: OK
        '400':
          description: Bad request. The `contractId` may be missing or malformed.
        '404':
          description: Contract or program not found.
        '409':
          description: A decision for this contract has already been recorded. The first-in rule applies — the original determination is honored.
    delete:
      summary: Decline a Pending Contract
      description: 'Declines a pending partner contract proposal. Use this endpoint by passing the program and contract IDs. To identify contracts currently awaiting action, filter your contract list with the `Status=PENDING` parameter.


        ## Decision precedence and conflict handling


        You can decline a contract proposal using multiple channels — the Applications UI, automated workflows, or impact ai — while an API request is in flight.


        ### The "first-in" rule


        - **Finality**: Once you decline a contract proposal through any channel, that decision is final.

        - **Conflict resolution**: If multiple determinations are submitted for the same `contractId`, the system honors the first determination received based on the server timestamp. All subsequent or conflicting submissions are ignored.

        '
      operationId: declineContract
      tags:
      - Contracts
      parameters:
      - name: AccountSID
        in: path
        required: true
        description: Your account SID.
        schema:
          type: string
          example: IRATkFHXxJ27tnkWnkS3
      - name: ProgramId
        in: path
        required: true
        description: The unique identifier of the program the contract belongs to.
        schema:
          type: integer
          example: 8575
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeclineContractRequest'
            example:
              contractId: P-25070000
              reason: Incompatible Content
              groupId: '1234'
      responses:
        '200':
          description: The contract was successfully declined.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContractDecisionResponse'
              example:
                Status: OK
        '400':
          description: Bad request. The `contractId` may be missing or malformed.
        '404':
          description: Contract or program not found.
        '409':
          description: A decision for this contract has already been recorded. The first-in rule applies — the original determination is honored.
    servers:
    - url: https://api.impact.com
  /Mediapartners/{AccountSID}/Contracts:
    get:
      operationId: listContracts
      tags:
      - Contracts
      summary: List Contracts
      description: Returns a list of all contracts associated with your partner account.
      parameters:
      - name: AccountSID
        in: path
        required: true
        schema:
          type: string
        description: Unique identifier for the partner account.
      - name: CampaignId
        in: query
        required: false
        schema:
          type: integer
        description: Filters contracts by the campaign they belong to.
      - name: Status
        in: query
        required: false
        schema:
          type: string
          enum:
          - ACTIVE
          - DECLINED
          - EXPIRED
          - PENDING
          - UPCOMING
        description: Return contracts with a specific status. If omitted, only contracts where Status is ACTIVE are returned.
      - name: Signatory
        in: query
        required: false
        schema:
          type: string
        description: Return contracts with a particular signatory. Matches against both BrandSignatory and PartnerSignatory.
      - name: DateLastUpdatedBefore
        in: query
        required: false
        schema:
          type: string
          format: date-time
        description: Return contracts last updated before a specific date and time (ISO 8601).
      - name: DateLastUpdatedAfter
        in: query
        required: false
        schema:
          type: string
          format: date-time
        description: Return contracts last updated after a specific date and time (ISO 8601).
      - name: StartDateBefore
        in: query
        required: false
        schema:
          type: string
          format: date-time
        description: Return contracts that start before a specific date and time (ISO 8601).
      - name: StartDateAfter
        in: query
        required: false
        schema:
          type: string
          format: date-time
        description: Return contracts that start after a specific date and time (ISO 8601).
      - name: EndDateBefore
        in: query
        required: false
        schema:
          type: string
          format: date-time
        description: Return contracts that end before a specific date and time (ISO 8601).
      - name: EndDateAfter
        in: query
        required: false
        schema:
          type: string
          format: date-time
        description: Return contracts that end after a specific date and time (ISO 8601).
      responses:
        '200':
          description: A list of contract objects.
          content:
            application/json:
              schema:
                type: object
                properties:
                  Contracts:
                    type: array
                    items:
                      $ref: '#/components/schemas/Contract_2'
    servers:
    - url: https://api.impact.com
  /Mediapartners/{AccountSID}/Contracts/{Id}:
    get:
      operationId: retrieveContract
      tags:
      - Contracts
      summary: Retrieve a Contract
      description: '''Retrieves the full details of an existing contract using its unique


        **Note:** To retrieve `ScheduledTerms` and `CampaignTerms` objects, either upgrade your API version to the latest or append `?IrVersion=15` to your cURL request.

        ID, including complete campaign-level term overrides. The `PdfUri` field in

        the response can be used to download a PDF copy of the contract.''

        '
      parameters:
      - name: AccountSID
        in: path
        required: true
        schema:
          type: string
        description: Unique identifier for the partner account.
      - name: Id
        in: path
        required: true
        schema:
          type: string
        description: The unique identifier for the contract.
      responses:
        '200':
          description: The contract object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Contract_2'
    servers:
    - url: https://api.impact.com
components:
  schemas:
    AcceptContractRequest:
      type: object
      required:
      - contractId
      properties:
        contractId:
          type: string
          description: The unique identifier of the pending contract to accept.
          example: P-25070000
        groupId:
          type: string
          description: 'The unique identifier of the partner group to which the accepted partner will be added. Provide multiple IDs as a comma-separated string if adding to more than one group.

            '
          example: '1234'
    EventPayout:
      type: object
      properties:
        EventTypeId:
          type: integer
          description: Unique identifier for the event type.
          example: 18500
        EventTypeName:
          type: string
          description: Display name of the event type.
          example: Online Sale
        EventCategory:
          type: string
          description: Category of the event (e.g., SALE, LEAD, CLICK).
          example: SALE
        DefaultPayout:
          type: number
          format: decimal
          description: Default flat payout amount for the event.
          example: 10.0
        DefaultPayoutRate:
          type: number
          format: decimal
          description: Default percentage payout rate for the event.
          example: 15
        PayoutLevel:
          type: string
          description: Whether payout is calculated per item, order, click, or call.
          enum:
          - ITEM
          - ORDER
          - CLICK
          - CALL
          example: ITEM
        PayoutGroups:
          type: array
          description: Conditional payout groups for this event type.
          items:
            $ref: '#/components/schemas/PayoutGroup'
    PromotionalTerm:
      type: object
      properties:
        TermsName:
          type: string
          description: The display name of the promotional term.
          example: Custom Terms
        TermsType:
          type: string
          description: Category of promotional term.
          enum:
          - CUSTOM
          - EMAIL
          - COPYWRITING
          - PAID_SEARCH
          - SEO
          - TRADEMARK
          - APPROVAL
          example: CUSTOM
        TermsContent:
          type: string
          description: The text content of the promotional term.
          example: <p>Custom promotional terms content.</p>
        TermsPdfUri:
          type: string
          format: uri-reference
          nullable: true
          description: The URI to a PDF version of the promotional terms, if available.
    PayoutGroup:
      type: object
      properties:
        Id:
          type: string
          example: ab12c3d4-5e6f-7g89-01h2-345ijk6lmn78
          description: Select the option that best describes how you use impact.com
        Rank:
          type: integer
          example: 1
        Rules:
          type: array
          items:
            $ref: '#/components/schemas/Rule'
        Payout:
          type: number
          format: decimal
          example: 1.0
        PayoutRate:
          type: integer
          example: 15
        Limits:
          type: array
          items:
            type: object
        Tiers:
          type: array
          items:
            type: object
    CampaignTerm:
      type: object
      properties:
        Name:
          type: string
          example: Product Boost Campaign 1
        Id:
          type: string
          example: '1234'
          description: Select the option that best describes how you use impact.com
        StartDate:
          type: string
          format: date-time
          example: '2025-03-28T00:00:00-07:00'
        EndDate:
          type: string
          format: date-time
          example: '2025-03-29T00:00:00-07:00'
        EventPayouts:
          type: array
          items:
            $ref: '#/components/schemas/EventPayout'
    TemplateTerms:
      type: object
      properties:
        TemplateId:
          type: integer
          description: Unique identifier for the template terms.
          example: 99999
        VersionId:
          type: integer
          description: Version number of the template terms.
          example: 6
        Name:
          type: string
          description: Display name for the template terms.
          example: ACME Public Terms
        Labels:
          type: array
          description: Labels assigned to these template terms.
          items:
            type: string
        Currency:
          type: string
          description: Three-letter ISO 4217 currency code for payouts.
          example: USD
        EventPayouts:
          type: array
          description: Payout configurations per event type.
          items:
            $ref: '#/components/schemas/EventPayout'
        PromotionalTerms:
          type: array
          description: Additional promotional terms attached to the contract.
          items:
            $ref: '#/components/schemas/PromotionalTerm'
    Rule:
      type: object
      properties:
        Variable:
          type: string
          example: CUSTOMER_COUNTRY
        Operator:
          type: string
          example: IS
        Values:
          type: array
          items:
            type: string
    DeclineContractRequest:
      type: object
      required:
      - contractId
      properties:
        contractId:
          type: string
          description: The unique identifier of the pending contract to decline.
          example: P-25070000
        reason:
          type: string
          description: A human-readable explanation for why the contract proposal was declined.
          example: Incompatible Content
        groupId:
          type: string
          description: 'The unique identifier of the partner group to which the declined partner will be added. Provide multiple IDs as a comma-separated string if adding to more than one group.

            '
          example: '1234'
    Contract:
      type: object
      properties:
        Id:
          type: string
          description: The unique identifier for the contract.
          example: S-7777777
        PartnerId:
          type: integer
          description: The unique identifier of the partner the contract is with.
          example: 10000
        PartnerValue1:
          type: string
          description: A custom value associated with the partner.
          example: ''
        Status:
          type: string
          description: The current status of the contract.
          enum:
          - ACTIVE
          - EXPIRED
          example: ACTIVE
        StartDate:
          type: string
          format: date-time
          description: The date and time the contract becomes active.
          example: '2021-01-20T00:00:00-08:00'
        EndDate:
          type: string
          format: date-time
          nullable: true
          description: The date and time the contract expires. Null for open-ended contracts.
          example: ''
        BrandSignatory:
          type: string
          description: The name of the brand representative who signed the contract.
          example: Justin Case
        BrandSignatoryDate:
          type: string
          format: date-time
          description: The date and time the brand signed the contract.
          example: '2021-01-19T23:51:01-08:00'
        PartnerSignatory:
          type: string
          description: The name of the partner representative who signed the contract.
          example: Partner Person
        PartnerSignatoryDate:
          type: string
          format: date-time
          description: The date and time the partner signed the contract.
          example: '2021-01-19T23:51:01-08:00'
        DateCreated:
          type: string
          format: date-time
          description: The date and time the contract was created.
          example: '2021-01-19T23:51:01-08:00'
        DateLastUpdated:
          type: string
          format: date-time
          description: The date and time the contract was last updated.
          example: '2021-01-19T23:51:01-08:00'
        TemplateTerms:
          $ref: '#/components/schemas/TemplateTerms'
          description: The template terms underlying this contract.
        ScheduledTerms:
          type: array
          description: Time-bounded scheduled term overrides for this contract.
          items:
            $ref: '#/components/schemas/ScheduledTerm'
        CampaignTerms:
          type: array
          description: Additional terms specific to creator, performance, or product boost campaigns.
          items:
            $ref: '#/components/schemas/CampaignTerm'
        HasCampaignTerms:
          type: boolean
          description: Indicates whether the contract has associated campaign terms.
          example: true
        PdfUri:
          type: string
          format: uri-reference
          description: The URI to download the contract as a PDF.
          example: /Advertisers/<AccountSID>/Campaigns/1000/Contracts/S-7777777/Download
        Uri:
          type: string
          format: uri-reference
          description: The unique reference to this contract in the impact.com API.
          example: /Advertisers/<AccountSID>/Campaigns/1000/Contracts/S-7777777
    ContractDecisionResponse:
      type: object
      properties:
        Status:
          type: string
          description: Indicates whether the decision was successfully recorded.
          enum:
          - OK
          example: OK
    ScheduledTerm:
      type: object
      properties:
        Status:
          type: string
          enum:
          - ACTIVE
          - PENDING
          - UPCOMING
          - DECLINED
          - EXPIRED
          example: ACTIVE
        Name:
          type: string
          example: Black Friday Special Rates
        StartDate:
          type: string
          format: date-time
          example: '2026-11-27T00:00:00-08:00'
        EndDate:
          type: string
          format: date-time
          example: '2026-11-30T23:59:59-08:00'
        Repeat:
          type: object
          properties:
            Days:
              type: array
              items:
                type: string
                format: date
            StartTime:
              type: string
              format: time
              example: 09:00:00
            EndTime:
              type: string
              format: time
              example: 61200
        EventPayouts:
          type: array
          items:
            $ref: '#/components/schemas/EventPayout'
    PayoutScheduling:
      type: object
      description: Rules governing when a locked action is scheduled for payout.
      properties:
        Basis:
          type: string
          description: The basis for the payout schedule (e.g., LOCKED, CLEARED).
          example: LOCKED
        Period:
          type: string
          description: The payout period frequency (e.g., END_OF_DAY, END_OF_WEEK, END_OF_MONTH).
          example: END_OF_DAY
    EventPayout_2:
      type: object
      description: Payout rules for a specific tracked event type.
      properties:
        EventTypeId:
          type: string
          description: Unique identifier for the event type (action tracker).
          example: '18503'
        EventTypeName:
          type: string
          description: Display name of the event type.
          example: Online Sale
        EventCategory:
          type: string
          description: Category of the event (e.g., SALE, LEAD, CLICK).
          example: SALE
        DefaultPayoutRate:
          type: string
          description: The default payout rate applied when no adjustment rules are matched.
          example: '0'
        PayoutLevel:
          type: string
          description: Whether the payout is calculated at the order level or per item (e.g., ORDER, ITEM).
          example: ITEM
        DefaultPayout:
          type: string
          format: decimal
          description: Default payout amount for events of this type, before any adjustments.
        PayoutGroups:
          type: array
          description: Conditional payout groups that apply different rates based on rule matches. Returned only when ?IrVersion=15 or later is used.
          items:
            $ref: '#/components/schemas/PayoutGroup_2'
        PayoutRestrictions:
          type: array
          description: Conditional restrictions that prevent payout when their rules match.
          items:
            $ref: '#/components/schemas/PayoutRestriction'
        Limits:
          type: array
          description: Payout caps that limit how much the partner can earn for this event type within a period.
          items:
            $ref: '#/components/schemas/Limit'
        PayoutAdjustments:
          type: array
          description: Conditional rules that adjust the default payout rate up or down.
          items:
            $ref: '#/components/schemas/PayoutAdjustment'
        PerformanceBonus:
          $ref: '#/components/schemas/PerformanceBonus'
          description: Tiered bonus payout that activates when a revenue or action threshold is reached.
        Locking:
          $ref: '#/components/schemas/Locking'
          description: Rules governing when an action locks and can no longer be modified.
        PayoutScheduling:
          $ref: '#/components/schemas/PayoutScheduling'
          description: Rules governing when a locked action is scheduled for payout.
        CreditPolicy:
          type: string
          description: Attribution policy determining which partner receives credit for the conversion (e.g., LAST_REFERRER, FIRST_REFERRER).
          example: LAST_REFERRER
        ValidReferrals:
          type: array
          description: The referral types and attribution windows that qualify for credit.
          items:
            $ref: '#/components/schemas/ValidReferral'
    CampaignTermEventPayout:
      type: object
      description: Payout rules for a specific event type within a campaign term.
      properties:
        EventTypeId:
          type: string
          description: Unique identifier for the event type this payout applies to.
          example: '18503'
        PayoutLevel:
          type: string
          description: Whether the payout is calculated at the order level or per item (e.g., ORDER, ITEM).
          example: ITEM
        PayoutGroups:
          type: array
          description: Ordered groups of item-matching rules and their associated payout rates.
          items:
            $ref: '#/components/schemas/PayoutGroup_2'
    PayoutAdjustment:
      type: object
      description: A conditional rule that adjusts the default payout rate.
      properties:
        Id:
          type: string
          description: Unique identifier for the payout adjustment rule.
          example: 8c281c2e-f61e-4b11-a9f9-9be38c79fe9e
        Rules:
          type: array
          description: Conditions that must be met for this adjustment to apply.
          items:
            $ref: '#/components/schemas/Rule_2'
        Direction:
          type: string
          description: Whether this adjustment increases or decreases the payout (INCREASE, DECREASE).
          example: INCREASE
        Rate:
          type: string
          description: The adjustment rate applied to the payout when conditions are met.
          example: '0'
    SpecialTerm:
      type: object
      description: A special term or condition appended to the contract.
      properties:
        TermsName:
          type: string
          description: Display name of the special term.
          example: Custom Terms
        TermsType:
          type: string
          description: The type of special term (e.g., CUSTOM, PROMOTIONAL_RESTRICTION).
          example: CUSTOM
        TermsContent:
          type: string
          description: The full text or HTML content of the special term.
          example: <p>Custom terms and conditions content.</p>
    PerformanceBonus:
      type: object
      description: Tiered bonus payout that activates when a revenue or action threshold is reached.
      properties:
        Type:
          type: string
          description: The type of performance bonus (e.g., SUBSEQUENT_ACTIONS, ALL_ACTIONS).
          example: SUBSEQUENT_ACTIONS
        Basis:
          type: string
          description: The metric used to measure performance (e.g., REVENUE, ACTIONS).
          example: REVENUE
        Period:
          type: string
          description: The time period over which performance is measured (e.g., CALENDAR_MONTH, CALENDAR_YEAR).
          example: CALENDAR_MONTH
        Tiers:
          type: array
          description: The threshold tiers and their associated bonus payout rates.
          items:
            $ref: '#/components/schemas/PerformanceBonusTier'
    PayoutGroup_2:
      type: object
      description: A ranked group of item-matching rules with an associated payout rate.
      properties:
        Id:
          type: string
          description: Unique identifier for the payout group.
          example: 94bc1ae3-5f77-4e63-a862-3bbcf7f085dd
        Rank:
          type: string
          description: The priority rank of this group. Lower ranks are evaluated first.
          example: '1'
        Rules:
          type: array
          description: Item-matching conditions that must be met for this group's payout to apply.
          items:
            $ref: '#/components/schemas/Rule_2'
        PayoutRate:
          type: string
          description: Percentage payout rate applied when the group matches.
          example: '15'
        Payout:
          type: string
          format: decimal
          description: Fixed payout amount applied when the group matches. Either PayoutRate or Payout is returned, not both.
          example: '0.10'
        Limits:
          type: array
          description: Payout caps that limit this group's earnings within a period.
          items:
            $ref: '#/components/schemas/Limit'
    PerformanceBonusTier:
      type: object
      description: A single threshold tier within a performance bonus structure.
      properties:
        RevenueThreshold:
          type: string
          description: The revenue amount that must be reached to unlock this tier's bonus rate.
          example: '1000000.00'
        PayoutRate:
          type: string
          description: The bonus payout rate applied once the revenue threshold is reached.
          example: '0'
    CampaignTerm_2:
      type: object
      description: A campaign-level payout term override applied on top of the base contract terms.
      properties:
        Id:
          type: string
          description: Unique identifier for the campaign term.
          example: '3578'
        Name:
          type: string
          description: Display name of the campaign term.
          example: ForgeMaster Anvils at Acme SuperCenter - Product Boost
        StartDate:
          type: string
          format: date-time
          description: Date and time the campaign term becomes effective (ISO 8601).
          example: '2025-08-16T00:00:00-07:00'
        EndDate:
          type: string
          format: date-time
       

# --- truncated at 32 KB (41 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/impact-radius/refs/heads/main/openapi/impact-radius-contracts-api-openapi.yml