{"openapi":"3.0.0","paths":{"/v1/me":{"get":{"operationId":"V1MeController_me","parameters":[],"responses":{"200":{"description":"Workspace context for the presented credential."}},"security":[{"bearer":[]}],"summary":"The calling key’s workspace, label and token balance","tags":["v1"]}},"/v1/documents":{"post":{"operationId":"V1DocumentsController_create","parameters":[{"name":"Idempotency-Key","in":"header","description":"Retry-safe token, stored durably. A replay returns the ORIGINAL document instead of buying a second parse. Matches ^[A-Za-z0-9_\\-:.]{1,128}$.","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Accepted; the document is ingesting (202)."},"400":{"description":"Neither or both sources, a bad Idempotency-Key, or a refused sourceUrl."},"401":{"description":"Missing, malformed or revoked credential."},"415":{"description":"The bytes are not a supported document type."},"503":{"description":"Too many uploads in flight; see Retry-After."}},"security":[{"bearer":[]}],"summary":"Upload a document (multipart `file`, or JSON `sourceUrl`) and start parsing it","tags":["v1"]},"get":{"operationId":"V1DocumentsController_list","parameters":[],"responses":{"200":{"description":"Documents matching the filters, newest first."},"401":{"description":"Missing, malformed or revoked credential."}},"security":[{"bearer":[]}],"summary":"The workspace’s documents, newest first","tags":["v1"]}},"/v1/documents/{id}":{"get":{"operationId":"V1DocumentsController_get","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"The document; `result` is present once parsed."},"401":{"description":"Missing, malformed or revoked credential."},"404":{"description":"No such document for this workspace."}},"security":[{"bearer":[]}],"summary":"One document, with its extracted fields once it has parsed","tags":["v1"]}},"/v1/documents/{id}/export":{"get":{"operationId":"V1DocumentsController_exportOne","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"`{ url, expiresAt, format, filename }`, or 302 with `redirect=1`."},"401":{"description":"Missing, malformed or revoked credential."},"404":{"description":"No such document or template for this workspace."}},"security":[{"bearer":[]}],"summary":"Export one document — JSON with a download URL, or a 302 to it","tags":["v1"]}},"/v1/document-types":{"get":{"operationId":"V1CatalogController_documentTypes","parameters":[],"responses":{"200":{"description":"The static field catalogue, from the shared schema registry."}},"security":[{"bearer":[]}],"summary":"Every document type and the fields its extraction produces","tags":["v1"]}},"/v1/meta":{"get":{"operationId":"V1CatalogController_meta","parameters":[],"responses":{"200":{"description":"Egress addresses to allowlist, and whether API keys are accepted."}},"security":[{"bearer":[]}],"summary":"Integration facts — the addresses our callbacks come from","tags":["v1"]}},"/v1/webhooks":{"post":{"operationId":"V1WebhooksController_create","parameters":[],"responses":{"201":{"description":"The endpoint plus its raw signing secret, shown once."},"400":{"description":"WEBHOOK_URL_REJECTED — the destination failed the egress policy (https, port 443, no userinfo, no IP literal, public name). WEBHOOKS_DISABLED — not configured here."},"401":{"description":"Missing or invalid API key / access token."},"409":{"description":"WEBHOOK_LIMIT (10 per workspace) or WEBHOOK_URL_EXISTS."}},"security":[{"bearer":[]}],"summary":"Register a webhook endpoint — returns the signing secret once","tags":["webhooks"]},"get":{"operationId":"V1WebhooksController_list","parameters":[],"responses":{"200":{"description":"Each endpoint with a `secretHint` — the last 4 characters."},"401":{"description":"Missing or invalid API key / access token."}},"security":[{"bearer":[]}],"summary":"Webhook endpoints in this workspace (never the secrets)","tags":["webhooks"]}},"/v1/webhooks/{id}":{"delete":{"operationId":"V1WebhooksController_remove","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"204":{"description":"Deleted."},"401":{"description":"Missing or invalid API key / access token."},"404":{"description":"No such endpoint in this workspace."}},"security":[{"bearer":[]}],"summary":"Delete a webhook endpoint — deliveries stop immediately","tags":["webhooks"]}},"/v1/webhooks/{id}/rotate":{"post":{"operationId":"V1WebhooksController_rotate","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"The new secret, shown once, plus when the old one expires."},"401":{"description":"Missing or invalid API key / access token."},"404":{"description":"No such endpoint in this workspace."}},"security":[{"bearer":[]}],"summary":"Rotate the signing secret — the old one keeps working for 24 h","tags":["webhooks"]}},"/v1/webhooks/{id}/test":{"post":{"operationId":"V1WebhooksController_test","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"Whether the receiver answered 2xx, and with what status (0 = never answered). The payload is a fixture with a nil-UUID document id and `test: true`, never a real document."},"401":{"description":"Missing or invalid API key / access token."},"404":{"description":"No such endpoint in this workspace."}},"security":[{"bearer":[]}],"summary":"Send a synthetic document.parsed event to this endpoint","tags":["webhooks"]}}},"info":{"title":"ParseForMe API","description":"Upload a document, get structured data back. Authenticate with a workspace API key as `Authorization: Bearer pfm_live_…`. Rate limits are per API key: 60 requests/minute, 10 document creations/minute and 500/day. Over a limit the API answers 429 with `Retry-After` and the `RateLimit` / `RateLimit-Policy` fields — honour them. Webhook deliveries and `sourceUrl` fetches originate from 46.62.162.196.","version":"2026-09-03","contact":{"name":"ParseForMe","url":"https://parseforme.com/developers","email":"support@parseforme.com"},"license":{"name":"Proprietary — governed by the ParseForMe Terms of Service","url":"https://parseforme.com/legal/terms"},"termsOfService":"https://parseforme.com/legal/terms"},"tags":[],"servers":[{"url":"https://api.parseforme.com"}],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http","description":"A `pfm_live_…` workspace key"}},"schemas":{}},"externalDocs":{"description":"ParseForMe API reference","url":"https://parseforme.com/developers"}}