{
  "openapi": "3.0.1",
  "info": {
    "title": "Patreon Scraper — Creator Earnings, Tiers & Members",
    "description": "Scrape public Patreon creators by username or URL: profile, membership tiers and prices, patron and paid-member counts, an estimated monthly earnings range, social links, and recent posts. Keyword creator search included. HTTP-only, MCP-ready, no login required.",
    "version": "0.1",
    "x-build-id": "IJuhKZBA5mFAivy6a"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/khadinakbar~patreon-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-khadinakbar-patreon-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/khadinakbar~patreon-scraper/runs": {
      "post": {
        "operationId": "runs-sync-khadinakbar-patreon-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/khadinakbar~patreon-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-khadinakbar-patreon-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": {
          "creators": {
            "title": "Creator usernames or URLs",
            "type": "array",
            "description": "Patreon creators to scrape, each as a username, @handle, or full creator URL (e.g. 'TopoTraveler', '@TopoTraveler', or 'https://www.patreon.com/TopoTraveler'). The /c/, /cw/ and user?u= URL forms are also accepted. Each resolves to one creator-profile record. Leave empty if you only want keyword search; this is NOT a post URL.",
            "items": {
              "type": "string"
            }
          },
          "searchQueries": {
            "title": "Search keywords (creator discovery)",
            "type": "array",
            "description": "Free-text keywords to discover Patreon creators (e.g. 'rock climbing podcast'). Each query returns up to maxSearchResults matching creators. Use this to find creators when you do not already know their handle; for a known creator use the 'creators' field instead. Optional.",
            "items": {
              "type": "string"
            }
          },
          "includePosts": {
            "title": "Also scrape recent posts",
            "type": "boolean",
            "description": "When true, also scrape each creator's most recent posts (title, type, publish date, like and comment counts, paywall status). Adds one post-scraped charge per post returned. Applies to creators from both 'creators' and search results. Defaults to false.",
            "default": false
          },
          "maxPostsPerCreator": {
            "title": "Max posts per creator",
            "minimum": 0,
            "maximum": 500,
            "type": "integer",
            "description": "Upper bound on posts returned per creator when includePosts is true (e.g. 20). Posts are returned newest-first. Set to 0 to disable posts even if includePosts is true. Defaults to 20; max 500.",
            "default": 20
          },
          "maxSearchResults": {
            "title": "Max results per search query",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "Upper bound on creators returned per search query (e.g. 20). Only applies to 'searchQueries'. Each result is a creator record. Defaults to 20; max 200.",
            "default": 20
          },
          "enrichSearchResults": {
            "title": "Enrich search results with full profile",
            "type": "boolean",
            "description": "When true, each search hit is enriched with a full profile fetch (tiers, paid-member count, earnings estimate, socials) — same shape as the 'creators' output. When false, search returns the lighter card data only (name, patron count, URL, avatar) and runs cheaper. Defaults to true.",
            "default": true
          },
          "maxResults": {
            "title": "Max total records (cost cap)",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Hard safety cap on the TOTAL number of billable records (creators + posts) pushed across the whole run, regardless of inputs (e.g. 1000). Stops the run cleanly when reached so cost stays predictable. Defaults to 1000; max 100000.",
            "default": 1000
          },
          "sessionId": {
            "title": "Patreon session_id cookie (optional)",
            "type": "string",
            "description": "Optional Patreon 'session_id' cookie value from a logged-in account, used only to read exclusive/paid post metadata you already have access to. Leave blank for public data (default). Can also be supplied via the PATREON_SESSION_ID environment variable. Never required; public profiles, tiers, counts and earnings work without it."
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Proxy settings. Defaults to Apify Proxy (automatic datacenter selection), which works against Patreon and is available on every plan. If your account has the Residential group you may add it for extra resilience, but it is not required.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}