{
  "openapi": "3.0.1",
  "info": {
    "title": "Influencer Finder: Score Your Creator List Against a Brief",
    "description": "Bring your creator list and score it against your campaign brief: a dataset or CSV from any YouTube, Instagram or TikTok scraper (Instagram/TikTok need bio and post data). Per creator a verdict with the quoted sentence, AI fit review (paid), ranked shortlist. Free: 1 creator in full.",
    "version": "0.1",
    "x-build-id": "z8Fzq8cTJHyrtiRY5"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/ntriqpro~influencer-fit-finder/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-ntriqpro-influencer-fit-finder",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/ntriqpro~influencer-fit-finder/runs": {
      "post": {
        "operationId": "runs-sync-ntriqpro-influencer-fit-finder",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/ntriqpro~influencer-fit-finder/run-sync": {
      "post": {
        "operationId": "run-sync-ntriqpro-influencer-fit-finder",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "datasetIds": {
            "title": "Datasets of other Actor runs",
            "type": "array",
            "description": "IDs (or console addresses) of datasets from other runs on your account, read with your own token. Field names of common scrapers are recognised as they come: our YouTube Channel Email Finder and YouTube Channel Monitor, Apify's Instagram Profile Scraper (username, biography, followersCount, latestPosts), TikTok scrapers (authorMeta, text, hashtags), YouTube e-mail scrapers (channelUrl, title or channelName, description, subscriberCount, email). Up to 10 datasets. A run reads at most 3 rows per creator of `maxCreators` (at most 20,000 rows of datasets and files in all), 5 MB of files and 120 seconds of reading; past that, reading stops with a notice and the creators read are judged. Reading is covered by the run-start fee (no event per row or file read).",
            "items": {
              "type": "string"
            }
          },
          "csvUrls": {
            "title": "CSV or JSON files",
            "type": "array",
            "description": "Public http(s) addresses of CSV or JSON files (a JSON array, an object with `items`, or JSON lines), up to 5 MB in all (a line cut at the limit is dropped), up to 10 files. Column names as in the datasets above; Apify's flattened export headers (authorMeta/name, latestPosts/0/caption) are read. Reading is covered by the run-start fee (no event per row or file read).",
            "items": {
              "type": "string"
            }
          },
          "creators": {
            "title": "Creators typed in",
            "type": "array",
            "description": "Profile addresses (youtube.com/@name, instagram.com/name, tiktok.com/@name), @handles (on the platform of `defaultPlatform`), instagram:name, tiktok:name or YouTube channel IDs. For YouTube channels typed here the public About page is read once (no login); a lookup YouTube refuses (HTTP 403 or 429) comes back as a row with accessRefused: true and is charged once as source-access-checked ($0.004 BRONZE) instead of a creator check. For Instagram and TikTok entries typed here only the handle is known, so the verdict is usually 'unclear' — bring a dataset with their bio and posts instead.",
            "items": {
              "type": "string"
            }
          },
          "defaultPlatform": {
            "title": "Platform of a bare @handle",
            "enum": [
              "youtube",
              "instagram",
              "tiktok"
            ],
            "type": "string",
            "description": "Which platform a bare @handle in `creators` belongs to.",
            "default": "youtube"
          },
          "brief": {
            "title": "Campaign brief",
            "type": "string",
            "description": "One or two sentences about the campaign and the creators you want (20-2,000 characters). Its topic words are matched against each creator's public text by the rules (all plans), and it is what the AI fit review judges against (paid plans)."
          },
          "mustHave": {
            "title": "Must-have keywords",
            "type": "array",
            "description": "Words or phrases a good fit should mention (up to 30). All found → strong, some → possible, none → weak. Each match comes with the sentence it was found in.",
            "items": {
              "type": "string"
            }
          },
          "exclude": {
            "title": "Exclude keywords",
            "type": "array",
            "description": "Words or phrases that rule a creator out (up to 30), for example competitors or topics you avoid. A creator whose text holds one is marked excluded with the sentence; the AI review (paid) also flags exclusions said in other words.",
            "items": {
              "type": "string"
            }
          },
          "minFollowers": {
            "title": "Minimum followers",
            "minimum": 0,
            "type": "integer",
            "description": "Creators below it are marked excluded (followerRange: below). Unknown follower counts are said, not excluded."
          },
          "maxFollowers": {
            "title": "Maximum followers",
            "minimum": 0,
            "type": "integer",
            "description": "Creators above it are marked excluded (followerRange: above)."
          },
          "aiFit": {
            "title": "AI fit review (paid plans)",
            "type": "boolean",
            "description": "Paid plans: an AI verdict (strong / possible / weak / unclear) per creator against your brief, with quotes from the creator's own text, the audience it states, topics and risk flags. $0.024 per verdict (BRONZE), charged only for verdicts that passed our checks (every quote is in the creator's text, no invented numbers). Creators without public text and creators your rules exclude are not sent. The creators' public text and your brief go to Anthropic's API (United States); no contact field is sent. On the free plan this is locked.",
            "default": true
          },
          "aiMaxItems": {
            "title": "Most AI reviews per run",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "The AI review stops after this many creators (paid plans).",
            "default": 200
          },
          "shortlist": {
            "title": "Ranked shortlist row (paid plans)",
            "type": "boolean",
            "description": "Paid plans: one row per run that ranks the creators (the AI verdict where there is one, else the rules) and counts why the others were excluded. $0.08 per run (BRONZE), made from 3 creators or more.",
            "default": true
          },
          "shortlistSize": {
            "title": "Shortlist size",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "How many creators the shortlist lists.",
            "default": 10
          },
          "maxCreators": {
            "title": "Most creators per run (paid plans)",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Paid plans: up to 5,000 creators per run. Free plan: the first 1 creator is judged in full by the rules; the rest (up to this number) come back as counts only in the free-plan-preview row (how many the rules rate strong or possible, weak, excluded or unclear, without saying who), with a fixed example of a paid row.",
            "default": 500
          },
          "readYoutubeAbout": {
            "title": "Read the About page of YouTube channels typed in",
            "type": "boolean",
            "description": "For YouTube channels in `creators` only: read the public About page once (description, subscribers, links) so there is text to judge. Creators from datasets and files are not read again.",
            "default": true
          },
          "proxyConfiguration": {
            "title": "Proxy for YouTube",
            "type": "object",
            "description": "Off unless you turn it on. Used for the About pages of YouTube channels typed in."
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}