> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.morphiaone.ai/concepts/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.morphiaone.ai/_mcp/server. # Concepts ## Docs - [Assets](https://docs.morphiaone.ai/concepts/assets.md): Upload image bytes once, reference them from jobs by id, and delete them when you are done. - [Asynchronous jobs](https://docs.morphiaone.ai/concepts/jobs.md): The job is the contract. Submitting is not analysing, and failure arrives on a 200. - [Job outputs](https://docs.morphiaone.ai/concepts/job-outputs.md): Submit typed JSON under an Idempotency-Key, poll a job, decode a typed output. - [Webhooks](https://docs.morphiaone.ai/concepts/webhooks.md): A signed POST when a job settles. Verify it, dedupe on event.id, and keep polling authoritative. - [Credits and usage](https://docs.morphiaone.ai/concepts/credits.md): What a submission costs you, how you find out you are out, and what /v1/usage is for. - [Idempotency](https://docs.morphiaone.ai/concepts/idempotency.md): How to retry a submission you are not sure arrived, without paying twice. - [Errors](https://docs.morphiaone.ai/concepts/errors.md): Branch on error.code. Never parse error.message. - [Retries and backoff](https://docs.morphiaone.ai/concepts/retries.md): Which failures clear on their own, and how to wait without making things worse. - [Rate limits](https://docs.morphiaone.ai/concepts/rate-limits.md): The limits on submitting work, how a response advertises them, and when they reset. - [Privacy and retention](https://docs.morphiaone.ai/concepts/privacy-retention.md): What happens to the image you send, and what your side has to get right. - [Versioning](https://docs.morphiaone.ai/concepts/versioning.md): What may change without notice, what may not, and how you find out.