Skip to content

Workspace API

Endpoints

Workspace API operations for accounts, projects, contacts, Views, Favorites, 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.

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.

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, and book upserts/deletes 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.List ViewsList or filter shared Dynamic and Static Views.Search View RecordsExecute a View with optional ephemeral SearchRequest narrowing.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.