openapi: 3.1.0 info: title: Brand API - Programs description: API for managing your programs (campaigns) on impact.com. This includes retrieving program details and managing unsubscribed contacts from your outreach communications. version: v14 servers: - url: https://api.impact.com paths: /Advertisers/{AccountSID}/Campaigns: get: summary: List All Programs description: Returns a list of all programs for your account, sorted by Program ID. operationId: listPrograms tags: - Programs parameters: - name: AccountSID in: path required: true schema: type: string - name: Name in: query description: Filter by program name. schema: type: string - name: State in: query description: Filter by program state. schema: type: string enum: - ACTIVE - AWAITING_REVIEW - CANCELLED - CLOSED - DEACTIVATED - DELINQUENT - REJECTED - SETUP - SETUP_COMPLETE responses: '200': description: A paginated list of program objects. content: application/json: schema: type: object properties: Campaigns: type: array description: The list of program objects. items: $ref: '#/components/schemas/Program' /Advertisers/{AccountSID}/Campaigns/{CampaignId}: get: summary: Get Program Details description: Retrieves the details of an existing program by its unique ID. operationId: getProgramById tags: - Programs parameters: - name: AccountSID in: path required: true schema: type: string - name: CampaignId in: path required: true description: The unique identifier for the program (campaign). schema: type: integer responses: '200': description: A single program object. content: application/json: schema: $ref: '#/components/schemas/Program' /Advertisers/{AccountSID}/Campaigns/{CampaignId}/UnsubscribedContacts: get: summary: List Unsubscribed Contacts description: Retrieves a paginated list of all contacts who have unsubscribed from a specific program's Outreach communications. operationId: listUnsubscribedContacts tags: - Unsubscribed Contacts parameters: - name: AccountSID in: path required: true schema: type: string - name: CampaignId in: path required: true description: The unique identifier for the program. schema: type: integer - name: PartnerId in: query description: Filter by partner ID. schema: type: integer - name: UserEmail in: query description: Filter by a specific user email. schema: type: string format: email - name: Page in: query description: The page number to retrieve, starting at 0. schema: type: integer default: 0 - name: PageSize in: query description: The number of items per page. Maximum is 1000. schema: type: integer default: 20 maximum: 1000 responses: '200': description: A paginated list of unsubscribed contacts. content: application/json: schema: $ref: '#/components/schemas/UnsubscribedContactsResponse' post: summary: Unsubscribe a Contact description: Unsubscribes a contact from a specific program's Outreach communications on behalf of a partner. operationId: unsubscribeContact tags: - Unsubscribed Contacts parameters: - name: AccountSID in: path required: true schema: type: string - name: CampaignId in: path required: true description: The unique identifier for the program. schema: type: integer requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object required: - PartnerId - UserEmail properties: PartnerId: type: integer description: The unique identifier for the Partner associated with the contact. UserEmail: type: string format: email description: The email address of the contact to unsubscribe. responses: '200': description: A confirmation object indicating success. content: application/json: schema: $ref: '#/components/schemas/SuccessUriResponse' components: schemas: Program: type: object properties: Id: type: integer description: The unique identifier for the program. Name: type: string description: The display name of the program. State: type: string description: The current state of the program. enum: - ACTIVE - AWAITING_REVIEW - CANCELLED - CLOSED - DEACTIVATED - DELINQUENT - REJECTED - SETUP - SETUP_COMPLETE Type: type: string description: The classification of the program. This indicates the business model or category the program falls under (e.g., Affiliate, Retail Media, etc.). enum: - Seller - Retail Media Seller - Performance - Advocate - Creator - Retail Media example: Performance Categories: type: object description: The program's category classifications. properties: PrimaryCategory: type: string description: The program's primary category. PrimarySubCategories: type: array description: Subcategories under the primary category. items: type: string AdditionalCategory: type: string nullable: true description: An additional category for the program, if any. AdditionalSubCategories: type: array description: Subcategories under the additional category. items: type: string ShortDescription: type: string description: A short description of the program. LongDescription: type: string description: A long description of the program. ListInMarketplace: type: boolean description: Whether the program is listed in the impact.com partner marketplace. DisplayServicingAgency: type: boolean description: Whether the servicing agency is displayed publicly. Rating: type: integer description: The program's rating. SearchKeywords: type: string description: Keywords used to surface the program in marketplace search. ShippingRegions: type: array description: Regions where the brand ships. items: type: string Resources: type: object description: Links to brand-provided resources. properties: CompanyHomepage: type: string format: uri description: The company homepage URL. ExampleLandingPage: type: string format: uri description: An example landing page URL. InformationPage: type: string format: uri description: An information page URL. AdditionalRelatedLinks: type: array description: Additional links related to the program. items: type: object properties: LinkType: type: string description: The type of link. enum: - URL - PDF LinkDisplayName: type: string description: Display name for the link. LinkUrl: type: string format: uri description: The URL of the link. CompanyContacts: type: array description: Company contacts for the program. items: type: object properties: FirstName: type: string description: The contact's first name. LastName: type: string description: The contact's last name. EmailAddress: type: string format: email description: The contact's email address. PhoneNumber: type: string description: The contact's phone number. GiftCardPayouts: type: boolean description: Whether gift card payouts are enabled. TrademarkBidding: type: boolean description: Whether partners are allowed to bid on the brand's trademark terms. ThirdPartyImpressionPixel: type: string description: A third-party impression tracking pixel. MobileReadyAds: type: boolean description: Whether the program supports mobile-ready ads. DisplayFutureAds: type: boolean description: Whether to display ads that aren't yet active. PromoCodeTracking: type: boolean description: Whether promo code tracking is enabled. TrackingDomain: type: string description: The tracking domain used for this program. SiteDefinition: type: string description: The site definition for the program. ImpressionTracking: type: boolean description: Whether impression tracking is enabled. ViewThroughCrediting: type: boolean description: Whether view-through crediting is enabled. IdentityMatching: type: string description: The identity matching strategy. enum: - NONE - ACCOUNT - IR_CONSORTIUM HasStandDownPolicy: type: boolean description: Whether the program has a stand-down policy in place. GatewayTrackingSettings: type: object description: Settings for gateway tracking. properties: DefaultLandingPage: type: string format: uri description: The default landing page URL. MediaPartnerTrackingTemplate: type: string description: Tracking template applied to media partner links. CampaignTrackingTemplate: type: string description: Tracking template applied to campaign links. SSLSupport: type: boolean description: Whether SSL is supported for tracking links. DeepLinking: type: boolean description: Whether deep linking is enabled. DeepLinkDomains: type: string description: Comma-separated list of domains for deep linking. ThirdPartyGatewayUrl: type: string format: uri description: A third-party gateway URL for tracking. ThirdPartyGatewayQueryStringParameters: type: string description: Query string parameters for the third-party gateway. UniqueClickWindowLength: type: string description: The length of the unique click window. enum: - 1m - 5m - 15m - 30m - 1h - 6h - 12h - 24h UniqueClickWindowType: type: string description: Whether the unique click window is fixed or rolling. enum: - FIXED - ROLLING DirectTrackingSettings: type: object description: Settings for direct tracking. properties: UnidentifiedName: type: string description: Name used for unidentified traffic. SessionWindowLength: type: integer description: The session window length. Uri: type: string format: uri-reference description: The unique reference to this program in the impact.com API. example: /Advertisers//Campaigns/1000 UnsubscribedContact: type: object properties: UserEmail: type: string format: email description: The email address of the unsubscribed contact. example: partnerA@mail.com PartnerId: type: integer description: The unique identifier of the partner associated with the contact. example: 1234 CreatedAt: type: string format: date-time description: The date and time the unsubscribe was created. example: '2026-02-05T12:13:08Z' UpdatedAt: type: string format: date-time description: The date and time the unsubscribe was last updated. example: '2026-02-05T12:13:08Z' UnsubscribedContactsResponse: type: object properties: Page: type: integer description: The current page number. Starts at 0. example: 0 NumPages: type: integer description: The total number of pages available. example: 1 PageSize: type: integer description: The number of items per page. The maximum is 1000. example: 20 Total: type: integer description: The total number of unsubscribed contact records. example: 1 Start: type: integer description: The index of the first item on the current page. example: 0 End: type: integer description: The index of the last item on the current page. example: 1 Uri: type: string format: uri-reference description: The URI for the current page of results. example: /UnsubscribedContacts?page=0&size=20 FirstPageUri: type: string format: uri-reference description: The URI for the first page of results. example: /UnsubscribedContacts?page=0&size=20 PreviousPageUri: type: string format: uri-reference nullable: true description: The URI for the previous page of results, if any. example: '' NextPageUri: type: string format: uri-reference nullable: true description: The URI for the next page of results, if any. example: '' LastPageUri: type: string format: uri-reference description: The URI for the last page of results. example: /UnsubscribedContacts?page=0&size=20 Results: type: array description: The list of unsubscribed contact objects on this page. items: $ref: '#/components/schemas/UnsubscribedContact' SuccessUriResponse: type: object properties: Status: type: string description: Indicates whether the operation was successful. example: OK Uri: type: string format: uri-reference description: The unique reference to the affected resource.