CreatorIQ Campaign APIs
Create and manage campaigns, campaign publishers and their status, campaign activity, expenses, brands and advertiser information.
Create and manage campaigns, campaign publishers and their status, campaign activity, expenses, brands and advertiser information.
openapi: 3.1.0
info:
version: 1.0.0
title: CreatorIQ Campaign APIs
description: CreatorIQ CRM APIs for Campaigns resource
termsOfService: 'https://www.creatoriq.com/legal/terms-of-use'
contact:
name: CreatorIQ
url: 'https://www.creatoriq.com'
email: support@creatoriq.com
license:
url: 'http://www.apache.org/licenses/LICENSE-2.0.html'
name: Apache 2.0
servers:
- url: 'https://apis.creatoriq.com'
description: Live
paths:
'/crm/v1/api/campaign/{campaignId}/activity':
get:
tags:
- Campaign
summary: Get Campaign Activity
description: Returns the aggregate campaign-level metrics as well as all the posts from a single campaign.
operationId: getCampaignActivity
parameters:
- name: publisherId
in: query
description: 'Unique publisher id. If not passed, will return activity for all publishers.'
required: false
schema:
type: integer
examples:
- 8082160
examples:
default:
value: 8082160
- name: from
in: query
description: Filter by date - Date start
required: false
schema:
type: string
format: date
examples:
- '2023-04-03'
examples:
default:
value: '2023-04-03'
- name: to
in: query
description: Filter by date - Date end
required: false
schema:
type: string
format: date
examples:
- '2023-05-03'
examples:
default:
value: '2023-05-03'
- name: socialNetwork
in: query
description: Filter by social networks
required: false
schema:
type: string
enum:
- Facebook
- Instagram
- YouTube
- Web
- Twitter
- Twitch
- TikTok
- Snapchat
- Pinterest
examples:
- Instagram
examples:
default:
value: Instagram
- name: postType
in: query
description: Filter by post types
required: false
schema:
type: string
enum:
- permalink
- story
- image
- reel
- Photo
- video
- tweet
- TiktokPost
- stream
- other
- article
- status
- blog
- short
- link
- carousel
- clip
- post
- text
- Album
- snap
- YoutubeVideo
- spotlight
examples:
- story
examples:
default:
value: story
- name: fields
in: query
description: Filter by return fields. If not set - returns all fields data
required: false
schema:
type: string
examples:
- 'Id,SocialNetwork,PublisherId,Type,PostId'
examples:
default:
value: 'Id,SocialNetwork,PublisherId,Type,PostId'
- name: groupBy
in: query
description: Group by entities
required: false
schema:
type: string
enum:
- publisher
- socialNetwork
- trackingLinks
examples:
- publisher
examples:
default:
value: publisher
- name: page
in: query
description: Current page
schema:
type: integer
minimum: 1
examples:
- 1
examples:
default:
value: 1
- name: size
in: query
description: How many rows should be fetch
schema:
type: integer
minimum: 1
default: 20
examples:
- 20
examples:
default:
value: 20
- name: campaignId
in: path
description: Unique campaign id
required: true
schema:
type: integer
examples:
- 42066
examples:
default:
value: 42066
responses:
'200':
$ref: '#/components/responses/CampaignActivitySuccessResponse'
'400':
$ref: '#/components/responses/ErrorResponse400'
'403':
description: Forbidden
'404':
$ref: '#/components/responses/ErrorResponse404'
security:
- apiKey: []
servers:
- url: 'https://apis.creatoriq.com'
description: Live
post:
tags:
- Campaign
summary: Post Campaign Activity
description: Api creates a new campaign manual post.
operationId: postCampaignActivity
parameters:
- name: source
in: query
description: Request source
required: true
schema:
type: string
enum:
- link
- file
examples:
- link
examples:
default:
value: link
- name: publisherId
in: query
description: Unique publisher id
required: true
schema:
type: integer
examples:
- 8082160
examples:
default:
value: 8082160
- name: campaignId
in: path
description: Unique campaign id
required: true
schema:
type: number
examples:
- 42066
examples:
default:
value: 42066
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateCampaignActivityBody'
responses:
'200':
$ref: '#/components/responses/CreateCampaignActivitySuccessResponse'
'400':
$ref: '#/components/responses/ErrorResponse400'
'403':
description: Forbidden
'404':
$ref: '#/components/responses/ErrorResponse404'
security:
- apiKey: []
servers:
- url: 'https://apis.creatoriq.com'
description: Live
'/crm/v1/api/campaign/{campaignId}/publishers/status':
put:
tags:
- Campaign
summary: Change Publishers status
description: Change Publishers status
operationId: changePublishersStatus
parameters:
- name: campaignId
in: path
description: Unique campaign id
required: true
schema:
type: integer
format: int32
examples:
- 42066
examples:
default:
value: 42066
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ChangePublishersStatusBody'
responses:
'204':
description: Success
'400':
$ref: '#/components/responses/ErrorResponse400'
'403':
description: Forbidden
'404':
$ref: '#/components/responses/ErrorResponse404'
security:
- apiKey: []
servers:
- url: 'https://apis.creatoriq.com'
description: Live
'/crm/v1/api/campaign/{campaignId}/expenses':
get:
tags:
- Campaign
summary: Get Campaign Expenses
description: Returns the list of expenses associated with a campaign.
operationId: getCampaignExpenses
parameters:
- name: campaignId
in: path
description: Unique campaign id
required: true
schema:
type: integer
examples:
- 42066
examples:
default:
value: 42066
responses:
'200':
$ref: '#/components/responses/ExpenseCollectionSuccessResponse'
'400':
$ref: '#/components/responses/ErrorResponse400'
'403':
description: Forbidden
'404':
$ref: '#/components/responses/ErrorResponse404'
security:
- apiKey: []
servers:
- url: 'https://apis.creatoriq.com'
description: Live
'/crm/v1/api/campaign/{campaignId}/expense/{expenseId}':
get:
tags:
- Campaign
summary: Get Campaign Expense by Expense Id
description: Returns a single expense from a campaign.
operationId: getCampaignExpensesById
parameters:
- name: campaignId
in: path
description: Unique campaign id
required: true
schema:
type: integer
examples:
- 42066
examples:
default:
value: 42066
- name: expenseId
in: path
description: Unique expense id
required: true
schema:
type: integer
examples:
- 29885
examples:
default:
value: 29885
responses:
'200':
$ref: '#/components/responses/ExpenseSuccessResponse'
'400':
$ref: '#/components/responses/ErrorResponse400'
'403':
description: Forbidden
'404':
$ref: '#/components/responses/ErrorResponse404'
security:
- apiKey: []
servers:
- url: 'https://apis.creatoriq.com'
description: Live
/crm/v1/api/campaigns:
get:
tags:
- Campaign
summary: Get Campaigns
description: Return collections of campaigns.
operationId: getCampaigns
parameters:
- name: page
in: query
description: Current page
schema:
type: integer
minimum: 1
examples:
- 1
examples:
default:
value: 1
- name: size
in: query
description: How many rows should fetch
schema:
type: integer
minimum: 1
default: 20
examples:
- 20
examples:
default:
value: 20
- name: fields
in: query
description: |
Fields to include in the response. Possible values are listed below.
Example: `fields=CampaignId,CampaignName`.
Fields: CampaignId, NetworkId, CampaignVisibility, EarnedPostsFlag,
Currency, SparkAdsPermission, SparkAdsPeriod will always return.
schema:
$ref: '#/components/schemas/campaignFieldsQuery'
example: CampaignName
examples:
default:
value: CampaignName
- name: filter
in: query
description: |
Search campaigns by filter. You can use multiple filters separated by a semicolon.
Filter value should be encoded.
Example: `filter=StartDate%3D2024-01-01%3BDivisionId%3D1234`.
Filter value without encoding: `filter=StartDate=2024-01-01;DivisionId=1234` may not work properly.
schema:
type: string
examples:
- StartDate%3D2024-01-01%3BDivisionId%3D1234
examples:
default:
value: StartDate%3D2024-01-01%3BDivisionId%3D1234
responses:
'200':
$ref: '#/components/responses/CampaignsListSuccessResponse'
'400':
$ref: '#/components/responses/GeneralErrorResponse'
'401':
$ref: '#/components/responses/AuthErrorResponse'
security:
- apiKey: []
servers:
- url: 'https://apis.creatoriq.com'
description: Live
post:
tags:
- Campaign
summary: Create Campaign
description: Api creates a new campaign.
operationId: postCampaigns
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/campaignBody'
responses:
'201':
$ref: '#/components/responses/CreateCampaignSuccessResponse'
'400':
$ref: '#/components/responses/ErrorResponse400'
security:
- apiKey: []
servers:
- url: 'https://apis.creatoriq.com'
description: Live
/crm/v1/api/brands:
get:
tags:
- Campaign
summary: List custom brands (advertisers)
description: |
Returns custom brands (advertisers) configured for the current partner.
Use the `Brand.BrandId` value from this response as `AdvertiserId` when creating or updating a campaign. Do not use this value as the campaign `BrandId`; `BrandId` requires a global brand ID from `GET /crm/v2/api/brands`.
operationId: getListBrands
responses:
'200':
$ref: '#/components/responses/ListBrandSuccessResponse'
'403':
description: Forbidden
security:
- apiKey: []
servers:
- url: 'https://apis.creatoriq.com'
description: Live
post:
tags:
- Campaign
summary: Create an Advertiser(Custom brand)
description: Creates a new advertiser (Custom brand).
operationId: createAdvertiserBrand
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateAdvertiserBrandBody'
responses:
'204':
$ref: '#/components/responses/CreateAdvertiserBrandSuccessResponse'
'400':
$ref: '#/components/responses/ErrorResponse400'
'403':
description: Forbidden
'404':
$ref: '#/components/responses/ErrorResponse404'
security:
- apiKey: []
servers:
- url: 'https://apis.creatoriq.com'
description: Live
'/crm/v1/api/brands/{brandId}':
delete:
tags:
- Campaign
summary: Delete Advertiser(Custom brand)
description: Deletes a specific advertiser (Custom brand).
operationId: deleteAdvertiserBrand
parameters:
- name: brandId
in: path
description: Unique custom brand id
required: true
schema:
type: integer
examples:
- 50852
examples:
default:
value: 50852
responses:
'204':
description: Success
'400':
$ref: '#/components/responses/ErrorResponse404'
'403':
description: Forbidden
'404':
$ref: '#/components/responses/ErrorResponse404'
security:
- apiKey: []
servers:
- url: 'https://apis.creatoriq.com'
description: Live
get:
tags:
- Campaign
summary: Get an Advertiser(Custom brand)
description: Creates a new advertiser (Custom brand).
operationId: getAdvertiserBrand
parameters:
- name: brandId
in: path
description: Unique custom brand id
required: true
schema:
type: integer
format: int32
examples:
- 50852
examples:
default:
value: 50852
responses:
'200':
$ref: '#/components/responses/AdvertiserBrandSuccessResponse'
'400':
$ref: '#/components/responses/ErrorResponse400'
'403':
description: Forbidden
'404':
$ref: '#/components/responses/ErrorResponse404'
security:
- apiKey: []
servers:
- url: 'https://apis.creatoriq.com'
description: Live
patch:
tags:
- Campaign
summary: Update Advertiser(Custom brand)
description: Makes updates to a advertiser (Custom brand).
operationId: updateAdvertiserBrand
parameters:
- name: brandId
in: path
description: Unique custom brand id
required: true
schema:
type: integer
format: int32
minimum: 0
examples:
- 50852
examples:
default:
value: 50852
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateAdvertiserBrandBody'
responses:
'204':
description: Success
'400':
$ref: '#/components/responses/ErrorResponse400'
'403':
description: Forbidden
'404':
$ref: '#/components/responses/ErrorResponse404'
security:
- apiKey: []
servers:
- url: 'https://apis.creatoriq.com'
description: Live
'/crm/v1/api/campaign/{campaignId}':
get:
tags:
- Campaign
summary: Get Campaign information
description: Get Campaign information
operationId: getCampaignInformation
parameters:
- name: fields
in: query
description: |
Fields to include in the response. Possible values are listed below.
Example: `fields=CampaignId,CampaignName`.
Fields: CampaignId, NetworkId, CampaignVisibility, EarnedPostsFlag,
Currency, SparkAdsPermission, SparkAdsPeriod will always return.
schema:
$ref: '#/components/schemas/campaignFieldsQuery'
example: CampaignName
examples:
default:
value: CampaignName
- name: campaignId
in: path
description: Unique campaign id
required: true
schema:
type: integer
format: int32
examples:
- 34343
examples:
default:
value: 34343
responses:
'200':
$ref: '#/components/responses/CampaignInformationSuccessResponse'
'404':
$ref: '#/components/responses/ErrorResponse404'
security:
- apiKey: []
servers:
- url: 'https://apis.creatoriq.com'
description: Live
patch:
tags:
- Campaign
summary: Update Campaign
description: 'Updates a certain set of fields of a campaign.<br><br>To fill the field CampaignManagerId properly use this API (https://public-apidoc.creatoriq.com/#4d43df49-10dc-49ec-855b-d447369fd7ca) to get users and their IDs.'
operationId: patchCampaigns
parameters:
- name: campaignId
in: path
description: Unique campaign id
required: true
schema:
type: integer
examples:
- 843362
examples:
default:
value: 843362
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/campaignBody'
responses:
'204':
description: Success
'400':
$ref: '#/components/responses/ErrorResponse400'
'500':
$ref: '#/components/responses/ErrorResponse400'
security:
- apiKey: []
servers:
- url: 'https://apis.creatoriq.com'
description: Live
delete:
tags:
- Campaign
summary: Delete Campaign
description: Delete a specific campaign
operationId: deleteCampaign
parameters:
- name: campaignId
in: path
description: Unique campaign id
required: true
schema:
type: integer
format: int32
examples:
- 2355
examples:
default:
value: 2355
responses:
'204':
description: Campaign was deleted
'404':
$ref: '#/components/responses/ErrorResponse404'
security:
- apiKey: []
servers:
- url: 'https://apis.creatoriq.com'
description: Live
'/crm/v1/api/campaign/{campaignId}/publishers':
get:
tags:
- Campaign
summary: Get Campaign Publishers
description: |
Returns the list of publishers associated with a campaign, post requirements and campaign specific information.
***
Example of url with query parameters:
> https://apis.creatoriq.com/crm/v1/api/campaign/{{campaignId}}/publishers?candidates={{candidates}}§ions={{sections}}&publisherId={{publisherId}}
operationId: getCampaignPublishers
parameters:
- name: candidates
in: query
description: 0 - Show "ActiveInCampaign" only (default value)<br>1 - Show "CandidateToCampaign" only<br>2 - Show both "ActiveInCampaign" and "CandidateToCampaign"
required: false
schema:
type: integer
enum:
- 0
- 1
- 2
format: int32
examples:
- 0
examples:
default:
value: 0
- name: sections
in: query
description: |
Comma-separated list of sections you need. Show additional info about publisher if publisherId in query params
Possible values are:
- ScheduledPosts
- Contract
- InstructionsForPublishers
- CampaignDashboardLink
- FinalPayout
- PublisherCampaignsListLink
- PublishersCustomFields
- FraudSummary
- CampaignFlags
- SocialAccounts
required: false
schema:
type: string
examples:
- 'ScheduledPosts,InstructionsForPublishers,PublishersCustomFields,SocialAccounts'
examples:
default:
value: 'ScheduledPosts,InstructionsForPublishers,PublishersCustomFields,SocialAccounts'
- name: publisherId
in: query
description: Id of publisher
required: false
schema:
type: integer
format: int32
examples:
- 23354
examples:
default:
value: 23354
- name: campaignId
in: path
description: Unique campaign id
required: true
schema:
type: integer
format: int32
examples:
- 44560
examples:
default:
value: 44560
responses:
'200':
$ref: '#/components/responses/CampaignPublishersResponse'
'404':
$ref: '#/components/responses/ErrorResponse404'
security:
- apiKey: []
servers:
- url: 'https://apis.creatoriq.com'
description: Live
post:
tags:
- Campaign
summary: Assign Publisher to Campaign
description: Assign a publisher (creator) to a specific campaign.<br>This API endpoint requires campaignId in the parameters. The body should contain publisherId and status
operationId: assignPublisherToCampaign
parameters:
- name: campaignId
in: path
description: Unique campaign id
required: true
schema:
type: integer
format: int32
examples:
- 42066
examples:
default:
value: 42066
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AssignPublisherToCampaignBody'
responses:
'201':
$ref: '#/components/responses/AssignPublisherToCampaignSuccessResponse'
'400':
$ref: '#/components/responses/ErrorResponse400'
'404':
$ref: '#/components/responses/ErrorResponse404'
security:
- apiKey: []
servers:
- url: 'https://apis.creatoriq.com'
description: Live
delete:
tags:
- Campaign
summary: Delete Publishers from Campaign
description: Removes a publishers (creator) from a specific campaign.
operationId: deletePublisherFromCampaign
parameters:
- name: campaignId
in: path
description: Unique campaign id
required: true
schema:
type: integer
examples:
- 42066
examples:
default:
value: 42066
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DeletePublisherFromCampaignBody'
responses:
'204':
description: Success
'400':
$ref: '#/components/responses/ErrorResponse400'
'404':
$ref: '#/components/responses/ErrorResponse404'
security:
- apiKey: []
servers:
- url: 'https://apis.creatoriq.com'
description: Live
patch:
tags:
- Campaign
summary: Update Campaign Publisher details
description: Update Campaign Publisher details
operationId: updateCampaignPublisherDetails
parameters:
- name: publisherId
in: query
description: Unique publisher id
required: true
schema:
type: integer
format: int32
examples:
- 42066001
examples:
default:
value: 42066001
- name: campaignId
in: path
description: Unique campaign id
required: true
schema:
type: integer
format: int32
examples:
- 42066
examples:
default:
value: 42066
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateCampaignPublisherDetailsBody'
responses:
'204':
description: Success
'400':
$ref: '#/components/responses/ErrorResponse400'
'404':
$ref: '#/components/responses/ErrorResponse404'
security:
- apiKey: []
servers:
- url: 'https://apis.creatoriq.com'
description: Live
'/crm/v1/api/campaign/{campaignId}/scheduledPosts':
get:
tags:
- Campaign
summary: Get Campaign Scheduled Posts
description: Returns the set of scheduled posts from a single campaign.
operationId: getCampaignScheduledPosts
parameters:
- name: publisherId
in: query
description: CIQ identifier/Id to uniquely identify the publisher. Do not pass publisherId or networkPublisherId here. Instead pass the Id attribute for the publisher/creator.
required: false
schema:
type: integer
format: int32
examples:
- 42066001
examples:
default:
value: 42066001
- name: campaignId
in: path
description: Unique campaign id
required: true
schema:
type: integer
examples:
- 848781
examples:
default:
value: 848781
responses:
'200':
$ref: '#/components/responses/CampaignScheduledPostsSuccessResponse'
'400':
$ref: '#/components/responses/ErrorResponse400'
'404':
$ref: '#/components/responses/ErrorResponse404'
security:
- apiKey: []
servers:
- url: 'https://apis.creatoriq.com'
description: Live
'/crm/v1/api/campaign/{campaignId}/publishersList':
get:
tags:
- Campaign
summary: Get Campaign Publishers List
description: returns the list of publishers (creators) with the standard publisher object within a single campaign.
operationId: getCampaignPublishersList
parameters:
- name: fields
in: query
description: |
Fields to include in the response. Possible values are listed below.
Example: `fields=PublisherId,PublisherName`.
Fields: MPID will always be returned.
schema:
$ref: '#/components/schemas/campaignPublishersListFieldsQuery'
example: PublisherName
examples:
default:
value: PublisherName
- name: campaignId
in: path
description: Unique campaign id
required: true
schema:
type: integer
examples:
- 42066
examples:
default:
value: 42066
responses:
'200':
$ref: '#/components/responses/CampaignPublishersListSuccessResponse'
'400':
$ref: '#/components/responses/ErrorResponse400'
'403':
description: Forbidden
'404':
$ref: '#/components/responses/ErrorResponse404'
security:
- apiKey: []
servers:
- url: 'https://apis.creatoriq.com'
description: Live
'/crm/v1/api/campaign/{campaignId}/updateActivity':
patch:
tags:
- Campaign
summary: Update Activity Async
description: In order to update campaign activity asynchronously you need to make a sequence of the same queries and review status of the task.<br>First request must return an object with "TaskId"<br>In the next iteration if the item is still processing the endpoint must return the same object but in "PROCESSING" status.<br>When the item processed it must return the same object but in "DONE" status.
operationId: updateActivityAsync
parameters:
- name: publisherId
in: query
description: Unique publisher id
required: false
schema:
type: integer
examples:
- 42066002
examples:
default:
value: 42066002
- name: campaignId
in: path
description: Unique campaign id
required: true
schema:
type: integer
examples:
- 42066
examples:
default:
value: 42066
responses:
'200':
$ref: '#/components/responses/UpdateActivityAsyncSuccessResponse'
security:
- apiKey: []
servers:
- url: 'https://apis.creatoriq.com'
description: Live
'/crm/v1/api/campaign/{campaignId}/dailyStats':
get:
tags:
- Campaign
summary: Get Campaign Daily Stats
description: Returns the campaign-level metrics. The data is grouped by the post-publish date.
operationId: getCampaignDailyStats
parameters:
- name: campaignId
in: path
description: Unique campaign id
required: true
schema:
type: integer
examples:
- 848781
examples:
default:
value: 848781
responses:
'200':
$ref: '#/components/responses/CampaignDailyStatsSuccessResponse'
'400':
$ref: '#/components/responses/ErrorResponse400'
'404':
$ref: '#/components/responses/ErrorResponse404'
security:
- apiKey: []
servers:
- url: 'https://apis.creatoriq.com'
description: Live
'/crm/v1/api/campaign/{campaignId}/publisher/{publisherId}/additionalRequirements':
get:
tags:
- Campaign
summary: Get Campaign Additional Requirements
description: returns the Campaign Additional Requirements.
operationId: getCampaignAdditionalRequirements
parameters:
- name: campaignId
in: path
description: Unique campaign id
required: true
schema:
type: integer
examples:
- 848781
examples:
default:
value: 848781
- name: publisherId
in: path
description: Unique publisher id
# --- truncated at 32 KB (369 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/creatoriq/refs/heads/main/openapi/creatoriq-campaigns-openapi.yml