{
  "openapi": "3.0.1",
  "info": {
    "title": "Discord Server Scraper",
    "description": "Scrape Discord's public server directory: search by keyword, browse categories, or look up server links and invites. Members, online count, boosts, language, categories, keywords, verified and partnered, vanity invite, About text, socials. No login.",
    "version": "1.0",
    "x-build-id": "BVM4elW51eBsC7P8b"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/steadyscrape~discord-server-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-steadyscrape-discord-server-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/steadyscrape~discord-server-scraper/runs": {
      "post": {
        "operationId": "runs-sync-steadyscrape-discord-server-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/steadyscrape~discord-server-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-steadyscrape-discord-server-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": {
          "searchTerms": {
            "title": "Search terms",
            "type": "array",
            "description": "Words to search Discord's server directory for, e.g. <code>minecraft</code> or <code>crypto trading</code>. Discord's search returns at most ~55 servers per term, so each term is also searched inside the five category pages (Gaming, Music, Entertainment, Science & Tech, Education), up to ~330 servers. Leave empty to browse the categories below instead.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "categories": {
            "title": "Categories",
            "type": "array",
            "description": "Without search terms: the directory pages to browse, biggest servers first, up to ~3,000 servers each (Discord shows no more). With search terms: search only inside these. Empty browses all servers, or searches everywhere.",
            "items": {
              "type": "string",
              "enum": [
                "all",
                "gaming",
                "music",
                "entertainment",
                "science-tech",
                "education"
              ],
              "enumTitles": [
                "All servers (home)",
                "Gaming",
                "Music",
                "Entertainment",
                "Science & Tech",
                "Education"
              ]
            },
            "default": []
          },
          "serverUrls": {
            "title": "Server links, ids or invites",
            "type": "array",
            "description": "Read only these: directory pages such as <code>https://discord.com/servers/wynncraft-mmorpg-minecraft-server-143852930036924417</code>, server ids, or invite links and codes such as <code>https://discord.gg/wynncraft</code>. A directory page or id is read with its details; an invite gives what Discord shows before joining (server, member and online counts, verification level, channel, expiry), also for servers not in the directory. When set, searches and categories are not read. A link that names nothing, or a server or invite Discord does not have, gets a free row saying so.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "includeDetails": {
            "title": "Include each server's page",
            "type": "boolean",
            "description": "Also open each server's own directory page: the longer About text, creation date, reasons to join, social links, every category, and (for search results) boosts, keywords and the vanity invite. Charged as <b>server with details</b> instead of <b>server</b>; one more request per server.",
            "default": false
          },
          "minMembers": {
            "title": "Minimum members",
            "minimum": 0,
            "type": "integer",
            "description": "Keep servers with at least this many members. Filters apply to searches and categories, before any server page is opened, so filtered servers cost nothing."
          },
          "maxMembers": {
            "title": "Maximum members",
            "minimum": 0,
            "type": "integer",
            "description": "Keep servers with at most this many members, e.g. to find smaller communities to partner with."
          },
          "minOnline": {
            "title": "Minimum members online",
            "minimum": 0,
            "type": "integer",
            "description": "Keep servers with at least this many members online now: a better sign of an active community than the member count."
          },
          "languages": {
            "title": "Languages",
            "type": "array",
            "description": "Keep servers whose owner set one of these as the server's language. Empty keeps all.",
            "items": {
              "type": "string",
              "enum": [
                "en-US",
                "en-GB",
                "es-ES",
                "es-419",
                "pt-BR",
                "fr",
                "de",
                "it",
                "nl",
                "pl",
                "ru",
                "uk",
                "tr",
                "ja",
                "ko",
                "zh-CN",
                "zh-TW",
                "id",
                "vi",
                "th",
                "hi",
                "sv-SE",
                "no",
                "da",
                "fi",
                "cs",
                "ro",
                "hu",
                "el",
                "bg",
                "hr",
                "lt"
              ],
              "enumTitles": [
                "English (US)",
                "English (UK)",
                "Spanish (Spain)",
                "Spanish (Latin America)",
                "Portuguese (Brazil)",
                "French",
                "German",
                "Italian",
                "Dutch",
                "Polish",
                "Russian",
                "Ukrainian",
                "Turkish",
                "Japanese",
                "Korean",
                "Chinese (Simplified)",
                "Chinese (Traditional)",
                "Indonesian",
                "Vietnamese",
                "Thai",
                "Hindi",
                "Swedish",
                "Norwegian",
                "Danish",
                "Finnish",
                "Czech",
                "Romanian",
                "Hungarian",
                "Greek",
                "Bulgarian",
                "Croatian",
                "Lithuanian"
              ]
            },
            "default": []
          },
          "containsText": {
            "title": "Must contain words",
            "type": "string",
            "description": "Keep servers whose name, description or keywords contain every one of these words, e.g. <code>roblox trading</code>. Useful when browsing a category; search results carry no keywords unless their page is read."
          },
          "verifiedOnly": {
            "title": "Verified servers only",
            "type": "boolean",
            "description": "Keep only servers Discord verified as official (game studios, brands, creators).",
            "default": false
          },
          "partneredOnly": {
            "title": "Partnered servers only",
            "type": "boolean",
            "description": "Keep only servers in Discord's Partner Program.",
            "default": false
          },
          "maxServers": {
            "title": "Maximum servers",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many servers (and invites). 0 means no limit.",
            "default": 100
          },
          "onlyNewServers": {
            "title": "Only servers not delivered before",
            "type": "boolean",
            "description": "For scheduled runs: skip servers an earlier run with the same search, categories and filters already delivered, so each run gives only newly listed servers. The memory is kept in your account's key-value store <code>steadyscrape-discord-server-state</code>. Pasted links are always read.",
            "default": 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
                  },
                  "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}