{
  "openapi": "3.0.1",
  "info": {
    "title": "Herohero Scraper & Creator Analytics",
    "description": "Scrape public Herohero creators, supporter counts, subscription prices, profile views, follower counts, trending creators, and public post metadata. Export structured Herohero data via API.",
    "version": "0.1",
    "x-build-id": "cYhT5eaDczoG1Q3v5"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/huykenny~herohero-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-huykenny-herohero-scraper",
        "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/huykenny~herohero-scraper/runs": {
      "post": {
        "operationId": "runs-sync-huykenny-herohero-scraper",
        "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/huykenny~herohero-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-huykenny-herohero-scraper",
        "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": {
          "discoveryMode": {
            "title": "What to scrape",
            "enum": [
              "top",
              "featured",
              "all",
              "search",
              "category",
              "profiles"
            ],
            "type": "string",
            "description": "How creators are picked. 'Top creators' walks the public leaderboard, 'Explore ranking' takes Herohero's own trending or popular shortlist (20 creators), 'All creators' walks the leaderboard to the very end (slow — the tail is full of accounts with zero supporters), 'Search' runs your keywords, 'Category' walks Herohero's categories, 'Specific profiles' takes the URLs you list below.",
            "default": "top"
          },
          "sortBy": {
            "title": "Rank by",
            "enum": [
              "SUBSCRIBERS",
              "PROFILE_VIEWS",
              "SPOTLIGHT"
            ],
            "type": "string",
            "description": "Ordering of the leaderboard and of category listings.",
            "default": "SUBSCRIBERS"
          },
          "featuredCategory": {
            "title": "Explore ranking",
            "enum": [
              "TRENDING",
              "POPULAR"
            ],
            "type": "string",
            "description": "Which Herohero explore shortlist to take in 'Explore ranking' mode. Each returns 20 creators, shuffled on every call. Herohero's public API publishes TRENDING and POPULAR only — there is no separate rising leaderboard.",
            "default": "TRENDING"
          },
          "searchTerms": {
            "title": "Search terms",
            "type": "array",
            "description": "Keywords for 'Search by keyword'. Each term returns the creators Herohero considers relevant, up to 100.",
            "items": {
              "type": "string"
            }
          },
          "categoryIds": {
            "title": "Category IDs",
            "type": "array",
            "description": "Category IDs for 'By category', e.g. news-politics-commentary, sports, fitness-wellness, travel-adventure, education-learning, entertainment-pop-culture. Leave empty to sweep every category.",
            "items": {
              "type": "string"
            }
          },
          "profileUrls": {
            "title": "Profile URLs or handles",
            "type": "array",
            "description": "Specific creators, as https://herohero.co/<handle> or just the handle. Filling this in overrides the leaderboard modes.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "maxCreators": {
            "title": "Max creators",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many creators. 0 means no limit. Ignored in 'All creators' mode, which always runs to the end.",
            "default": 200
          },
          "minSupporters": {
            "title": "Min subscribers",
            "minimum": 0,
            "type": "integer",
            "description": "Skip creators below this subscriber count. When ranking by subscriber count this also stops paging early, which saves a lot of time."
          },
          "maxSupporters": {
            "title": "Max subscribers",
            "minimum": 0,
            "type": "integer",
            "description": "Skip creators above this subscriber count — useful for finding mid-tier creators."
          },
          "verifiedOnly": {
            "title": "Verified creators only",
            "type": "boolean",
            "description": "Keep only creators with the Herohero verified badge.",
            "default": false
          },
          "subscribableOnly": {
            "title": "Open for subscriptions only",
            "type": "boolean",
            "description": "Keep only creators who currently accept new paying subscribers.",
            "default": false
          },
          "withFreeTrialOnly": {
            "title": "With free trial only",
            "type": "boolean",
            "description": "Keep only creators offering an automatic free trial.",
            "default": false
          },
          "activeSince": {
            "title": "Posted since",
            "type": "string",
            "description": "Keep only creators whose last post is on or after this date (YYYY-MM-DD)."
          },
          "includePosts": {
            "title": "Also scrape posts",
            "type": "boolean",
            "description": "Adds one dataset item per public post: title, preview text, publish date, comment and reaction counts. Paid posts appear as metadata only — the content stays locked.",
            "default": false
          },
          "maxPostsPerCreator": {
            "title": "Max posts per creator",
            "minimum": 0,
            "type": "integer",
            "description": "Newest first.",
            "default": 20
          },
          "postTextLength": {
            "title": "Post text length",
            "minimum": 0,
            "type": "integer",
            "description": "Truncate post text to this many characters. 0 keeps the full preview text the API returns.",
            "default": 500
          },
          "maxItems": {
            "title": "Max dataset items",
            "minimum": 1,
            "type": "integer",
            "description": "Hard stop across creators and posts combined. Leave empty for no limit."
          },
          "requestDelayMs": {
            "title": "Delay between requests",
            "minimum": 0,
            "maximum": 10000,
            "type": "integer",
            "description": "Milliseconds to wait between API calls. Lower is faster but less polite to the site.",
            "default": 350
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Optional. The API answers fine from a datacenter IP, but a proxy spreads out long full sweeps.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}