{
  "openapi": "3.0.1",
  "info": {
    "title": "Instagram Niche Influencer Finder",
    "description": "Find niche Instagram influencers by topic. Describe a niche like 'vegan skincare' and get a ranked shortlist of public creators with engagement rates from recent posts, niche scores, follower tiers, and public contacts. No cookies required. $0.015 per influencer plus platform usage.",
    "version": "1.0",
    "x-build-id": "YeXIO5Yauw00dxd3H"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/khadinakbar~instagram-niche-influencer-finder/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-khadinakbar-instagram-niche-influencer-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/khadinakbar~instagram-niche-influencer-finder/runs": {
      "post": {
        "operationId": "runs-sync-khadinakbar-instagram-niche-influencer-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/khadinakbar~instagram-niche-influencer-finder/run-sync": {
      "post": {
        "operationId": "run-sync-khadinakbar-instagram-niche-influencer-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",
        "required": [
          "topics"
        ],
        "properties": {
          "topics": {
            "title": "Niche topics",
            "type": "array",
            "description": "Use this to describe the niche each influencer should match. Enter one or more plain phrases such as 'vegan skincare', 'home coffee brewing', or 'trail running gear'. The actor searches public Instagram profiles for each topic, enriches the strongest candidates, and scores how well each creator fits the topic. This is not a list of usernames, profile URLs, or hashtags; use a profile or hashtag scraper for those jobs.",
            "items": {
              "type": "string"
            }
          },
          "maxInfluencers": {
            "title": "Maximum influencers",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Use this to cap the ranked influencer shortlist and its billable rows. Enter a whole number from 1 to 500; the default is 25. The actor enriches candidates until this many influencers pass the follower, engagement, and contact filters. This caps the total run, not the per-topic count.",
            "default": 25
          },
          "minFollowers": {
            "title": "Minimum followers",
            "minimum": 0,
            "type": "integer",
            "description": "Use this to exclude small or spammy accounts from the shortlist. Enter a whole number such as 5000; the default is 1000, a common nano-influencer floor. Influencers below the threshold are filtered out before anything is written or charged. Combine with maxFollowers to target a specific creator tier.",
            "default": 1000
          },
          "maxFollowers": {
            "title": "Maximum followers",
            "minimum": 1,
            "type": "integer",
            "description": "Use this to keep the shortlist inside an affordable creator tier. Enter a whole number such as 100000; the default is 500000, which includes most mid-tier creators. Influencers above the threshold are filtered out before anything is written or charged. Set a high value when only the minimum matters.",
            "default": 500000
          },
          "minEngagementRatePct": {
            "title": "Minimum engagement rate (percent)",
            "minimum": 0,
            "maximum": 100,
            "type": "number",
            "description": "Use this to drop creators whose audience rarely interacts. Enter a percentage such as 1.5; the default is 0, which keeps every influencer. The rate is average likes plus comments per recent post divided by followers. Records below the threshold are filtered out before anything is written or charged.",
            "default": 0
          },
          "requireEmail": {
            "title": "Only influencers with a public email",
            "type": "boolean",
            "description": "Use this when outreach-ready contacts are required. Enable it to keep only influencers that expose an email in their public business contact field or biography; the default is off. The actor reads public data only and cannot discover hidden or direct-message contacts. Turn it off when the shortlist matters more than contactability.",
            "default": false
          },
          "requireVerified": {
            "title": "Only verified influencers",
            "type": "boolean",
            "description": "Use this when the blue check is a campaign requirement. Enable it to keep only publicly verified accounts; the default is off. Verified status comes from the public profile metadata returned by the data provider. It does not measure audience quality or fake followers.",
            "default": false
          },
          "sortBy": {
            "title": "Rank shortlist by",
            "enum": [
              "engagement-rate",
              "followers",
              "niche-score"
            ],
            "type": "string",
            "description": "Use this to choose the order of the ranked shortlist. Choose engagement-rate for average interaction per follower, followers for raw audience size, or niche-score for the combined relevance ranking; the default is engagement-rate. Every record includes all three values regardless of this choice. This orders the output; it does not change which influencers are found.",
            "default": "engagement-rate"
          },
          "postsPerInfluencer": {
            "title": "Recent posts analyzed per influencer",
            "minimum": 6,
            "maximum": 24,
            "type": "integer",
            "description": "Use this to tune how many recent posts feed the engagement average. Enter 6 to 24; the default is 12, about one page of posts. More posts give a steadier engagement rate but each extra page adds provider time and platform usage cost. This does not scrape post content into the output; only the aggregate metrics are kept.",
            "default": 12
          },
          "maxSearchPagesPerTopic": {
            "title": "Maximum search pages per topic",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Use this advanced control to bound profile-search depth for each topic. Enter an integer from 1 to 10; the default is computed from maxInfluencers so the actor usually gathers about two to three candidates per saved influencer. Lower values are useful for cheap canaries; higher values help when strict filters reject many candidates. This limits discovery pages, not enrichment."
          },
          "outputMode": {
            "title": "Output mode",
            "enum": [
              "full",
              "compact"
            ],
            "type": "string",
            "description": "Use this when selecting concise agent-friendly records or fuller research records. Choose compact for core scoring, count, and contact fields, or full for biography, links, and provider provenance fields; the default is full. Both modes return one row per influencer with identical scoring. This changes field breadth, not which influencers are found.",
            "default": "full"
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}