{
  "openapi": "3.0.1",
  "info": {
    "title": "Crypto Market Data Scraper",
    "description": "Live cryptocurrency prices and market data from CoinGecko in any of 65 currencies. Returns price, market cap and rank, 24h high, low and change, trading volume, circulating and total supply, all-time high and low with their dates. Filter to specific coins or a category, no API key needed.",
    "version": "0.1",
    "x-build-id": "OZnyjSMGO45DdEo3F"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/superslowsloth~crypto-market-data-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-superslowsloth-crypto-market-data-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/superslowsloth~crypto-market-data-scraper/runs": {
      "post": {
        "operationId": "runs-sync-superslowsloth-crypto-market-data-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/superslowsloth~crypto-market-data-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-superslowsloth-crypto-market-data-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": {
          "vsCurrency": {
            "title": "Quote currency",
            "type": "string",
            "description": "The currency every price, market cap and volume is quoted in. Must be one of the codes CoinGecko publishes at /simple/supported_vs_currencies - that list holds fiat (usd, eur, jpy, thb, ...), crypto (btc, eth, sol, ...) and commodity units (xau, xag). An unsupported code fails the run immediately instead of returning wrong numbers.",
            "default": "usd"
          },
          "coinIds": {
            "title": "Coin IDs",
            "type": "array",
            "description": "Optional. Restrict the run to these coins, given as CoinGecko slugs such as bitcoin, ethereum, solana. A full CoinGecko coin URL works too. Ticker symbols are deliberately not accepted, because a symbol like eth matches dozens of listings and guessing would return the wrong asset. Leave empty to scrape the whole market in the chosen order.",
            "items": {
              "type": "string"
            }
          },
          "category": {
            "title": "Category",
            "type": "string",
            "description": "Optional. Restrict the run to one CoinGecko category id, for example layer-1, meme-token, decentralized-finance-defi or smart-contract-platform. Ids come from CoinGecko's /coins/categories/list endpoint and are validated before the run starts, so a typo is reported rather than silently returning nothing."
          },
          "order": {
            "title": "Order",
            "enum": [
              "market_cap_desc",
              "market_cap_asc",
              "volume_desc",
              "volume_asc",
              "id_desc",
              "id_asc"
            ],
            "type": "string",
            "description": "How CoinGecko sorts the market before it is paginated. Market cap descending gives the familiar top-coins ranking; the volume orders surface what is actually trading today.",
            "default": "market_cap_desc"
          },
          "maxItems": {
            "title": "Max coins",
            "minimum": 1,
            "type": "integer",
            "description": "How many coins to return. CoinGecko serves at most 250 per request, so larger numbers are paginated automatically. Note that the free public API allows only about 5-15 requests per minute, so every extra page of 250 adds a few seconds of deliberate waiting to the run.",
            "default": 100
          },
          "priceChangePercentage": {
            "title": "Price change windows",
            "type": "array",
            "description": "Optional. Extra price-change windows to request. Each one selected adds a price_change_percentage_<window>_in_currency field to every coin. The 24h change is always included regardless of what is chosen here.",
            "items": {
              "type": "string",
              "enum": [
                "1h",
                "24h",
                "7d",
                "14d",
                "30d",
                "200d",
                "1y"
              ],
              "enumTitles": [
                "1 hour",
                "24 hours",
                "7 days",
                "14 days",
                "30 days",
                "200 days",
                "1 year"
              ]
            },
            "default": [
              "1h",
              "24h",
              "7d",
              "30d"
            ]
          },
          "requestIntervalSecs": {
            "title": "Seconds between requests",
            "minimum": 0,
            "maximum": 60,
            "type": "integer",
            "description": "How long to wait between paginated requests. CoinGecko's free public API answers HTTP 429 when pushed, and the run retries on a rotated proxy address when that happens, so lowering this trades wall-clock time for retries. Four seconds keeps a multi-page run comfortably inside the free limit.",
            "default": 4
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Recommended. CoinGecko counts its rate limit per exit address, so a rotating proxy is what makes multi-page runs finish without a long wait. A fresh address is taken before each page and again before each retry."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}