WorkloomDevelopers
v1Get an API key
Updates/Changelog

Changelog

Every change to the API, newest first. Breaking changes only arrive in a new version.

Documents, video edits and designs, and an MCP server

v1
  • AddedGET /documents lists your workspace’s documents; templates=true lists only team templates.
  • AddedPOST /documents makes a document from a team template with its gaps filled by fields (or a new one of a kind). It shows in Documents as “Made with the API · key …”, and gaps nobody filled come back as gaps_left.
  • AddedPOST /documents/{id}/export makes the PDF (accessible by default), keeps it with the workspace’s PDFs and returns a download link valid for a few hours.
  • AddedPOST /videos/{id}/edit applies the video editor’s operations, checked as the editor checks them, and saves a new version for Workloom to render. Nothing half-applied is saved.
  • AddedPOST /designs makes a blank design of a format or size, with a link to open it in Workloom’s image editor.
  • AddedScopes creative:read and creative:write. A test key answers with what would happen and changes nothing.
  • AddedAn MCP server at /api/public/v1/mcp with the same four tools (workloom.document.create, workloom.document.export, workloom.video.edit, workloom.design.create), using the same keys: creative:read to connect, creative:write for a tool that makes or changes something.

Developer sandboxes

v1
  • AddedA developer sandbox for every workspace on Starter and above: a separate workspace of fictional records (40 companies, 120 contacts, 28 deals, a list, a live weave, an active sequence) at https://sandbox-api.useworkloom.com/api/public/v1, with wl_sbx_ keys made inside it. Writes are saved there; nothing is ever sent, called or charged. Make, open and reset it under Settings › API and webhooks.
  • AddedWebhooks from a sandbox reach your server, signed and retried as from the live API.
  • AddedPOST /sandbox/events (sandbox only): make a reply, an open, a click, a bounce, a meeting, a booking, a form, a call, a Tell or an unsubscribe happen, to test your webhook handler.
  • AddedError codes: sandbox_only (the live API, for a sandbox-only endpoint) and sandbox_key (a wl_sbx_ key sent to the live API).

Sorting, and dated versions

v1
  • Addedsort on GET /contacts, /companies and /deals, and in the body of their searches: one field, with - in front for newest or largest first. Contacts sort by created_at or updated_at; companies also by employee_count; deals also by amount, expected_close_date and closed_at. Paging stays a cursor.
  • AddedThe Workloom-Version header. Keys and webhook endpoints are pinned to the version current when they were made (workloom_version), so a later breaking change never reaches them unasked. Every answer and every delivery says its version. The first version is 2026-10-07.
  • Addedworkloom_version on webhook endpoints and in every delivery. Error code: unsupported_version.

Pipelines, teammates, search, timelines, lists, enrolling and webhook endpoints

v1
  • AddedGET /pipelines (stages in order, and the lost, won and parked reasons) and GET /seats (teammates), so stage keys, reason keys and owner_seat_id can be looked up.
  • Addedcustom_fields on contacts, companies and deals, written with them and listed by GET /custom-fields.
  • AddedPOST /contacts/search, /companies/search and /deals/search, with filters on declared fields and your own fields.
  • AddedPOST /contacts/upsert (by email), DELETE /contacts/{id} (the contact stays suppressed) and DELETE /deals/{id}.
  • AddedTimelines for contacts, companies and deals; notes; tasks.
  • AddedLists and their members: read, add and remove.
  • AddedGET /outreach, POST /weaves/{id}/enrol and POST /sequences/{id}/enrol.
  • AddedWebhook endpoints over the API (webhooks:manage), with the delivery log and resending a delivery.
  • AddedWebhook events: contact.updated, company.updated, deal.updated, contact.deleted, company.deleted, deal.deleted, contact.unsubscribed and email.sent.
  • AddedScopes: team:read, activity:read, activity:write, lists:read, lists:write, outreach:write, webhooks:manage. Error codes: suppressed.
  • FixedA deleted deal no longer stops its contact from getting a new deal in the same pipeline.

Writes for contacts and companies, test keys, and a fixed webhook contract

v1
  • AddedPOST /contacts, PATCH /contacts/{id}, POST /companies and PATCH /companies/{id}. The contacts:write and companies:write scopes now do something.
  • AddedTest keys (wl_test_). They read the same records as a live key and change nothing: every write is checked and answered with livemode: false.
  • AddedIdempotency-Key on POST requests. A retry with the same key returns the first answer.
  • AddedA code on every error, from a published list.
  • AddedThe OpenAPI 3.1 file at GET /openapi.json, and GET /events listing every webhook event.
  • AddedDeals now return pipeline_id, probability, forecast_category, next_step, primary_contact_id, contacts and company_id. Contacts return full_name and location. Companies return employee_range, owner_seat_id and tags. GET /deals takes pipeline_id.
  • ChangedWebhooks use public event names (deal.won, reply.received), an envelope with event_id, api_version and livemode, and a fixed set of fields per event. * means every public event. Endpoints subscribed to the old internal names keep receiving those events, under the new names and with the new fields.
  • ChangedA body field an endpoint does not accept is refused with unknown_fields instead of being ignored.
  • ChangedThe revenue report has a fixed shape.
  • FixedEvery retry of a webhook delivery now carries the same X-Workloom-Delivery id, so you can drop repeats.
  • FixedA key acting for one person now sees only the companies that person can see.
  • FixedDeleted contacts no longer appear in GET /contacts.
  • FixedCompany created_at, updated_at, linkedin_url, employee_count and location were empty or the wrong type.

Service accounts and the Activity log stream

v1
  • AddedService accounts: keys that act with a role, with a rotation date. Rotating keeps the old key working for 24 hours.
  • AddedWebhooks can stream the Activity log. It is never part of *; subscribe to it by name.

Version 1

v1
  • AddedRead contacts, companies and deals; create, update and move deals; the revenue report.
  • AddedAPI keys with scopes, made in Settings › API and webhooks. 300 requests a minute per key.
  • AddedSigned webhooks with retries, a delivery log and a test button.

Breaking changes come only as a new dated version, and reach a key or webhook endpoint only when someone moves it. An old version stops working only after 6 months’ notice here.

Was this page useful?