Everything an AI agent can do with the Census API.

A reference guide for building AI agents: every method, how to authenticate, and the permissions each one needs.

Endpoints23
API versionv1
Last updated23 June 2026
Orientation

How the Census API works.

The Census API is how an app or AI agent manages reverse-ETL pipelines: listing the syncs that move data, triggering a sync run, connecting a warehouse as a source, or wiring up a business tool as a destination. Access is granted through an API key sent as a bearer token, either a workspace API key scoped to one workspace or a personal access token that carries the same permissions as the person who made it. Census can push a signed event to a registered endpoint each time a sync run changes state.

23Endpoints
5Capability groups
13Read
10Write
0Permissions
Authentication
Census authenticates calls with a bearer token, not OAuth. A workspace API key is scoped to a single workspace and used for the workspace-level methods that manage syncs, sources, and destinations. A personal access token, used for organization-level methods, carries the same permissions as the user who created it, so an admin's token can manage workspaces while a non-admin's cannot. Both are sent in the Authorization header.
Permissions
A Census key has no granular per-endpoint scopes. A workspace API key can call every workspace method, and a personal access token inherits whatever its user can do in the app. There is no way to mint a key that reads syncs but cannot trigger them, so the boundary is the whole workspace or the user's role, which is why access is best narrowed by a layer in front of the key.
Versioning
The Management API is served under a single path version, v1. Census does not pin a dated version per request; instead it ships additive changes and deprecations through its release notes, and the v1 path stays stable across them. The older sources Models methods are deprecated in favor of the Datasets methods.
Data model
Census is built around syncs that move rows from a source to a destination. A source is a warehouse or database, a destination is a connected business tool, and a dataset (formerly a model) defines the rows to sync, usually with SQL. Triggering a sync produces a sync run, whose progress and record counts can be read back or delivered by webhook. Responses wrap results in a status field with a data payload and a pagination object.
Connect & authenticate

Connection & authentication methods.

How an app or AI agent connects to Census determines what it can reach. There is a route for making calls and a route for receiving events, and each is governed by the key behind it and the permissions that key carries.

Ways to connect

Management API (REST)

The Management API is a REST API at https://app.getcensus.com/api/v1 (and https://app-eu.getcensus.com/api/v1 in the EU). It returns JSON wrapped in a status field with a data payload, and pages long lists with page and per_page. A call authenticates with a bearer token, either a workspace API key or a personal access token, in the Authorization header.

Best forConnecting an app or AI agent to Census to manage syncs, sources, and destinations.
Governed byThe key and the permissions it carries.
Docs ↗

Sync lifecycle webhooks

Census POSTs a JSON payload to a registered HTTPS endpoint when a sync run changes state, covering sync.triggered, sync.started, sync.completed, sync.success, and sync.failed, plus sync.alert.raised and sync.alert.resolved. The payload names the workspace, sync, and sync run. Each request carries an X-Signature header computed with HMAC-SHA256 over the payload and the webhook secret, so the receiver can confirm it came from Census. Webhooks are managed in the dashboard or through the webhooks methods.

Best forReceiving sync run events at an app or AI agent.
Governed byThe signing secret on the webhook.
Docs ↗
Authentication

Workspace API key

A workspace API key is scoped to a single workspace and authenticates the workspace-level methods that manage syncs, sources, destinations, and datasets. It is created in the workspace's API access settings and sent as a bearer token. It has no per-endpoint scopes, so it can call any workspace method.

TokenBearer API key (workspace-scoped)
Best forServer-side calls that manage a single Census workspace.
Docs ↗

Personal access token

A personal access token authenticates the organization-level methods and carries the same permissions as the user who created it. An admin's token can create and manage workspaces, while a non-admin's token cannot. It is created from the user's settings and sent as a bearer token. There are no granular scopes, so the user's role is the boundary.

TokenBearer token (user-scoped, inherits the user's role)
Best forOrganization-level calls, including managing workspaces.
Docs ↗
Endpoint reference

Every Census API method.

Filter by method, access, or permission, or search any path. Select a row for version detail, rate limits, the related webhook event, and the source.

MethodEndpointWhat it doesAccessPermissionVersion

Syncs

Methods for listing, configuring, and running syncs, the pipelines that move rows from a source to a destination.7

Read-only. Census keys have no per-endpoint scopes; a workspace API key can call this.

Acts onsync
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Read-only.

Acts onsync
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Creates a pipeline. No scope narrows this below the whole workspace.

Acts onsync
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Changes a live pipeline's behavior.

Acts onsync
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Removes a pipeline; irreversible.

Acts onsync
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Pushes live data into the destination. force_full_sync runs it as a full sync.

Acts onsync_run
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventsync.triggered
Rate limitStandard limits apply

Validates the configuration; does not move the full dataset.

Acts onsync
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Sync runs

Methods for reading the runs a sync has produced, with status and record counts.2

Read-only. Statuses include working, completed, failed, skipped, and queued.

Acts onsync_run
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Read-only.

Acts onsync_run
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Sources

Methods for working with sources, the warehouses and databases data is read from.4

Read-only.

Acts onsource
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Read-only.

Acts onsource
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Connects a data source; carries warehouse credentials.

Acts onsource
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Read-only catalogue of available source connectors.

Acts onsource_type
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Destinations

Methods for working with destinations, the business tools data is written to.4

Read-only.

Acts ondestination
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Read-only.

Acts ondestination
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Read-only catalogue of available destination connectors.

Acts ondestination_type
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Read-only; describes what a sync can map into.

Acts onobject_type
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Datasets

Methods for working with datasets, the SQL definitions of the rows a sync moves (the modern replacement for models).6

Read-only. Datasets are the modern replacement for models.

Acts ondataset
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Read-only.

Acts ondataset
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Defines new rows a sync can move; supports SQL datasets.

Acts ondataset
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Changes which rows a sync sends.

Acts ondataset
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Removes a dataset; syncs depending on it are affected.

Acts ondataset
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Updates the dataset's columns from the source schema.

Acts ondataset
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply
No endpoints match those filters.
Webhooks

Webhook events.

Census can notify an app when a sync run changes state, like a run starting, completing, or failing. It POSTs a signed payload naming the workspace, sync, and run, so an integration learns about pipeline activity without polling.

EventWhat it signalsTriggered by
sync.triggeredA sync run has been queued. Fires when a run is started, including by the trigger method./api/v1/syncs/{sync_id}/trigger
sync.startedActive work on the sync run has started, after it was queued./api/v1/syncs/{sync_id}/trigger
sync.completedThe sync run has completed, for both successful and failed runs. The payload adds a status of ok or emergency./api/v1/syncs/{sync_id}/trigger
sync.successA sync run completed successfully./api/v1/syncs/{sync_id}/trigger
sync.failedA sync run has failed./api/v1/syncs/{sync_id}/trigger
No events match that search.
Rate limits & pagination

Rate limits, pagination & request size.

Census meters how fast an app can call and pages long lists, returning a set number of records per page with a pagination object that points to the next and previous pages.

Request rate

Census meters API traffic and returns HTTP 429 when an app calls too fast, the same signal its own connectors back off and retry on. The Management API reference does not publish a fixed per-minute or per-key number, so an integration should treat 429 as the cue to slow down and retry with exponential backoff rather than assume a documented ceiling.

Pagination

A list method is page-based. The page parameter selects the page and starts at 1, per_page sets the page size at a default of 25 and a maximum of 100, and order sorts by creation time, descending by default. The response carries a pagination object with total_records, page, per_page, next_page, prev_page, and last_page, where next_page or prev_page is null at the ends of the collection.

Request size

A list returns at most 100 records per page, the maximum value of per_page. Larger collections are walked page by page using the next_page value from the pagination object until it is null.

Errors

Status codes & error handling.

The status codes an agent should handle, and what to do about each.

StatusCodeMeaningWhat to do
200status: error (in body)Census returns a JSON body with a status field. A successful call returns status of success with a data payload; a handled failure can return status of error with a message describing the problem, even on a 200 response.Read the status field in the body, not just the HTTP code. On status of error, surface the message and fix the request before resending.
401unauthorizedNo valid bearer token was provided, or the token is wrong for the API being called, like a personal access token used where a workspace API key is expected.Send a valid workspace API key or personal access token in the Authorization header, and rotate the token if it may be compromised.
403forbiddenThe token authenticated but its user lacks the role for this action, like a non-admin personal access token trying to manage workspaces.Use a token whose user has the required role, for example an admin for workspace management.
404not_foundThe requested object does not exist in this workspace, or is not visible to this token.Verify the id and confirm it belongs to the workspace the token is scoped to.
429too_many_requestsRequests arrived too quickly and Census throttled the caller. This is the same signal its own connectors back off and retry on.Back off and retry with exponential backoff, and smooth the request rate.
Versioning & freshness

Version history.

Census serves a single version of its Management API, carried in the path, and ships dated changes through release notes rather than minting a new version string for each one.

Version history

What changed, and when

Latest versionv1
v1Current version
Management API v1 (current)

Census serves a single, stable path version of its Management API, v1, at app.getcensus.com (and app-eu.getcensus.com in the EU). Rather than minting a new version per change, Census ships additive endpoints and deprecations through its release notes while the v1 path stays in place.

What changed
  • Datasets methods are the current way to define the rows a sync moves.
  • The older sources Models methods are deprecated in favor of Datasets.
  • Sync lifecycle webhooks notify external systems of sync run events.
Earlier
Census joins Fivetran (Activations)

Census became part of Fivetran and its reverse-ETL product is offered as Fivetran Activations. The Management API endpoints are unchanged at app.getcensus.com under v1, while the reference documentation moved onto the Fivetran docs site.

What changed
  • developers.getcensus.com and docs.getcensus.com pages now redirect to fivetran.com/docs/activations.
  • The API surface, base URL, and v1 path version carried over unchanged.

The path version is stable; track the release notes for additive changes and deprecations.

Census API changelog ↗
Questions

Census API, answered.

What is the difference between a workspace API key and a personal access token?+
A workspace API key is tied to one workspace and authenticates the workspace-level methods that manage syncs, sources, destinations, and datasets. A personal access token is tied to a user for the organization-level methods, and it carries the same permissions that user has in the app, so a token from an admin can create and manage workspaces while a token from a non-admin cannot. Both are sent as a bearer token in the Authorization header.
Does a Census key have scopes or per-endpoint permissions?+
No. Census does not offer granular scopes on a key. A workspace API key can call any workspace method, and a personal access token inherits whatever the user can do in the app. There is no built-in way to issue a key that can read syncs but not trigger them, so narrowing what a given agent or integration may do has to happen in a layer in front of the key.
How does an agent run a sync on demand?+
An agent triggers a run with POST to /api/v1/syncs/{sync_id}/trigger. An optional force_full_sync query parameter runs it as a full sync instead of an incremental one. The call returns a sync_run_id, and the run's progress, status, and record counts can then be read from the sync runs methods or delivered by webhook.
Can Census notify my app when a sync finishes?+
Yes. Census sends sync lifecycle webhooks for events including sync.triggered, sync.started, sync.completed, sync.success, and sync.failed, plus sync.alert.raised and sync.alert.resolved. The payload names the workspace, sync, and sync run, and sync.completed adds a status of ok or emergency. Each request carries an X-Signature header computed with HMAC-SHA256 over the payload and the webhook secret, so the receiver can confirm it came from Census.
What is the difference between a model and a dataset?+
Both define the set of rows a sync moves, usually with a SQL query against a source. Datasets are the current approach and have their own methods under /api/v1/datasets. The older Models methods, under a source, are deprecated and Census recommends migrating to the Datasets methods.
Why do Census docs now point to Fivetran?+
Census is now part of Fivetran and its reverse-ETL product is offered as Fivetran Activations. The Management API itself is unchanged at app.getcensus.com under the v1 path, but the reference documentation has moved onto the Fivetran docs site, so links from the old developers.getcensus.com pages redirect there.
Related

More data API guides for agents

What is Bollard AI?

Control what every AI agent can do in Census.

Bollard AI sits between a team's AI agents and Census. Grant each agent exactly the access it needs, read or write, area by area, and every call is checked and logged.

  • Set read, write, or full access per agent, never a shared Census key.
  • Denied by default, so an agent reaches only what has been explicitly allowed.
  • Every call recorded in plain English: who, what, where, and the decision.
Census
Data Ops Agent
View syncs ResourceOffReadFull use
Trigger sync runs ActionOffReadFull use
Sources ResourceOffReadFull use
Datasets ResourceOffReadFull use
Per-agent access, set in Bollard AI, not in Census