{
  "openapi": "3.0.1",
  "info": {
    "title": "HTTP Request Runner — Bulk & Proxied",
    "description": "Send hundreds of GET, POST, PUT or DELETE requests through datacenter or residential proxies and get status, headers, body and timing per URL.",
    "version": "1.0",
    "x-build-id": "tDvQJxUvDXTxayldP"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/seemuapps~http-request-runner/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-seemuapps-http-request-runner",
        "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/seemuapps~http-request-runner/runs": {
      "post": {
        "operationId": "runs-sync-seemuapps-http-request-runner",
        "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/seemuapps~http-request-runner/run-sync": {
      "post": {
        "operationId": "run-sync-seemuapps-http-request-runner",
        "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": {
          "urls": {
            "title": "URLs (simple mode)",
            "type": "array",
            "description": "One request per URL, all using the shared Method, Headers and Body below. Combine with Requests (advanced) if you need per-request settings. Only http:// and https:// URLs are accepted.",
            "items": {
              "type": "string"
            }
          },
          "requests": {
            "title": "Requests (advanced mode)",
            "type": "array",
            "description": "Array of request objects: { \"url\": \"https://…\", \"method\": \"POST\", \"headers\": { … }, \"body\": \"…\" | { … }, \"label\": \"my-tag\" }. Every field except url is optional and falls back to the shared settings below. A JSON object body is stringified and sent as application/json. Merged with URLs; both lists are processed."
          },
          "method": {
            "title": "Method",
            "enum": [
              "GET",
              "POST",
              "PUT",
              "PATCH",
              "DELETE",
              "HEAD"
            ],
            "type": "string",
            "description": "HTTP method used for every URL in simple mode, and for advanced requests that do not set their own method.",
            "default": "GET"
          },
          "headers": {
            "title": "Headers",
            "type": "object",
            "description": "Shared request headers as a JSON object, e.g. { \"Authorization\": \"Bearer …\", \"Accept\": \"application/json\" }. Per-request headers in Requests override these. When Browser-like headers is on, these are layered on top of the generated browser headers."
          },
          "body": {
            "title": "Body",
            "type": "string",
            "description": "Shared request body sent with POST, PUT, PATCH and DELETE requests (ignored for GET and HEAD). Set a Content-Type header to describe it, e.g. application/json or application/x-www-form-urlencoded."
          },
          "useBrowserHeaders": {
            "title": "Browser-like headers & TLS",
            "type": "boolean",
            "description": "Generate a realistic Chrome/Firefox header set and TLS fingerprint for each request so anti-bot systems see a normal browser. Turn off to send only the headers you specify (plus a generic user agent).",
            "default": true
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Route requests through Apify Proxy (datacenter by default; pick the RESIDENTIAL group and a country for hard targets) or your own proxy URLs. Each retry rotates to a fresh proxy session. Turn off to request directly from the actor's IP.",
            "default": {
              "useApifyProxy": true
            }
          },
          "concurrency": {
            "title": "Concurrency",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "How many requests run in parallel (1-50). Lower it if the target rate-limits you.",
            "default": 10
          },
          "maxRetries": {
            "title": "Max retries",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Extra attempts after a network error, timeout, or a status code listed in Retry on statuses. Each retry uses a new proxy session and backs off (1s, 2s, 3s…).",
            "default": 2
          },
          "retryOnStatuses": {
            "title": "Retry on statuses",
            "type": "array",
            "description": "HTTP status codes that trigger a retry with a fresh proxy session. Network errors and timeouts are always retried.",
            "items": {
              "type": "string"
            },
            "default": [
              "403",
              "429",
              "500",
              "502",
              "503",
              "504"
            ]
          },
          "timeoutSecs": {
            "title": "Request timeout (seconds)",
            "minimum": 1,
            "maximum": 300,
            "type": "integer",
            "description": "Maximum time for a single attempt, including connection, redirects and body download.",
            "default": 30
          },
          "responseFormat": {
            "title": "Response format",
            "enum": [
              "text",
              "json",
              "base64"
            ],
            "type": "string",
            "description": "How the response body is stored in the dataset. JSON parses the body into an object (falls back to text with bodyParseError if it is not valid JSON). Base64 is for images, PDFs and other binary responses.",
            "default": "text"
          },
          "maxBodyChars": {
            "title": "Max body characters",
            "minimum": 0,
            "type": "integer",
            "description": "Truncate the stored body to this many characters (bodyTruncated is set to true). 0 = no truncation (dataset items are still limited to ~9 MB). Use Save bodies to key-value store to keep the full response.",
            "default": 500000
          },
          "includeHeaders": {
            "title": "Include response headers",
            "type": "boolean",
            "description": "Store the full response header object on each row.",
            "default": true
          },
          "followRedirects": {
            "title": "Follow redirects",
            "type": "boolean",
            "description": "Follow 3xx redirects (up to 10 hops) and report the final URL. Turn off to capture the redirect response itself.",
            "default": true
          },
          "saveToKeyValueStore": {
            "title": "Save bodies to key-value store",
            "type": "boolean",
            "description": "Also save every full, untruncated response body as a record named <index>-<url-slug> in the run's default key-value store, and put its URL in keyValueStoreUrl on the row. Handy for large pages and binary files.",
            "default": false
          },
          "maxItems": {
            "title": "Max requests",
            "minimum": 0,
            "type": "integer",
            "description": "Only process the first N requests (URLs first, then advanced requests). 0 = all. Hard cap of 10,000 requests per run.",
            "default": 0
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}