---
title: "Execute an API endpoint (POST)"
method: POST
path: "/scraper/{scraper_id}/{endpoint_name}"
tags: ["Execute"]
---

# Execute an API endpoint (POST)

`POST /scraper/{scraper_id}/{endpoint_name}`

Call a generated API endpoint by scraper ID and endpoint name. Pass endpoint parameters in the JSON body.

## Path parameters

- `scraper_id` string, required
- `endpoint_name` string, required

## Request body

- object — Endpoint-specific parameters (see the endpoint's input_params for the schema)

## Response `200`

Success — the endpoint's own JSON (shape defined by its return_schema).

- ScraperRunResponse — On success (HTTP 200) the body is the endpoint's own JSON — the shape described by its return_schema — not a fixed wrapper. This generic schema documents the fallback fields present when output can't be parsed. See the ExecutionError schema for non-2xx responses.
  - `status` string — Present on fallback/error envelopes; absent on a normal successful response (which is just the endpoint's data).
  - `scraper_id` string
  - `execution_time` number, nullable — Execution time in seconds

## Other responses

- `422` — 422 — your input was invalid or the resource is gone upstream (`status: stale_input`). Fix the input and retry.
- `429` — 429 — rate limit exceeded. Honor the Retry-After header.
- `500` — 500 — the scraper crashed or hit a bug (`status: error`). Not your fault; revise the API.
- `502` — 502 — the TARGET SITE returned a non-2xx (`status: upstream_error`). This is NOT a Parse outage; inspect upstream_status_code + snippet before retrying.
- `503` — 503 — anti-bot blocked every proxy (`status: blocked`). Retry later only if retry_after is present.

---

[API](https://skmtc.dev/parse/apis/parse-api.md) · [All operations](https://skmtc.dev/parse/apis/parse-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/parse/parse-api/revisions/ebc08aeee348/schema)
