scrapingbot-io API

scrapingbot-io API as documented publicly: 12 operations. Contract generated from the documentation by API Evangelist (2026-10-31); not the provider's own document.

Operations 12

POST /api/mcp POST /api/mcp #
POST /api/v1/amazon POST /api/v1/amazon #
POST /api/v1/chatgpt POST /api/v1/chatgpt #
POST /api/v1/google POST /api/v1/google #
POST /api/v1/instagram POST /api/v1/instagram #
GET /api/v1/job/{jobId} Look up the result of a scrape job for 24 hours with the job_id from the response. #
GET /api/v1/scrape GET /api/v1/scrape #
POST /api/v1/scrape POST /api/v1/scrape #
POST /api/v1/tiktok POST /api/v1/tiktok #
GET /js GET /js #
GET /scrape Any page as HTML, rendered or not, with proxies, actions, screenshots and AI extraction. #
GET /v1/tiktok/song/videos GET /v1/tiktok/song/videos #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/scrapingbot-io:scrapingbot-io-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

scrapingbot-io-openapi-generated.yml Raw ↑
openapi: 3.1.0
info:
  title: scrapingbot-io API
  version: '2026-10-31'
  description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-10-31: 12 operation(s) read from 40 public documentation page(s) (each
    operation names its page in x-source). This is not the provider''s published contract; scrapingbot-io has published no machine-readable contract
    that the pipeline could find. Engine: anthropic.'
  x-evidence-tiers:
    code-example: 11
    documentation: 1
    pages-with-code: 36
    pages-read: 40
  x-generated-from: documentation
  x-provenance: generated
  x-authored-by: API Evangelist
  x-generated: '2026-10-31'
  x-generator: generate-contract-from-docs.py
  x-engine: anthropic
  x-sources:
  - https://scrapingbot.io/docs/amazon
  - https://scrapingbot.io/docs/google
  - https://scrapingbot.io/docs/tiktok
  - https://scrapingbot.io/docs/chatgpt
  - https://scrapingbot.io/docs/website
  - https://scrapingbot.io/docs/instagram
  - https://scrapingbot.io/docs
  - https://scrapingbot.io/docs/mcp
  - https://scrapingbot.io/tiktok
  - https://scrapingbot.io/instagram
  - https://scrapingbot.io/google
  - https://scrapingbot.io/amazon
  - https://scrapingbot.io/chatgpt
  - https://scrapingbot.io/auth/register
  - https://scrapingbot.io/dashboard
  - https://scrapingbot.io/billing/plans
  - https://scrapingbot.io/ai-extraction
  - https://scrapingbot.io/auth/register?next=%2Fdashboard%2Ftiktok%3Fendpoint%3D%252Fuser%252Finfo%26unique_id%3Dnasa
  - https://scrapingbot.io/auth/register?next=%2Fdashboard%2Finstagram%3Fendpoint%3D%252Fuser%252Fby_username%26username%3Dnasa
  - https://scrapingbot.io/auth/register?next=%2Fdashboard%2Fgoogle%3Fendpoint%3D%252Fsearch%26q%3Dbest%2Bespresso%2Bmachine%26gl%3Dus%26hl%3Den
  - https://scrapingbot.io/auth/register?next=%2Fdashboard%2Famazon%3Fendpoint%3D%252Fsearch%26query%3Dwireless%2Bearbuds
  - https://scrapingbot.io/auth/register?next=%2Fdashboard%2Fmcp
  - https://scrapingbot.io/auth/forgot-password
  - https://scrapingbot.io/auth/register?next=%2Fdashboard%2Ftry%3Fexample%3Dbook
  - https://scrapingbot.io/guides/tiktok-sound-videos-python
  - https://scrapingbot.io/guides/tiktok-sound-tracker-nodejs
  - https://scrapingbot.io/guides/tiktok-profile-stats-python
  - https://scrapingbot.io/guides/tiktok-comments-to-csv-python
  - https://scrapingbot.io/guides/tiktok-search-videos-keyword-python
  - https://scrapingbot.io/guides/instagram-profile-reels-python
  - https://scrapingbot.io/guides/instagram-follower-count-bulk-python
  - https://scrapingbot.io/guides/instagram-engagement-rate-python
  - https://scrapingbot.io/guides/instagram-followers-api-python
  - https://scrapingbot.io/guides/instagram-search-api-python
  - https://scrapingbot.io/guides/instagram-basic-display-api-replacement-nodejs
  - https://scrapingbot.io/guides/google-search-results-json-for-ai-python
  - https://scrapingbot.io/guides/amazon-price-tracker-python
  - https://scrapingbot.io/guides/scrape-javascript-rendered-page
  - https://scrapingbot.io/guides/web-scraping-mcp-claude-code-cursor
  - https://scrapingbot.io/alternatives/scrapecreators
paths:
  /api/mcp:
    post:
      operationId: post_api_mcp
      tags:
      - Api
      summary: POST /api/mcp
      x-source: https://scrapingbot.io/docs/mcp
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiMcpRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl Copy claude mcp add --transport http scrapingbot  https://scrapingbot.io/api/mcp  --header \"x-api-key: YOUR_API_KEY\"\
          \ export SCRAPINGBOT_API_KEY= \"YOUR_API_KEY\" \ncodex mcp add scrapingbot --url https://scrapingbot.io/api/mcp  --bearer-token-env-var\
          \ SCRAPINGBOT_API_KEY {\n \"mcpServers\" : {\n \"scrapingbot\" : {\n \"url\" : \"https://scrapingbot.io/api/mcp\" ,\n \"headers\" :\
          \ {\n \"x-api-key\" : \"YOUR_API_KEY\""
  /api/v1/amazon:
    post:
      operationId: post_api_v1_amazon
      tags:
      - Api
      summary: POST /api/v1/amazon
      x-source: https://scrapingbot.io/docs/amazon
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1AmazonRequest'
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiV1AmazonResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl Python Node.js PHP Copy curl -X POST \"https://scrapingbot.io/api/v1/amazon\"  -H \"x-api-key: YOUR_API_KEY\"  -H \"Content-Type:\
          \ application/json\"  -d '{\n \"endpoint\": \"/product-details\",\n \"params\": {\"asin\": \"B07ZPKN6YR\"}\n }' import requests\nresponse\
          \ = requests.post(\n \"https://scrapingbot.io/api/v1/amazon\" ,\n headers={ \"x-api-key\" : \"YOUR_API_KEY\" },\n json={\n \"endpoint\"\
          \ : \"/product-details\" ,\n \"pa"
  /api/v1/chatgpt:
    post:
      operationId: post_api_v1_chatgpt
      tags:
      - Api
      summary: POST /api/v1/chatgpt
      x-source: https://scrapingbot.io/docs/chatgpt
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1ChatgptRequest'
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiV1ChatgptResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl Python Node.js PHP Copy curl -X POST \"https://scrapingbot.io/api/v1/chatgpt\"  -H \"x-api-key: YOUR_API_KEY\"  -H \"Content-Type:\
          \ application/json\"  -d '{\n \"prompt\": \"Summarize in one sentence: ScrapingBot turns any web page into clean, structured data.\"\
          \n }' import requests\nresponse = requests.post(\n \"https://scrapingbot.io/api/v1/chatgpt\" ,\n headers={ \"x-api-key\" : \"YOUR_API_KEY\"\
          \ },\n json={\n \"pr"
  /api/v1/google:
    post:
      operationId: post_api_v1_google
      tags:
      - Api
      summary: POST /api/v1/google
      x-source: https://scrapingbot.io/docs/google
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1GoogleRequest'
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiV1GoogleResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl Python Node.js PHP Copy curl -X POST \"https://scrapingbot.io/api/v1/google\"  -H \"x-api-key: YOUR_API_KEY\"  -H \"Content-Type:\
          \ application/json\"  -d '{\n \"endpoint\": \"/search\",\n \"params\": {\"q\": \"best espresso machine\", \"gl\": \"us\"}\n }' import\
          \ requests\nresponse = requests.post(\n \"https://scrapingbot.io/api/v1/google\" ,\n headers={ \"x-api-key\" : \"YOUR_API_KEY\" },\n\
          \ json={\n \"endpoint\" : \"/search\" ,\n \""
  /api/v1/instagram:
    post:
      operationId: post_api_v1_instagram
      tags:
      - Api
      summary: POST /api/v1/instagram
      x-source: https://scrapingbot.io/docs/instagram
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1InstagramRequest'
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiV1InstagramResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl Python Node.js PHP Copy curl -X POST \"https://scrapingbot.io/api/v1/instagram\"  -H \"x-api-key: YOUR_API_KEY\"  -H \"\
          Content-Type: application/json\"  -d '{\n \"endpoint\": \"/user/by_username\",\n \"params\": {\"username\": \"instagram\"}\n }' import\
          \ requests\nresponse = requests.post(\n \"https://scrapingbot.io/api/v1/instagram\" ,\n headers={ \"x-api-key\" : \"YOUR_API_KEY\" },\n\
          \ json={\n \"endpoint\" : \"/user/by_usern"
  /api/v1/job/{jobId}:
    get:
      operationId: get_api_v1_job_jobId
      tags:
      - Api
      summary: Look up the result of a scrape job for 24 hours with the job_id from the response.
      x-source: https://scrapingbot.io/docs/website
      parameters:
      - name: jobId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiV1JobJobidResponse'
      x-evidence:
        kind: documentation
  /api/v1/scrape:
    get:
      operationId: get_api_v1_scrape
      tags:
      - Api
      summary: GET /api/v1/scrape
      x-source: https://scrapingbot.io/docs/website
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiV1ScrapeResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl Python Node.js PHP Copy curl -G \"https://scrapingbot.io/api/v1/scrape\"  -H \"x-api-key: YOUR_API_KEY\"  --data-urlencode\
          \ \"url=https://example.com\"  --data-urlencode \"render_js=true\" import requests\nresponse = requests.get(\n \"https://scrapingbot.io/api/v1/scrape\"\
          \ ,\n headers={ \"x-api-key\" : \"YOUR_API_KEY\" },\n params={ \"url\" : \"https://example.com\" , \"render_js\" : \"true\" },\n timeout=\
          \ 60 ,\n)\ndata ="
    post:
      operationId: post_api_v1_scrape
      tags:
      - Api
      summary: POST /api/v1/scrape
      x-source: https://scrapingbot.io/docs/website
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1ScrapeRequest'
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiV1ScrapeResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl Python Node.js PHP Copy curl -X POST \"https://scrapingbot.io/api/v1/scrape\"  -H \"x-api-key: YOUR_API_KEY\"  -H \"Content-Type:\
          \ application/json\"  -d '{\n \"url\": \"https://shop.example.com\",\n \"js_scenario\": [\n {\"click\": \"#accept-cookies\"},\n {\"\
          fill\": [\"input[name=q]\", \"running shoes\"]},\n {\"click\": \"button[type=submit]\"},\n {\"wait_for\": \".results\"},\n {\"scroll_y\"\
          : 1500},\n {\"evaluate\": \"document.title\""
  /api/v1/tiktok:
    post:
      operationId: post_api_v1_tiktok
      tags:
      - Api
      summary: POST /api/v1/tiktok
      x-source: https://scrapingbot.io/docs/tiktok
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1TiktokRequest'
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiV1TiktokResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl Python Node.js PHP Copy curl -X POST \"https://scrapingbot.io/api/v1/tiktok\"  -H \"x-api-key: YOUR_API_KEY\"  -H \"Content-Type:\
          \ application/json\"  -d '{\n \"endpoint\": \"/user/info\",\n \"params\": {\"unique_id\": \"tiktok\"}\n }' import requests\nresponse\
          \ = requests.post(\n \"https://scrapingbot.io/api/v1/tiktok\" ,\n headers={ \"x-api-key\" : \"YOUR_API_KEY\" },\n json={\n \"endpoint\"\
          \ : \"/user/info\" ,\n \"params\" : { \""
  /js:
    get:
      operationId: get_js
      tags:
      - Js
      summary: GET /js
      x-source: https://scrapingbot.io/guides/scrape-javascript-rendered-page
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetJsResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -s https://quotes.toscrape.com/js/ | grep -c 'class=\"quote\"'\n0 \n Zero. The server sends a page shell, a copy of jQuery\
          \ and an inline script. The script holds the quotes as a JavaScript array and writes the markup into the page as it loads: \n document.write(\"\
          <div class='quote'><span class='text'>\" + d['text'] + \"</span><span>by <small class='author'>\" + d['author']['name'] + \"</small></span><d"
  /scrape:
    get:
      operationId: get_scrape
      tags:
      - Scrape
      summary: Any page as HTML, rendered or not, with proxies, actions, screenshots and AI extraction.
      x-source: https://scrapingbot.io/docs
      parameters:
      - name: url
        in: query
        required: true
        schema:
          type: string
        description: The URL to scrape
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetScrapeResponse'
      x-evidence:
        kind: documentation
  /v1/tiktok/song/videos:
    get:
      operationId: get_v1_tiktok_song_videos
      tags:
      - Tiktok
      summary: GET /v1/tiktok/song/videos
      x-source: https://scrapingbot.io/alternatives/scrapecreators
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: python
        snippet: "requests.get(\n \"https://api.scrapecreators.com/v1/tiktok/song/videos\",\n headers={\"x-api-key\": SCRAPECREATORS_KEY},\n params={\"\
          clipId\": \"7682907287056337667\"},\n timeout=60,\n)"
components:
  schemas:
    PostApiMcpRequest:
      type: object
      properties:
        jsonrpc:
          type: string
        id:
          type: integer
        method:
          type: string
    PostApiV1AmazonRequest:
      type: object
      properties:
        endpoint:
          type: string
        params:
          type: object
          properties:
            asin:
              type: string
    PostApiV1AmazonResponse:
      type: object
      properties:
        x-api-key:
          type: string
    PostApiV1ChatgptRequest:
      type: object
      properties:
        prompt:
          type: string
    PostApiV1ChatgptResponse:
      type: object
      properties:
        x-api-key:
          type: string
    PostApiV1GoogleRequest:
      type: object
      properties:
        endpoint:
          type: string
        params:
          type: object
          properties:
            q:
              type: string
            gl:
              type: string
    PostApiV1GoogleResponse:
      type: object
      properties:
        x-api-key:
          type: string
    PostApiV1InstagramRequest:
      type: object
      properties:
        endpoint:
          type: string
        params:
          type: object
          properties:
            username:
              type: string
    PostApiV1InstagramResponse:
      type: object
      properties:
        x-api-key:
          type: string
    GetApiV1JobJobidResponse:
      type: object
      properties:
        success:
          type: boolean
        job_id:
          type: string
        status:
          type: string
          description: completed or failed
        created_at:
          type: string
          description: ISO 8601 timestamp
        started_at:
          type: string
          description: ISO 8601 timestamp
        completed_at:
          type: string
          description: ISO 8601 timestamp
        result:
          type: object
          description: 'For completed jobs: html, status, fault, scenario, screenshotUrl and resolvedUrl'
        error:
          type: string
          description: For failed jobs, why it failed
    GetApiV1ScrapeResponse:
      type: object
      properties:
        x-api-key:
          type: string
    PostApiV1ScrapeRequest:
      type: object
      properties:
        url:
          type: string
        js_scenario:
          type: array
          items:
            type: object
            properties:
              click:
                type: string
    PostApiV1ScrapeResponse:
      type: object
      properties:
        x-api-key:
          type: string
    PostApiV1TiktokRequest:
      type: object
      properties:
        endpoint:
          type: string
        params:
          type: object
          properties:
            unique_id:
              type: string
    PostApiV1TiktokResponse:
      type: object
      properties:
        x-api-key:
          type: string
    GetJsResponse:
      type: object
      properties:
        success:
          type: boolean
        url:
          type: string
        html:
          type: string
        status:
          type: integer
        duration:
          type: string
        credits_used:
          type: integer
        job_id:
          type: string
    GetScrapeResponse:
      type: object
      properties:
        success:
          type: boolean
        url:
          type: string
        html:
          type: string
        status:
          type: integer
        duration:
          type: string
        credits_used:
          type: integer
        job_id:
          type: string
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key
security:
- apiKey: []
tags:
- name: Api
- name: Js
- name: Scrape
- name: Tiktok