# Cactus Partner API ## Docs - [Delete a document and its stored file](https://docs.trycactus.com/api-reference/documents/delete-a-document-and-its-stored-file.md): Permanently deletes the uploaded file and marks the document `deleted`. Completed extraction results derived from it are retained per your data-retention policy unless separately deleted. - [List documents](https://docs.trycactus.com/api-reference/documents/list-documents.md) - [Register a document and get a presigned upload URL](https://docs.trycactus.com/api-reference/documents/register-a-document-and-get-a-presigned-upload-url.md): Creates a document record and returns a short-lived presigned URL. Upload the file bytes with a `PUT` to `upload.url` including `upload.headers`. The document becomes `uploaded` once the object lands; it is validated (and billed) only when submitted to an extraction or underwriting. - [Retrieve a document](https://docs.trycactus.com/api-reference/documents/retrieve-a-document.md) - [Extraction failed accepted documents are auto refunded](https://docs.trycactus.com/api-reference/extraction-failed-accepted-documents-are-auto-refunded.md) - [Extraction finished successfully](https://docs.trycactus.com/api-reference/extraction-finished-successfully.md) - [Create an extraction job](https://docs.trycactus.com/api-reference/extractions/create-an-extraction-job.md): Validates, accepts, and bills the referenced document(s), then starts extraction. Submit either a single `document_id` or a `bundle` of offering memorandum + rent roll + T-12 (billed at the bundle rate). - [List extraction jobs](https://docs.trycactus.com/api-reference/extractions/list-extraction-jobs.md) - [Retrieve an extraction job (poll for status)](https://docs.trycactus.com/api-reference/extractions/retrieve-an-extraction-job-poll-for-status.md) - [Retrieve the structured output of a completed extraction](https://docs.trycactus.com/api-reference/extractions/retrieve-the-structured-output-of-a-completed-extraction.md) - [Underwriting run failed](https://docs.trycactus.com/api-reference/underwriting-run-failed.md) - [Underwriting run finished; report link available](https://docs.trycactus.com/api-reference/underwriting-run-finished;-report-link-available.md) - [List underwriting runs](https://docs.trycactus.com/api-reference/underwritings/list-underwriting-runs.md) - [Retrieve an underwriting run (poll for status)](https://docs.trycactus.com/api-reference/underwritings/retrieve-an-underwriting-run-poll-for-status.md) - [Start an automated underwriting run](https://docs.trycactus.com/api-reference/underwritings/start-an-automated-underwriting-run.md): Kicks off the full automated underwriting workflow for a property. Documents are optional; when provided they are validated, accepted, and billed per the rate card, then ingested before the run starts. On completion, the notification email receives a signed link to the hosted financial-analysis repo… - [Usage pool balance and metered activity](https://docs.trycactus.com/api-reference/usage/usage-pool-balance-and-metered-activity.md) - [Delete a webhook endpoint](https://docs.trycactus.com/api-reference/webhook-endpoints/delete-a-webhook-endpoint.md) - [List webhook endpoints](https://docs.trycactus.com/api-reference/webhook-endpoints/list-webhook-endpoints.md) - [Register a webhook endpoint](https://docs.trycactus.com/api-reference/webhook-endpoints/register-a-webhook-endpoint.md): The response includes the signing `secret` **once**. Verify each delivery by computing HMAC-SHA256 over the raw request body with this secret and comparing to the `Cactus-Signature` header (format: `t=,v1=`; digest is over `"{t}.{body}"`). Reject deliveries older than 5 minutes. - [Authentication](https://docs.trycactus.com/authentication.md): API keys, environments, and keeping credentials safe. - [Billing](https://docs.trycactus.com/billing.md): Deterministic per-document pricing against a prepaid usage pool. - [Changelog](https://docs.trycactus.com/changelog.md): API changes, schema versions, and deprecation notices. - [Introduction](https://docs.trycactus.com/introduction.md): Extract structured data from commercial real estate documents with a REST API. - [Quickstart](https://docs.trycactus.com/quickstart.md): Upload a rent roll and get structured data back in five requests. - [Sandbox](https://docs.trycactus.com/sandbox.md): Build your integration end to end without processing costs. - [Webhooks](https://docs.trycactus.com/webhooks.md): Receive signed events instead of polling. ## OpenAPI Specs - [openapi](https://docs.trycactus.com/api-reference/openapi.yaml)