Skip to content

Workspace API

Endpoints

Workspace API operations for accounts, projects, contacts, Views, Favorites, Skills, and workspace meta reads.

Ordinary account, contact, and project searches remain your book. Broader Dynamic/Static View execution uses POST /workspace/views/{id}/records/search. See Workspace Views. Skills use the action-named /workspace/skills/* family. See Workspace Skills.

Workspace meta reads return plan and usage information for the calling workspace. They cost 0 credits and never throttle.

OperationMethod + pathCredits
Get workspace infoGET /workspace0
Get creditsGET /workspace/credits0

The Workspace API also exposes four operations for each of its three datasets: accounts, projects, and contacts. Two are reads and two are writes. All share the { data, metadata } response envelope.

OperationMethod + pathCredits
Search accountsPOST /workspace/accounts/search1 per row returned
Get an accountGET /workspace/accounts/{id}1 per call
Upsert accountPOST /workspace/accounts/upsert0
Delete accountDELETE /workspace/accounts/{id}0
Batch upsert accountsPOST /workspace/accounts/upsert/batch0
Batch delete accountsPOST /workspace/accounts/delete/batch0
Search projectsPOST /workspace/projects/search1 per row returned
Get a projectGET /workspace/projects/{id}1 per call
Upsert projectPOST /workspace/projects/upsert0
Delete projectDELETE /workspace/projects/{id}0
Batch upsert projectsPOST /workspace/projects/upsert/batch0
Batch delete projectsPOST /workspace/projects/delete/batch0
Search contactsPOST /workspace/contacts/search1 per row returned
Get a contactGET /workspace/contacts/{id}1 per call
Upsert contactPOST /workspace/contacts/upsert0
Delete contactDELETE /workspace/contacts/{id}0
Batch upsert contactsPOST /workspace/contacts/upsert/batch0
Batch delete contactsPOST /workspace/contacts/delete/batch0

Shared Views and personal Favorites:

OperationMethod + pathCredits
List ViewsGET /workspace/views0
Get a ViewGET /workspace/views/{id}0
Upsert ViewPOST /workspace/views/upsert0
Batch upsert ViewsPOST /workspace/views/upsert/batch0
Delete a ViewDELETE /workspace/views/{id}0
Batch delete ViewsPOST /workspace/views/delete/batch0
Add View recordsPOST /workspace/views/{id}/records/add0
Batch add View recordsPOST /workspace/views/{id}/records/add/batch0
Remove a View recordDELETE /workspace/views/{id}/records/{recordId}0
Batch remove View recordsPOST /workspace/views/{id}/records/delete/batch0
Search View recordsPOST /workspace/views/{id}/records/search1 per row returned
List Favorite ViewsGET /workspace/favorite-views0 (user JWT)
Upsert Favorite ViewPOST /workspace/favorite-views/upsert0 (user JWT)
Batch upsert FavoritesPOST /workspace/favorite-views/upsert/batch0 (user JWT)
Delete a FavoriteDELETE /workspace/favorite-views/{viewId}0 (user JWT)
Batch delete FavoritesPOST /workspace/favorite-views/delete/batch0 (user JWT)

Batch writes accept 1-100 records per call and return per-item results in input order. One record failing never aborts the rest. See Batch writes for the shared request and response shapes.

Skills are portable instruction bundles. Every Skills route costs 0 credits. Reads return { data, metadata: { credits: 0 } }. Writes return a content-free receipt. Each write has a /batch sibling.

OperationMethod + pathCredits
Find skillsPOST /workspace/skills/find0
List skillsPOST /workspace/skills/list0
Get a skillPOST /workspace/skills/get0
Get a skill filePOST /workspace/skills/get-file0
List skill revisionsPOST /workspace/skills/revisions0
Create a skillPOST /workspace/skills/create0
Batch create skillsPOST /workspace/skills/create/batch0
Update a skill draftPOST /workspace/skills/update0
Batch update skill draftsPOST /workspace/skills/update/batch0
Publish a skillPOST /workspace/skills/publish0
Batch publish skillsPOST /workspace/skills/publish/batch0
Unpublish a skillPOST /workspace/skills/unpublish0
Batch unpublish skillsPOST /workspace/skills/unpublish/batch0
Delete a skillPOST /workspace/skills/delete0
Batch delete skillsPOST /workspace/skills/delete/batch0
Transfer a skillPOST /workspace/skills/transfer0
Batch transfer skillsPOST /workspace/skills/transfer/batch0
Move a skillPOST /workspace/skills/move0
Batch move skillsPOST /workspace/skills/move/batch0
Fork a skillPOST /workspace/skills/fork0
Batch fork skillsPOST /workspace/skills/fork/batch0
Install an official skillPOST /workspace/skills/install0
Batch install official skillsPOST /workspace/skills/install/batch0
Uninstall an official skillPOST /workspace/skills/uninstall0
Batch uninstall official skillsPOST /workspace/skills/uninstall/batch0

Signal subscriptions are workspace configuration, not a dataset. They control which signal types the workspace tracks and how alerts are delivered.

OperationMethod + pathCredits
List subscriptionsGET /workspace/signal-subscriptions0
Upsert subscriptionPOST /workspace/signal-subscriptions/upsert0
Delete subscriptionDELETE /workspace/signal-subscriptions/{id}0

Members and invitations are workspace administration, not a dataset. They let you inspect and manage who has access to the workspace and invite new team members.

OperationMethod + pathCredits
List membersGET /workspace/members0
Update a memberPATCH /workspace/members/{userId}0
Remove a memberDELETE /workspace/members/{userId}0
Invite a userPOST /workspace/invitations0
List invitationsGET /workspace/invitations0
Revoke an invitationDELETE /workspace/invitations/{id}0

Shared response envelope

Every response wraps its payload in a { data, metadata } envelope, matching the Data API shape. Search responses include pagination fields; get, upsert, and delete responses include only credits.

Upsert match rules

Upsert endpoints accept either an explicit UUID or a natural-key match to identify the target record. The available match strategies differ by entity:

  • Accounts accept account_id (UUID) or match: { domain }.
  • Contacts accept contact_id (UUID) or match: { email }.
  • Projects accept project_id (UUID) only. Projects have no natural key.

When using a natural-key match (domain for accounts, email for contacts):

MatchesResult
Exactly 1 recordUpsert proceeds
0 records404 not_found
More than 1 record409 ambiguous_match (use the explicit UUID instead)

Partial update semantics

Upsert applies partial updates to your workspace’s custom fields:

  • Omitted fields are left unchanged. You can update workspace_status without touching notes or tags.
  • Explicit null clears a field. Sending "notes": null removes the existing note.
  • tags is full-replace. Sending "tags": ["boston"] replaces the entire tag set. To clear all tags, send "tags": [].

Metering

Book entity searches and gets, plus View-record search, cost 1 credit per row returned or record fetched. View definition reads (list/get Views), Favorite reads and writes, View upsert/delete, membership add/remove, book upserts/deletes, and every Skills route cost 0 credits. Credits roll over a 24-hour window with a ceiling of 250,000 per Pro workspace. See Credits.

Get Workspace InfoReturn the workspace plan, entitlements, seat usage, and settings object.Get CreditsReturn credit usage and remaining capacity for the rolling 24-hour window.Search AccountsPOST body reference: filters, sort, limit, offset, and search_after.Get an AccountFetch one workspace account by UUID, with optional related-record includes.Upsert AccountAdd or update a workspace account by account id or domain match.Delete an AccountRemove your workspace’s custom data for an account. Idempotent.Search ProjectsPOST body reference: filters, sort, limit, offset, and search_after.Get a ProjectFetch one workspace project by UUID, with optional related-record includes.Upsert ProjectAdd or update a workspace project by project id.Delete a ProjectRemove your workspace’s custom data for a project. Idempotent.Search ContactsPOST body reference: filters, sort, limit, offset, and search_after.Get a ContactFetch one workspace contact by UUID, with optional related-record includes.Upsert ContactAdd or update a workspace contact by contact id or email match.Delete a ContactRemove your workspace’s custom data for a contact. Idempotent.Manage ViewsList, fetch, create, update, and delete shared Dynamic and Static Views.View RecordsAdd, remove, and search the records a View exposes.List SubscriptionsReturn all signal types the workspace tracks, with priorities, channels, and new-signal counts.Upsert SubscriptionSubscribe to a signal type or update its priority, channels, recipients, and cadence.Delete a SubscriptionRemove a signal subscription by its row id. Idempotent.List MembersReturn all workspace members with their role and join date.Update a MemberChange a member’s role to owner, admin, or member.Remove a MemberRemove a user from the workspace. Idempotent.Invite a UserCreate an invitation for an email address and dispatch the invite email.List InvitationsReturn all pending and expired invitations for the workspace.Revoke an InvitationRevoke a pending invitation by id. Returns 404 if already accepted or revoked.