{
  "openapi": "3.0.1",
  "info": {
    "title": "Steam Curators Finder - Followers, Genres & Contact Links",
    "description": "Find Steam curators for key outreach: followers, genres, last review, public website/YouTube/Twitter links, and 'curators who covered games like mine' by appid. No key, no login. A free alternative to Keymailer-style lists. Failed lookups are never charged.",
    "version": "1.0",
    "x-build-id": "1mkOVo6AvVOxibyrt"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/that_red_bird~steam-curator-finder/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-that_red_bird-steam-curator-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/that_red_bird~steam-curator-finder/runs": {
      "post": {
        "operationId": "runs-sync-that_red_bird-steam-curator-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/that_red_bird~steam-curator-finder/run-sync": {
      "post": {
        "operationId": "run-sync-that_red_bird-steam-curator-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": {
          "appIds": {
            "title": "Steam app IDs (your game + similar games)",
            "type": "array",
            "description": "Steam app IDs or store URLs of your game and games like it (the number in store.steampowered.com/app/1245620/...). The Actor finds curators who reviewed them and ranks curators who covered the most. Leave empty (with Similar games empty) to list the most-followed active curators.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "similarToAppIds": {
            "title": "Find curators of games similar to",
            "type": "array",
            "description": "Steam app IDs. For each, the Actor takes Steam's 'more like this' games and adds the curators who covered those too. Good when your own game is unreleased or has no reviews yet.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "similarCount": {
            "title": "Similar games per app",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "How many 'more like this' games to add for each app in Find curators of games similar to.",
            "default": 5
          },
          "maxCurators": {
            "title": "Max curators",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Maximum number of curators returned, best first (most games covered, then most followers).",
            "default": 25
          },
          "minFollowers": {
            "title": "Min followers",
            "minimum": 0,
            "maximum": 100000000,
            "type": "integer",
            "description": "Skip curators with fewer followers than this.",
            "default": 500
          },
          "activeWithinDays": {
            "title": "Active within (days)",
            "minimum": 0,
            "maximum": 3650,
            "type": "integer",
            "description": "Only curators whose latest review is at most this many days old. 0 turns the filter off. Inactive curators will not answer your key request.",
            "default": 365
          },
          "includeContacts": {
            "title": "Fetch contact links and genres",
            "type": "boolean",
            "description": "Open each curator's Steam page to collect their public website / YouTube / Twitter / Discord links, emails and the genres they cover. Slower but this is the outreach data.",
            "default": true
          },
          "requireContact": {
            "title": "Only curators with a contact link",
            "type": "boolean",
            "description": "Keep only curators that publish at least one external link or email. Needs Fetch contact links turned on.",
            "default": false
          },
          "includeReviews": {
            "title": "Include their reviews of your games",
            "type": "boolean",
            "description": "Add each curator's review of the requested games: verdict, date, one-line blurb, link, and whether they received a free copy.",
            "default": true
          },
          "maxCuratorsPerApp": {
            "title": "Max curators scanned per game",
            "minimum": 10,
            "maximum": 1000,
            "type": "integer",
            "description": "How many curators to read from Steam's list for each game (50 per request, most-followed first). Raise it to dig deeper into small curators.",
            "default": 100
          },
          "concurrency": {
            "title": "Parallel requests",
            "minimum": 1,
            "maximum": 6,
            "type": "integer",
            "description": "How many curator pages are opened at once. Keep it low to stay friendly to Steam.",
            "default": 3
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}