Skip to main content
POST
Rate limit tier: submission, 60 requests/min. See Rate limits. The platform fetches one document server-side from a URL and parses it with the fast lite parse. This endpoint is the URL analogue of POST /v3/parse/. It runs on your organization’s system parse workflow, which the platform provisions on first use. Provide one HTTPS URL. The response’s Content-Disposition names the file, and the URL’s path names it otherwise. See File names. The response references a run. Poll GET /v3/runs/{run_id}/ until status is processed. The parsed markdown sits at results.parse.markdown. A failed, non-2xx, or timed-out fetch returns 422 with the reason in detail. The results envelope carries the first file’s parse output. To import several URLs into one packet, use upload from URL and document-packets/run directly.

File names

The response names a from-url file, not the request. The name matters twice. It carries the extension the import requires, and a URL whose path is an opaque key carries none. It is also the name you and your users see wherever the file is listed. The precedence is:
  1. The Content-Disposition filename on the response, per RFC 6266. filename*=UTF-8''… wins over filename=, and any path is cut to its last segment.
  2. Else the URL path’s last segment: https://example.com/invoices/april.pdf imports as april.pdf.
  3. Else the import fails with 422.
The name travels in the header rather than in a request field. HTTP already names a downloaded file there, and every object store signs that header into a presigned URL. The API therefore stays URL-only, with no parallel name list to match urls in length and order. On S3, ResponseContentDisposition signs it in:
boto3
GCS offers the same override through response-content-disposition on a V4 signed URL, and Azure through rscd on a SAS. Whichever name applies must end in a supported extension, such as .pdf, .docx or .png. A bare key such as uploads/7c1f3e9a names the file 7c1f3e9a, which has no extension, so the import fails with 422. A name that collides with a file already in the parse workflow is renamed: april.pdf becomes april (1).pdf.

Authorizations

Authorization
string
header
required

API key issued from app.anyformat.ai/api-key. Send as Authorization: Bearer <key>.

Body

application/json

Body for POST /v3/parse/from-url/.

The document arrives one of two ways: a fetchable HTTPS url, or the object_id of a file staged via POST /v3/blobs/slots/ — the id is a few characters where the staged file's presigned read_url is kilobytes, so an id-carrying caller (an MCP agent spending a context window) never has to round-trip the long URL.

url
string | null

HTTPS URL the backend fetches server-side. The file is named by the response's Content-Disposition filename when present, else by the last segment of the URL's path. Pass exactly one of url or object_id.

Example:

"https://example.com/invoices/april.pdf"

object_id
string | null

object_id of a file staged via POST /v3/blobs/slots/, uploaded already. Resolved server-side to the staged bytes, so the long presigned read_url never needs to be passed around. Requires filename. Pass exactly one of url or object_id.

Example:

"06a953d9792572568000f838b051ca9b"

filename
string | null

Name for the staged file — required with object_id (a staged blob carries no name of its own) and not accepted with url.

Maximum string length: 255
Example:

"april.pdf"

Response

Successful Response

202 response for both run triggers (upload/run/ and document-packets/{id}/run/).

run_id
string
required

Unique identifier of the new run (hyphenated UUID).

Example:

"069dcc2c-e14c-7606-8000-2ee4fb17b4f9"

document_packet_id
string
required

The document packet the run executes on (hyphenated UUID).

Example:

"069dcc2c-e14c-7606-8000-2ee4fb17b4e1"

workflow_id
string
required

The workflow being run (hyphenated UUID).

Example:

"0686bb97-8c30-70f0-8000-97669e000eb8"

status
enum<string>
required

Status at acceptance time — normally queued.

Available options:
queued,
in_progress,
processed,
error,
cancelled
Example:

"queued"