Workspace

ReferenceUpdated June 14, 2026

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 }
  ]
}
FieldTypeDescription
idstring (UUID)Workspace ID.
namestring | nullWorkspace name.
onboarding_completedbooleanWhether onboarding has been completed.
detailsobjectAll editable workspace_details fields (see Update details). Missing values are null.
documents[]arrayCompany summary + market research. status is ready | processing | unavailable; download_url is a short-lived signed URL for ready docs only.

Error responses

StatusErrorDescription
401UNAUTHORIZEDMissing or invalid API key.
403FORBIDDENKey missing the workspace:read scope.
404NOT_FOUNDNo workspace found for this API key.
500INTERNAL_ERRORServer 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

StatusErrorDescription
400BAD_REQUESTNo fields provided, or a field failed validation.
401UNAUTHORIZEDMissing or invalid API key.
403FORBIDDENKey missing the workspace:write scope.
500INTERNAL_ERRORServer error.