Programmatic access to formulate360 — build integrations, automate workflows, and manage formulations.
Last updated: September 3, 2026 · By Formulate 360 Team
Requests authenticate via session cookies (web) or X-Api-Key header (programmatic).
Success returns data + meta. Paginated endpoints include pagination.
Errors return error.code (machine-readable), error.message, and optional validation details.
POST, PUT, and PATCH endpoints accept an Idempotency-Key header. Duplicate requests within the 24-hour window return the original response without side effects. Safe to retry on network errors.
Cursor-based pagination. Use ?limit=N (default 50, max 200) and ?cursor=X from the meta.pagination.next_cursor field.
Per-user rate limits vary by subscription tier. AI and document generation endpoints require Pro or Enterprise. Rate-limited requests return 429 with a Retry-After header.
▶ List formulas
▶ Create a formula
▶ Generate a document
▶ Get current identity
Create, read, update, and delete formulations.
/api/v1/formulasList all formulas for the authenticated user. Supports cursor-based pagination with `limit` and `cursor` query parameters. Results ordered by `updated_at` descending.
Response Schema
cURL Example
Error Codes
| Code | Status | Message |
|---|---|---|
| formulas_list_failed | 500 | Internal server error while listing formulas. |
/api/v1/formulasCreate a new formula. Name and product_type are required. Optionally set batch_size, batch_unit, product_id, and setup preferences. Set generate_ai_draft to true for AI-suggested ingredients. Idempotent with Idempotency-Key header.
Request Body
Response Schema
cURL Example
Error Codes
| Code | Status | Message |
|---|---|---|
| invalid_request | 400 | Invalid payload. Name and product type required. |
| tier_limit_reached | 403 | Free plan limited to 3 formulas. Upgrade to Pro. |
| tier_upgrade_required | 403 | AI draft requires Pro subscription. |
| formulas_create_failed | 500 | Internal server error. |
/api/v1/formulas/:idRetrieve a single formula by ID including all ingredient line items.
Response Schema
cURL Example
Error Codes
| Code | Status | Message |
|---|---|---|
| not_found | 404 | Formula not found. |
/api/v1/formulas/:idUpdate formula metadata. Creates a new version snapshot automatically. Supports partial update. Idempotent.
Request Body
Response Schema
cURL Example
Error Codes
| Code | Status | Message |
|---|---|---|
| invalid_request | 400 | Invalid payload. |
| not_found | 404 | Formula not found. |
/api/v1/formulas/:idSoft-delete a formula. Archived formulas are hidden from default listings.
Response Schema
cURL Example
Error Codes
| Code | Status | Message |
|---|---|---|
| not_found | 404 | Formula not found. |
/api/v1/formulas/:id/versionsList all version snapshots for a formula, ordered by creation date descending.
Response Schema
cURL Example
/api/v1/formulas/:id/versionsManually create a new version snapshot of the current formula state.
Request Body
Response Schema
cURL Example
/api/v1/formulas/:id/versions/:vidRetrieve a specific version snapshot including its frozen ingredient data.
Response Schema
cURL Example
Error Codes
| Code | Status | Message |
|---|---|---|
| not_found | 404 | Version not found. |
/api/v1/formulas/:id/sharesList all share links for a formula.
Response Schema
cURL Example
/api/v1/formulas/:id/sharesCreate a share link for a formula. Optionally set expiration in days.
Request Body
Response Schema
cURL Example
Organize formulas into project workspaces.
/api/v1/projectsList all projects for the authenticated user.
Response Schema
cURL Example
/api/v1/projectsCreate a new project workspace. Name is required. Idempotent.
Request Body
Response Schema
cURL Example
Error Codes
| Code | Status | Message |
|---|---|---|
| invalid_request | 400 | Invalid payload. |
/api/v1/projects/:idRetrieve a project by ID including its linked formulas.
Response Schema
cURL Example
Error Codes
| Code | Status | Message |
|---|---|---|
| not_found | 404 | Project not found. |
/api/v1/projects/:idUpdate project metadata. Supports partial updates. Idempotent.
Request Body
Response Schema
cURL Example
Error Codes
| Code | Status | Message |
|---|---|---|
| not_found | 404 | Project not found. |
/api/v1/projects/:idDelete a project. Does not delete linked formulas, only unlinks them.
Response Schema
cURL Example
Error Codes
| Code | Status | Message |
|---|---|---|
| not_found | 404 | Project not found. |
/api/v1/projects/:id/formulasLink one or more formulas to a project workspace.
Request Body
Response Schema
cURL Example
Browse the global chemical library and manage supplier catalogs.
/api/v1/chemicalsList chemicals from the global library. Supports search, category, and INCI name query filters.
Response Schema
cURL Example
/api/v1/suppliersList suppliers and their catalog items. Supports search by name.
Response Schema
cURL Example
Generate, list, and download formulation documents (SOPs, COAs, spec sheets).
/api/v1/documentsList all generated documents. Filter by document_type, status, or formula_id.
Response Schema
cURL Example
/api/v1/documentsGenerate a new document for a formula. Document type determines template. Returns job ID. Idempotent.
Request Body
Response Schema
cURL Example
Error Codes
| Code | Status | Message |
|---|---|---|
| tier_upgrade_required | 403 | Document generation requires Pro subscription. |
/api/v1/documents/:idRetrieve document metadata and current generation status.
Response Schema
cURL Example
Error Codes
| Code | Status | Message |
|---|---|---|
| not_found | 404 | Document not found. |
/api/v1/documents/:idSoft-delete a document.
Response Schema
cURL Example
Error Codes
| Code | Status | Message |
|---|---|---|
| not_found | 404 | Document not found. |
/api/v1/documents/:id/downloadGet a pre-signed download URL for the generated document. Returns a 302 redirect.
Response Schema
cURL Example
Error Codes
| Code | Status | Message |
|---|---|---|
| not_found | 404 | Document not found. |
| document_not_ready | 400 | Generation not yet complete. |
AI-powered formulation features including SOP generation and compliance checks.
/api/v1/ai/sopGenerate a Standard Operating Procedure (SOP) from a formula. Requires Pro or Enterprise subscription. Idempotent.
Request Body
Response Schema
cURL Example
Error Codes
| Code | Status | Message |
|---|---|---|
| tier_upgrade_required | 403 | AI features require Pro subscription. |
| rate_limited | 429 | Rate limit exceeded. |
Track async operations like document generation, AI processing, and exports.
/api/v1/jobsCreate an async job. Returns job ID, initial status, and SSE events URL for real-time progress. Idempotent.
Request Body
Response Schema
cURL Example
Error Codes
| Code | Status | Message |
|---|---|---|
| invalid_request | 400 | Invalid payload. |
/api/v1/jobs/:idGet the current status, progress, and result of an async job.
Response Schema
cURL Example
Error Codes
| Code | Status | Message |
|---|---|---|
| not_found | 404 | Job not found. |
/api/v1/jobs/:idCancel a pending or running job. Terminal-state jobs (completed/failed) cannot be cancelled.
Request Body
Response Schema
cURL Example
Error Codes
| Code | Status | Message |
|---|---|---|
| not_found | 404 | Job not found. |
| job_not_cancellable | 400 | Job is already in a terminal state. |
/api/v1/jobs/:id/eventsServer-Sent Events (SSE) stream of job progress. Connect with EventSource or curl for real-time monitoring.
Response Schema
cURL Example
Error Codes
| Code | Status | Message |
|---|---|---|
| not_found | 404 | Job not found. |
Export formulas in multiple formats for external use.
/api/v1/exportsExport a formula to PDF, CSV, JSON, or Excel. Returns a job ID — use Jobs API for progress and download URL. Idempotent.
Request Body
Response Schema
cURL Example
Error Codes
| Code | Status | Message |
|---|---|---|
| invalid_request | 400 | Invalid format or missing fields. |
| tier_upgrade_required | 403 | Export requires Pro subscription. |
Configure webhook endpoints to receive real-time events for formula changes, document generation, and more.
/api/v1/webhooksList all webhook configurations for your organization. Requires organization context.
Response Schema
cURL Example
Error Codes
| Code | Status | Message |
|---|---|---|
| org_required | 400 | Organization required to manage webhooks. |
/api/v1/webhooksCreate a new webhook configuration. A signing secret is generated and returned once. Supports events: formula.*, document.*, batch.*, and more.
Request Body
Response Schema
cURL Example
Error Codes
| Code | Status | Message |
|---|---|---|
| invalid_request | 400 | Invalid webhook payload. |
| org_required | 400 | Organization required. |
/api/v1/webhooks/:idGet a single webhook configuration.
Response Schema
cURL Example
Error Codes
| Code | Status | Message |
|---|---|---|
| not_found | 404 | Webhook not found. |
/api/v1/webhooks/:idUpdate webhook configuration: endpoint URL, events, active status, custom headers.
Request Body
Response Schema
cURL Example
Error Codes
| Code | Status | Message |
|---|---|---|
| not_found | 404 | Webhook not found. |
/api/v1/webhooks/:idDelete a webhook configuration. Future events will not be delivered.
Response Schema
cURL Example
Error Codes
| Code | Status | Message |
|---|---|---|
| not_found | 404 | Webhook not found. |
/api/v1/webhooks/:id/deliveriesList recent delivery attempts with status, HTTP response code, and timestamp.
Response Schema
cURL Example
Manage organizations for team-based collaboration.
/api/v1/organizationsList organizations the authenticated user belongs to.
Response Schema
cURL Example
/api/v1/organizationsCreate a new organization. The creator becomes the owner. Idempotent.
Request Body
Response Schema
cURL Example
Get the current authenticated profile and identity.
/api/v1/meRetrieve the current authenticated user profile including subscription tier, organization memberships, and usage limits.
Response Schema
cURL Example
Error Codes
| Code | Status | Message |
|---|---|---|
| auth_required | 401 | Authentication required. |