Workspace
Workspace
Read and edit the workspace profile (the "Workspace Details" your campaigns are built from). To import business information, see Imports; to rebuild the company summary + market research, see Regenerate; for signed document downloads, see Workspace Documents.
Reads require the workspace:read scope; writes require workspace:write. All operations are scoped to the API key's workspace.
Get the workspace
GET /api/v1/workspace · scope workspace:read
Returns the workspace profile (workspace_details), onboarding state, and the readiness of the two workspace-level documents.
Example request
curl -X GET "https://app.machfive.io/api/v1/workspace" \
-H "Authorization: Bearer YOUR_API_KEY"Response (200 OK)
{
"id": "workspace-uuid",
"name": "Acme Inc",
"onboarding_completed": true,
"details": {
"company_name": "Acme Inc",
"website_url": "https://acme.com",
"industry_vertical": "B2B SaaS",
"business_description": "Acme helps teams ...",
"core_products": [{ "product": "Acme Pro", "pricing": "$499/mo" }],
"case_studies": ["Helped Client X grow 40% in 6 months"]
},
"documents": [
{ "type": "company_summary", "title": "Company Summary", "status": "ready", "download_url": "https://..." },
{ "type": "market_research", "title": "Market Research", "status": "processing", "download_url": null }
]
}| Field | Type | Description |
|---|---|---|
id | string (UUID) | Workspace ID. |
name | string | null | Workspace name. |
onboarding_completed | boolean | Whether onboarding has been completed. |
details | object | All editable workspace_details fields (see Update details). Missing values are null. |
documents[] | array | Company summary + market research. status is ready | processing | unavailable; download_url is a short-lived signed URL for ready docs only. |
Error responses
| Status | Error | Description |
|---|---|---|
| 401 | UNAUTHORIZED | Missing or invalid API key. |
| 403 | FORBIDDEN | Key missing the workspace:read scope. |
| 404 | NOT_FOUND | No workspace found for this API key. |
| 500 | INTERNAL_ERROR | Server error. |
Update workspace details
PUT /api/v1/workspace/details · scope workspace:write
Updates one or more editable detail fields. Send only the fields you want to change; at least one is required.
Save-only. This endpoint does not regenerate any documents. To rebuild the company summary + market research from the saved details, call
POST /api/v1/workspace/regenerate.
Editable fields
Text fields (string | null): company_name, website_url, city_region, industry_vertical, contact_name, contact_title, contact_phone, contact_email, business_address, primary_goal, target_job_titles, ideal_client_urls, competitors, business_description, problems_solved, client_transformation, ideal_client_description, pain_points, solution_triggers, competitor_frustrations, unique_differentiators, objections_and_responses, additional_info.
Array fields: core_products (array of { product, pricing? } — pricing is optional and defaults to an empty string), case_studies, credibility_markers, guarantee, lead_magnets (arrays of strings).
Example request
curl -X PUT "https://app.machfive.io/api/v1/workspace/details" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"industry_vertical": "B2B SaaS",
"core_products": [{ "product": "Acme Pro", "pricing": "$499/mo" }]
}'Response (200 OK)
Returns the full details object with all editable fields (not just the ones you changed); fields without a value are null. Abbreviated here for space:
{ "details": { "industry_vertical": "B2B SaaS", "core_products": [{ "product": "Acme Pro", "pricing": "$499/mo" }], "company_name": "Acme Inc", "website_url": null, "case_studies": null, "...": "(all other editable fields)" } }Error responses
| Status | Error | Description |
|---|---|---|
| 400 | BAD_REQUEST | No fields provided, or a field failed validation. |
| 401 | UNAUTHORIZED | Missing or invalid API key. |
| 403 | FORBIDDEN | Key missing the workspace:write scope. |
| 500 | INTERNAL_ERROR | Server error. |