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- Added
GET /documentslists your workspace’s documents;templates=truelists only team templates. - Added
POST /documentsmakes a document from a team template with its gaps filled byfields(or a new one of a kind). It shows in Documents as “Made with the API · key …”, and gaps nobody filled come back asgaps_left. - Added
POST /documents/{id}/exportmakes the PDF (accessible by default), keeps it with the workspace’s PDFs and returns a download link valid for a few hours. - Added
POST /videos/{id}/editapplies 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. - Added
POST /designsmakes a blank design of a format or size, with a link to open it in Workloom’s image editor. - AddedScopes
creative:readandcreative:write. A test key answers with what would happen and changes nothing. - AddedAn MCP server at
/api/public/v1/mcpwith the same four tools (workloom.document.create,workloom.document.export,workloom.video.edit,workloom.design.create), using the same keys:creative:readto connect,creative:writefor 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, withwl_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.
- Added
POST /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) andsandbox_key(awl_sbx_key sent to the live API).
Sorting, and dated versions
v1- Added
sortonGET /contacts,/companiesand/deals, and in the body of their searches: one field, with-in front for newest or largest first. Contacts sort bycreated_atorupdated_at; companies also byemployee_count; deals also byamount,expected_close_dateandclosed_at. Paging stays a cursor. - AddedThe
Workloom-Versionheader. 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 is2026-10-07. - Added
workloom_versionon webhook endpoints and in every delivery. Error code:unsupported_version.
Pipelines, teammates, search, timelines, lists, enrolling and webhook endpoints
v1- Added
GET /pipelines(stages in order, and the lost, won and parked reasons) andGET /seats(teammates), so stage keys, reason keys andowner_seat_idcan be looked up. - Added
custom_fieldson contacts, companies and deals, written with them and listed byGET /custom-fields. - Added
POST /contacts/search,/companies/searchand/deals/search, with filters on declared fields and your own fields. - Added
POST /contacts/upsert(by email),DELETE /contacts/{id}(the contact stays suppressed) andDELETE /deals/{id}. - AddedTimelines for contacts, companies and deals; notes; tasks.
- AddedLists and their members: read, add and remove.
- Added
GET /outreach,POST /weaves/{id}/enrolandPOST /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.unsubscribedandemail.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- Added
POST /contacts,PATCH /contacts/{id},POST /companiesandPATCH /companies/{id}. Thecontacts:writeandcompanies:writescopes 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 withlivemode: false. - Added
Idempotency-Keyon POST requests. A retry with the same key returns the first answer. - AddedA
codeon every error, from a published list. - AddedThe OpenAPI 3.1 file at
GET /openapi.json, andGET /eventslisting every webhook event. - AddedDeals now return
pipeline_id,probability,forecast_category,next_step,primary_contact_id,contactsandcompany_id. Contacts returnfull_nameandlocation. Companies returnemployee_range,owner_seat_idandtags.GET /dealstakespipeline_id. - ChangedWebhooks use public event names (
deal.won,reply.received), an envelope withevent_id,api_versionandlivemode, 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_fieldsinstead of being ignored. - ChangedThe revenue report has a fixed shape.
- FixedEvery retry of a webhook delivery now carries the same
X-Workloom-Deliveryid, 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_countandlocationwere 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?