connectors:ingestConnectors - Ingest
Start connector runs and submit source records, relationships, and tombstones.
FeatureFactory for developers
API v1Bring data from an internal tool, a niche platform, or your own product into FeatureFactory. Keep it current, connect related records, and add two-way actions when your workflow needs them.
10
documented API operations
500
records per request
10 MB
maximum batch request body
Clear access
Separate permissions cover sending data, receiving actions, and reporting connection health. Every API key is limited to its FeatureFactory organization and connected account.
connectors:ingestStart connector runs and submit source records, relationships, and tombstones.
connectors:commandsClaim and report results for outbound connector commands.
connectors:healthReport remote connector health and permission status.
Choose how your system will stay current: webhooks, incremental updates, full syncs, files, or manual runs.
Submit records and their relationships in batches of up to 500. Large imports can resume without starting over.
Send versions or timestamps so delayed updates cannot replace newer information.
Let FeatureFactory request approved actions in your system, then report whether each one succeeded.
Quickstart
Create an API key in Settings, copy your connection ID, then send your first set of records. These examples use an incremental sync so you can continue from where the previous request ended.
1. Start a sync run
startConnectorSyncRun
curl -X POST "https://featurefactory.com/api/v1/connectors/<integration-uuid>/runs" \
-H "Authorization: Bearer ff_<your-key>" \
-H "Content-Type: application/json" \
-H "X-Idempotency-Key: run-crm-2026-07-14" \
-d '{
"resource": "accounts",
"entity_type": "account",
"mode": "incremental",
"input": {"cursor": "provider-cursor"}
}'2. Submit a source batch
submitConnectorSourceBatch
curl -X POST "https://featurefactory.com/api/v1/connectors/<integration-uuid>/runs/<run-uuid>/batches" \
-H "Authorization: Bearer ff_<your-key>" \
-H "Content-Type: application/json" \
-H "X-Idempotency-Key: page-0001" \
-d '{
"idempotency_key": "page-0001",
"checkpoint": {"cursor": "next-provider-cursor"},
"records": [{
"entity_type": "account",
"external_id": "acct_123",
"operation": "upsert",
"source_version": "42",
"source_timestamp": "2026-07-14T18:00:00Z",
"payload": {"name": "Acme"},
"relationships": []
}]
}'Use the same X-Idempotency-Key when retrying a request. FeatureFactory recognizes the replay instead of creating duplicate data.
Include a version, ETag, or timestamp with each record. If an older update arrives late, FeatureFactory will not overwrite newer information.
An API key can only access connections in its own FeatureFactory organization. It cannot read or update another customer’s data.
API operations
/connectors/{integration}/runsStart an idempotent connector sync run
connectors:ingest/connectors/{integration}/runs/{run}Inspect a connector sync run
connectors:ingest/connectors/{integration}/runs/{run}/batchesSubmit an idempotent source-record batch
connectors:ingest/connectors/{integration}/runs/{run}/completeComplete a run and atomically advance its stream cursor
connectors:ingest/connectors/{integration}/commands/claimClaim pending outbound commands with row-level skip-locking
connectors:commands/connectors/{integration}/runs/{run}/failMark a connector sync run failed
connectors:ingest/connectors/{integration}/runs/{run}/tombstonesExplicitly tombstone source records
connectors:ingest/connectors/{integration}/commands/{command}/completeComplete a claimed outbound command
connectors:commands/connectors/{integration}/commands/{command}/failFail or mark a claimed outbound command ambiguous
connectors:commands/connectors/{integration}/healthReport remote connector health and permissions
connectors:healthReady for your toolchain
Download the OpenAPI specification to generate typed clients or explore every endpoint. Use the JSON Schema to validate record batches in development and CI.