CivicDataForge / Services / Integration recipes

Copy the pattern · supply your own token

Move evidence without losing its meaning.

These recipes show the production shape around each interface. They deliberately omit credentials. Use a scoped Apify token in a secret store, validate payloads, make consumers idempotent, and preserve source and decision fields downstream.

REST / available now

Run one evidence task

POST https://api.apify.com/v2/acts/civicdataforge~civicdataforge-evidence-gateway/run-sync-get-dataset-items?timeout=120
Authorization: Bearer $APIFY_TOKEN
Content-Type: application/json

{"task":"us_property_decision","subject":{"address":"1100 Briercliff Drive, Orlando, FL","city":"Orlando","state":"FL"},"purpose":"property compliance research","retentionDays":0,"transactionGate":true}

Use a bounded timeout, treat non-2xx responses as unresolved, and retain the returned receipt and decision state.

MCP / available now

Connect an AI agent

{
  "mcpServers": {
    "civicdataforge": {
      "url": "https://civicdataforge.pages.dev/mcp",
      "headers": {"X-Apify-Token": "${APIFY_TOKEN}"}
    }
  }
}

Store the token as a client secret. Ask the agent to preserve source, scope, retrieval, decision, and receipt fields.

Webhook / available now

Receive completed-run events

POST /your-cdf-webhook
X-Integration-Secret: $SHARED_SECRET

Idempotency key = eventData.actorRunId + eventType

Configure the webhook in Apify. Verify a shared secret, acknowledge quickly, queue work, and deduplicate because deliveries can be retried.

Files / available now

Export a dataset

GET https://api.apify.com/v2/datasets/$DATASET_ID/items?format=jsonl&clean=true
Authorization: Bearer $APIFY_TOKEN

JSON, JSONL, CSV, XML, Excel, HTML, and RSS exports are supported by Apify datasets. Named datasets are the durable choice; apply your own retention policy.

Production boundary: Never infer “clear” from a no-match, timed-out run, unavailable source, partial scope, or review candidate. Those are distinct states. Webhook retries require idempotent consumers; complete monitoring requires complete paging.

Need a system-specific adapter?

Send the system, exact record or identifier, required cadence, and desired delivery route. We will scope the source, transformation, retry, review, and acceptance-test contract before representing the connector as live.

Scope an adapterMachine-readable recipesDeveloper guide