# Creator Discovery and Campaign Data API - CreatorIQ (`nabeelbaghoor/creator-discovery-crm-campaign-data-api`) Actor

Search the creators in your CreatorIQ CRM by category, country, language, gender and tags, then pull profiles, social accounts, audience demographics, live Instagram, TikTok and YouTube stats, campaigns, campaign creators and post metrics (reach, views, EMV). Read only. Bring your own API key.

- **URL**: https://apify.com/nabeelbaghoor/creator-discovery-crm-campaign-data-api.md
- **Developed by:** [Nabeel Hassan](https://apify.com/nabeelbaghoor) (community)
- **Categories:** Social media, Marketing, Lead generation
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $8.00 / 1,000 creator founds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Creator Discovery and Campaign Data API - CreatorIQ

Search the creators in your CreatorIQ CRM by category, country, language, gender and tags, then pull each creator's profile, social accounts with followers and engagement rate, first-party audience demographics, and the campaigns, campaign creators and post-level results (likes, comments, views, reach, impressions, earned media value) behind your influencer marketing. You get clean rows ready for a spreadsheet, a BI dashboard or a data warehouse, with no CSV exports from the CreatorIQ UI.

### What it collects

- **Creator search (CRM)**: the creators (publishers) in your CRM, filtered by name, category, country, language, gender, tags or any other documented column (status, sub categories, recruiter, last updated, total subscribers and more), sorted by name, total subscribers or recruiting date. 100 per page.
- **Creator profile**: one creator record per publisher id: name, status, category, country, language, gender, tags, campaigns count, fraud flags, and the whole record under `raw` on request.
- **Creator social accounts**: every Instagram, TikTok, YouTube, Facebook, Twitter, Pinterest or Twitch account linked to a creator, with followers, engagement rate, posts, average likes, comments and views, verified status and last post date.
- **Creator audience demographics**: first-party audience data per social account: gender split, age groups, top countries, states, cities and ethnicity.
- **Creator lookup by handle**: whether a username or profile link is already a creator in your CRM, and their record when it is.
- **Social profile data**: live account data for an Instagram, TikTok, YouTube, Twitch or Facebook profile link or username: followers, posts, likes, bio, verified, and YouTube engagement rates.
- **Campaigns**: campaign name, status, dates, budget, spend, objective and advertiser, with the documented campaign filter.
- **Campaign creators**: the creators active in a campaign, candidates to it, or both, with status, fees and approval settings.
- **Campaign posts and metrics**: every post in a campaign with network, post type, link, likes, comments, views, reach, impressions, engagement, engagement rate, EMV, shares, saves and link clicks, filtered by date, network, post type or creator.
- **Creator lists**: your saved creator lists with their member ids.
- Read only, pay per result, bring your own key.

### What is and is not wired

CreatorIQ publishes 17 OpenAPI documents with about 159 operations at apidocs.creatoriq.com. This actor wires the ten read routes most useful for creator discovery and campaign reporting, all on `https://apis.creatoriq.com`:

| Service | Route |
| --- | --- |
| Creator search | `GET /crm/v1/api/publishers` |
| Creator profile | `GET /crm/v1/api/publisher/{publisherId}` |
| Creator social accounts | `GET /crm/v1/api/publisher/{publisherId}/accounts` |
| Creator audience demographics | `GET /crm/v1/api/publisher/{publisherId}/audience` |
| Creator lookup by handle | `GET /crm/v1/api/accounts/lookup` |
| Social profile data | `GET /crm/v1/api/social/accountInfo` |
| Campaigns | `GET /crm/v1/api/campaigns` |
| Campaign creators | `GET /crm/v1/api/campaign/{campaignId}/publishers` |
| Campaign posts and metrics | `GET /crm/v1/api/campaign/{campaignId}/activity` |
| Creator lists | `GET /crm/v1/api/lists` |

Not wired: every create, update and delete route (creators, social accounts, contacts, campaigns, brands, lists, notes, onesheets), messaging and bulk email, tags, payouts and payments, promo codes and ecommerce transactions, link tracking, conversion metric writes, brand safety, webhook subscriptions, and the asynchronous reporting views (`/crm/v1/api/view?view=Reports/...`), which answer with a task id rather than data. Nothing in your account is changed.

### Input

| Field | What it does |
| --- | --- |
| What to read | One of the ten services above. Creator search is the default. |
| Identifiers | Publisher ids, usernames or profile links, or campaign ids, one per line, depending on the service. |
| Social network | The network for handle lookups and for usernames in social profile data. |
| Publisher id type | Whether publisher ids are the internal id or the PublisherId. |
| Creator name, categories, countries, languages, genders, tags | Creator search filters. Several values in one field match any of them. |
| Extra filter | Creator search: more documented columns as `Column=Value;Column2=Value`. |
| Sort by, sort order | Creator search order. |
| Campaign filter | Campaigns: documented filters such as `StartDate=2024-01-01;DivisionId=1234`. |
| Campaign members, campaign creator sections | Campaign creators options. |
| Posts from, posts to, post network, post type, post publisher id | Campaign posts filters. |
| Include the full record | Keep the provider's whole record under `raw`. |
| Maximum results | Row cap for the run. |
| Requests per minute | Pacing for calls to the provider. |
| API key | Your own CreatorIQ API key, as a secret input. |

### Example output

A campaign post row:

```json
{
  "service": "campaignPosts",
  "requested": "42066",
  "found": true,
  "recordType": "campaignPost",
  "publisherId": "8082160",
  "name": "Jane Doe",
  "platform": "instagram",
  "username": "janedoe",
  "campaignId": "42066",
  "campaignName": "Spring Launch",
  "postId": "3051234567890123456",
  "postType": "reel",
  "postUrl": "https://www.instagram.com/reel/Cx1234abcd/",
  "likes": 18420,
  "comments": 312,
  "views": 254000,
  "reach": 190500,
  "impressions": 263100,
  "engagement": 19110,
  "engagementRate": 4.2,
  "emv": 5400,
  "followers": 455000,
  "metrics": { "shares": 211, "saves": 980, "linkClicks": 1430 },
  "note": null
}
```

A creator social account row:

```json
{
  "service": "socialAccounts",
  "requested": "12472164",
  "found": true,
  "recordType": "socialAccount",
  "publisherId": "12472164",
  "platform": "instagram",
  "username": "therock",
  "socialId": "232192182",
  "followers": 395000000,
  "engagementRate": 0.35,
  "posts": 7900,
  "avgLikes": 1150000,
  "avgComments": 8900,
  "isVerified": true,
  "metrics": { "last30DaysPosts": 14, "lastPostDate": "2026-09-28 17:02:11" }
}
```

Values are illustrative.

### FAQ

#### What is this creator discovery and campaign data API used for?

Getting influencer marketing data out of CreatorIQ and into the tools a team already uses. A brand team exports every creator tagged for a product launch with their Instagram and TikTok followers and audience countries. An agency pulls every post from last month's campaigns with reach, views and EMV into a Looker or Power BI dashboard. A growth team checks a list of new TikTok handles against the CRM before outreach to avoid contacting a creator twice.

#### Which data source does this actor read?

The CreatorIQ API at apis.creatoriq.com, through the routes in its public documentation at apidocs.creatoriq.com: the CRM Publishers API for creators, social accounts and audience, the Social Accounts API for handle lookup and social account data, the Campaigns API for campaigns, campaign creators and campaign activity, and the CRM Lists API. Every call is a GET.

#### Do I need a CreatorIQ account and API key?

Yes. This actor is bring-your-own-key and never ships one. CreatorIQ is an enterprise platform: API keys are issued per CRM instance by your CreatorIQ account manager or support@creatoriq.com, and a sandbox key can be requested through sales. Paste the key into the API key input, or set it once as the `DATA_API_KEY` environment secret. It travels only in the `x-api-key` header to the API host. A missing or refused key ends the run cleanly with a message saying which it was.

#### Can it discover creators outside my CRM?

Partly. The creator search, profile, social account, audience and campaign services read the creators already in your CRM. Social profile data reads live stats for any Instagram, TikTok, YouTube, Twitch or Facebook profile link or username, and creator lookup by handle tells you whether a handle is in your CRM. The CreatorIQ UI's full creator discovery index is not exposed as a documented API route, so it is not offered here.

#### What audience demographics are returned?

First-party audience data per social account, where CreatorIQ has it: the female and male share, age groups from 13-17 to 65+, the top countries, states and cities with their share, top ethnicities and regions. A creator with no audience data gets a free row with `found: false`.

#### What campaign metrics are returned?

Per post: likes, comments, views, reach, impressions, engagement, engagement rate, EMV, shares, saves, link clicks, earned media, sentiment, followers at the time of the post, and paid and combined impressions. The full set of about 195 post fields is kept under `raw` when the full record is included.

#### What are the rate limits?

CreatorIQ allows 5 requests per second and 100,000 calls per day per key. The actor paces itself to 120 requests per minute by default and retries rate limited answers. Social account and post data in the CRM refreshes about every 24 hours.

#### What happens when there is nothing for an identifier?

It becomes its own row with `found: false` and a note: a publisher or campaign id the CRM does not have, a social account the provider cannot find, or a creator with no audience data. Those rows are never charged.

#### How is it priced?

Pay per result: $0.008 per creator from a search, handle lookup or campaign, $0.015 per creator profile, social account, audience breakdown or live social profile, and $0.005 per campaign, campaign post or creator list. Rows for identifiers that produced nothing are free. Your CreatorIQ subscription applies separately.

### Pricing

| Event | Price |
| --- | --- |
| Creator found (search, handle lookup, campaign creator) | $0.008 per row |
| Creator profile, social account, audience or social profile | $0.015 per row |
| Campaign, campaign post or creator list | $0.005 per row |

### Keyword map

creator discovery API, influencer CRM API, CreatorIQ API, CreatorIQ export, influencer campaign reporting, campaign post metrics, earned media value EMV, influencer audience demographics, creator social accounts, Instagram followers API, TikTok creator stats, YouTube channel stats, influencer marketing data, creator list export, influencer campaign analytics, creator lookup by handle.

# Actor input Schema

## `service` (type: `string`):

Creator search lists the creators in your CRM with the filters below and needs no identifiers, so it is the default. Creator profile, social accounts and audience demographics read each publisher id in the identifiers input. Creator lookup by handle checks whether a username or profile link is in your CRM. Social profile data reads live stats for profile links or usernames. Campaigns lists campaigns; campaign creators and campaign posts read each campaign id. Creator lists lists your saved lists.

## `identifiers` (type: `array`):

One per line. Creator profile, social accounts and audience: publisher ids, as the creator search returns them. Creator lookup by handle: usernames or profile links. Social profile data: profile links, or usernames on the social network below. Campaign creators and campaign posts: campaign ids. Creator search, campaigns and lists read none.

## `socialNetwork` (type: `string`):

Creator lookup by handle, and social profile data given usernames: the network the handles belong to. Social profile data takes Instagram, TikTok, YouTube, Twitch and Facebook; profile links need no network.

## `publisherIdType` (type: `string`):

Creator profile and social accounts: whether the identifiers are the internal id (the publisherId column of this actor) or the PublisherId (the publisherKey column).

## `creatorName` (type: `string`):

Creator search: match this creator name (PublisherName).

## `categories` (type: `array`):

Creator search: categories as your CRM names them, such as Beauty or Gaming. Any of them matches.

## `countries` (type: `array`):

Creator search: creator countries as your CRM stores them.

## `languages` (type: `array`):

Creator search: creator languages, such as English.

## `genders` (type: `array`):

Creator search: creator genders, such as female or male.

## `tags` (type: `array`):

Creator search: CRM tags the creator carries.

## `extraFilter` (type: `string`):

Creator search: more documented filters as Column=Value pairs separated by semicolons, several values separated by commas, such as Status=Active;EyeColor=Blue,Green. Columns: Id, PublisherName, NetworkPublisherId, DateOfBirth, Language, EthnicBackground, Gender, RecruiterName, Category, SubCategories, Description, LastUpdated, Country, Relationship, Children, Pets, EyeColor, HairColor, InternalDescription, Tags, TotalSubscribers, Status.

## `sortBy` (type: `string`):

Creator search: the order creators come in.

## `sortOrder` (type: `string`):

Creator search.

## `campaignFilter` (type: `string`):

Campaigns: documented filters as Column=Value pairs separated by semicolons, such as StartDate=2024-01-01;DivisionId=1234. Encoded for you.

## `campaignMembers` (type: `string`):

Campaign creators: creators active in the campaign, candidates to it, or both.

## `campaignSections` (type: `array`):

Campaign creators: extra sections to include with each creator. They appear under raw when the full record is included.

## `postsFrom` (type: `string`):

Campaign posts: the first date, as YYYY-MM-DD.

## `postsTo` (type: `string`):

Campaign posts: the last date, as YYYY-MM-DD.

## `postNetwork` (type: `string`):

Campaign posts: one social network only.

## `postType` (type: `string`):

Campaign posts: one post type only.

## `postPublisherId` (type: `integer`):

Campaign posts: the posts of one creator only, by internal publisher id.

## `includeRaw` (type: `boolean`):

Keep the provider's whole record under raw, alongside the flattened columns. Creator records carry over a hundred fields, contact details included.

## `maxResults` (type: `integer`):

Stop after this many rows. Lists are read 100 records per page, and only as many pages as this needs.

## `requestsPerMinute` (type: `integer`):

Pacing ceiling for calls to the provider, which allows 5 per second and 100,000 a day per key. Rate limited answers are retried after a pause.

## `apiKey` (type: `string`):

Your own CreatorIQ API key (x-api-key), issued by your account manager for your CRM instance. This actor is bring-your-own-key and never ships one. Leave blank to use the DATA_API_KEY environment secret. It is sent only to the API host and is never written to a row or logged.

## `baseUrl` (type: `string`):

Override the host the actor calls. Only useful for testing against a different environment.

## Actor input object example

```json
{
  "service": "creators",
  "socialNetwork": "instagram",
  "publisherIdType": "Id",
  "sortBy": "default",
  "sortOrder": "asc",
  "campaignMembers": "active",
  "postNetwork": "any",
  "postType": "any",
  "includeRaw": false,
  "maxResults": 100,
  "requestsPerMinute": 120
}
```

# Actor output Schema

## `records` (type: `string`):

One row per creator, social account, audience, campaign, campaign post or list.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("nabeelbaghoor/creator-discovery-crm-campaign-data-api").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("nabeelbaghoor/creator-discovery-crm-campaign-data-api").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call nabeelbaghoor/creator-discovery-crm-campaign-data-api --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,nabeelbaghoor/creator-discovery-crm-campaign-data-api"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/62ylXG2RHuASxtwvq/builds/qdv3BtwgWKpM1FSvp/openapi.json
