---
title: "Create a new API from a URL"
method: POST
path: "/dispatch"
tags: ["Dispatch"]
---

# Create a new API from a URL

`POST /dispatch`

Submit a website URL to generate an API. If a matching API already exists, returns it instantly. Otherwise, queues a job to build one. Optionally describe the data you need in the `task` field.

## Request body

- DispatchRequest
  - `url` string, required — Website URL to generate an API from
  - `task` string, nullable — Natural language description of the data you need (e.g. 'get product prices and reviews')
  - `contributes_to_marketplace` boolean — Whether this API contributes to the shared marketplace canonical for its domain. TRUE (default) = your revisions feed back into the canonical, you can merge upstream improvements, and the build is free. FALSE = the API is fully desynced from the canonical and the build is charged. This is a permanent, per-API choice and cannot be toggled later. (The old `force_new` field has been removed — sending it now returns a 400.)

## Response `200`

Task created or matched

- DispatchResponse
  - `task_id` string, required — Unique task identifier — use this to poll for status
  - `matched` boolean, required — True if an existing API was found for this URL
  - `test_inputs` unknown[], nullable — Suggested test parameters for each endpoint (when matched)
    - unknown
  - `may_require_auth` boolean — True if the task likely requires authentication credentials

---

[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)
