{
  "openapi": "3.0.1",
  "info": {
    "title": "CoinPaprika Scraper",
    "description": "Scrape live crypto market data from CoinPaprika with top coins by market cap, specific coin lookups with rich detail (description, social links, tags), search, exchanges, and global market stats. Public API, no key required, no per-minute rate limit.",
    "version": "1.0",
    "x-build-id": "VIb9Au9x4vFiVrrL3"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/crawlerbros~coinpaprika-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-crawlerbros-coinpaprika-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/crawlerbros~coinpaprika-scraper/runs": {
      "post": {
        "operationId": "runs-sync-crawlerbros-coinpaprika-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/crawlerbros~coinpaprika-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-crawlerbros-coinpaprika-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",
        "required": [
          "mode"
        ],
        "properties": {
          "mode": {
            "title": "Mode",
            "enum": [
              "markets",
              "coins",
              "search",
              "exchanges",
              "global",
              "coinEvents",
              "coinMarkets",
              "coinExchanges",
              "tags",
              "ohlcv",
              "priceConverter"
            ],
            "type": "string",
            "description": "What to fetch.",
            "default": "markets"
          },
          "quoteCurrency": {
            "title": "Quote currency",
            "enum": [
              "USD",
              "BTC",
              "ETH",
              "EUR",
              "GBP",
              "JPY",
              "PLN",
              "KRW",
              "CNY",
              "INR"
            ],
            "type": "string",
            "description": "Quote currency for prices/market cap. Supported: USD, BTC, ETH, EUR, GBP, JPY, PLN, KRW, CNY, INR.",
            "default": "USD"
          },
          "coinIds": {
            "title": "Coin IDs (mode=coins, coinEvents, coinMarkets, coinExchanges, ohlcv)",
            "type": "array",
            "description": "CoinPaprika coin IDs (e.g. `[\"btc-bitcoin\", \"eth-ethereum\", \"sol-solana\"]`). Use `mode=search` to discover IDs.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "includeDetails": {
            "title": "Include rich coin detail (mode=coins)",
            "type": "boolean",
            "description": "If true, fetches `/coins/{id}` per ID for description, tags, social links, team size. Doubles request count.",
            "default": true
          },
          "searchQuery": {
            "title": "Search query (mode=search)",
            "type": "string",
            "description": "Query (matches coin name + symbol). E.g. `bitcoin`, `eth`, `dogecoin`.",
            "default": "bitcoin"
          },
          "tagIds": {
            "title": "Tag IDs (mode=tags)",
            "type": "array",
            "description": "Specific CoinPaprika tag IDs to fetch detail for (e.g. `[\"defi\", \"stablecoin\", \"dao\"]`). Leave empty in `mode=tags` to list ALL tags.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "baseCurrencyId": {
            "title": "Base currency ID (mode=priceConverter)",
            "type": "string",
            "description": "CoinPaprika ID of the FROM currency (e.g. `btc-bitcoin`, `usd-us-dollars`)."
          },
          "quoteCurrencyId": {
            "title": "Quote currency ID (mode=priceConverter)",
            "type": "string",
            "description": "CoinPaprika ID of the TO currency (e.g. `eth-ethereum`, `usd-us-dollars`)."
          },
          "amount": {
            "title": "Amount (mode=priceConverter)",
            "minimum": 1,
            "maximum": 1000000000,
            "type": "integer",
            "description": "Amount of the base currency to convert. Default 1.",
            "default": 1
          },
          "order": {
            "title": "Order (mode=markets)",
            "enum": [
              "market_cap_desc",
              "market_cap_asc",
              "volume_desc",
              "volume_asc",
              "price_desc",
              "price_asc",
              "change_24h_desc",
              "change_24h_asc"
            ],
            "type": "string",
            "description": "Client-side sort applied to the full ticker list before slicing.",
            "default": "market_cap_desc"
          },
          "minMarketCap": {
            "title": "Min market cap (USD)",
            "minimum": 0,
            "maximum": 1000000000000000,
            "type": "integer",
            "description": "Drop coins with market cap below this. Applied client-side after fetch."
          },
          "min24hVolume": {
            "title": "Min 24h volume (USD)",
            "minimum": 0,
            "maximum": 1000000000000000,
            "type": "integer",
            "description": "Drop coins with 24h trading volume below this."
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Hard cap on emitted records.",
            "default": 50
          },
          "useProxy": {
            "title": "Use Apify proxy (rotates IP to bypass per-IP rate limits)",
            "type": "boolean",
            "description": "If true, routes requests through Apify proxy and rotates IP every N requests + on every HTTP 429. Each IP gets its own per-IP quota, so this effectively removes any per-IP limit. Adds proxy cost.",
            "default": false
          },
          "autoEscalateOnBlock": {
            "title": "Auto-escalate to Apify proxy on block",
            "type": "boolean",
            "description": "If true (default), the actor automatically engages Apify proxy and retries when it hits HTTP 403/429 from a raw datacenter IP. Set to false to disable (request fails fast instead of paying proxy cost).",
            "default": true
          },
          "proxyGroups": {
            "title": "Apify proxy groups",
            "type": "array",
            "description": "Apify proxy groups (e.g. `[\"RESIDENTIAL\"]` or `[\"DATACENTER\"]`). Leave empty to use the default auto group. Only used when `useProxy` is true.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "rotateEveryNRequests": {
            "title": "Rotate IP every N requests",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "When using a proxy, swap to a fresh IP after this many successful requests (in addition to rotating on 429). Lower values give more headroom against burst limits at slight latency cost.",
            "default": 25
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}