API reference and integration guide.
Singularity gives AI agents and outbound systems a shared memory layer for outreach history, preferences, and contactability decisions before the next send. The current rollout model is workspace-scoped, so each request stays inside one workspace boundary and uses one workspace API key.
Overview
Use the small loop that matters most.
Most integrations do not need every route on day one. The practical path is to wire the decision loop first, then add history import and review surfaces later.
- 1
Check contactability
Call the policy check before an outbound action so the agent sees opt-outs, cooldowns, and back-off decisions before it sends.
- 2
Send in your own system
If the result allows contact, perform the actual outbound action in your CRM, campaign system, or agent runtime.
- 3
Append the resulting event
Log what happened with provenance and an idempotency key so Singularity becomes the durable record of that contact.
Quickstart
First integration pass
These are the four steps that usually get an integration from zero to useful.
Issue a workspace API key
Create a workspace-scoped key in the dashboard with only the read and write paths the integration needs.
Run contactability before outbound actions
Call the contactability endpoint before each outbound send so the external system respects opt-outs, cooldowns, and back-off rules.
Append the resulting event
After the send, reply, unsubscribe, bounce, or meeting happens, append that fact with provenance and an idempotency key.
Read summary or history only when needed
Use target summary and history reads when an agent or operator needs context beyond the yes-or-no decision.
Conventions
Assumptions every client should make
These conventions should stay stable across the current public contract.
- Authentication
Authorization: Bearer <workspace-api-key>- Request format
JSON request and response bodies- Timestamp format
RFC3339- Write safety
Send Idempotency-Key on external writes- Current boundary
One workspace per API key- Error shape
{"code":"invalid_request","error":"message"}
Standard headers
Authorization: Bearer <workspace-api-key>
Content-Type: application/json
Idempotency-Key: <stable-unique-key-for-write-requests>Endpoint Reference
Core routes
Start with these routes unless you already know you need the wider review or import surface.
| Method | Path | Purpose |
|---|---|---|
| POST | /api/contactability/check | Determine whether contact is allowed right now using a person, organization, or identity lookup. |
| POST | /api/outreach-events | Append a contact attempt, reply, meeting, unsubscribe, bounce, or note after it happens. |
| POST | /api/targets/summary | Return the resolved target, known identities, recent events, and current policy inputs in one payload. |
| POST | /api/targets/history | Retrieve recent outreach history for a target when a timeline view is needed. |
| POST | /api/targets/policy-document | Export the active rule set as policy.v1 for portable policy reasoning. |
| POST | /api/imports/outreach-csv | Backfill historical outreach data from CSV or CRM-style exports. |
| POST | /api/record-flags | Flag disputed, wrong, or malicious records without mutating underlying history. |
| GET | /api/policy-decisions | Retrieve stored policy decisions for audit, filtering, and review workflows. |
Examples
Copy-paste starting points
These are the three requests most integrations need first.
Check contactability before send
curl -X POST https://memory.conseqai.com/api/contactability/check \
-H "Authorization: Bearer $SINGULARITY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"tenantId": "workspace_123",
"channelId": "email",
"identityType": "email",
"identityValue": "lena@example.com"
}'Append an outreach event
curl -X POST https://memory.conseqai.com/api/outreach-events \
-H "Authorization: Bearer $SINGULARITY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: msg_01JX8X..." \
-d '{
"tenantId": "workspace_123",
"channelId": "email",
"eventType": "contact_attempt",
"direction": "outbound",
"identityType": "email",
"identityValue": "lena@example.com",
"sourceSystem": "cold-agent",
"sourceRecordId": "message_48291",
"actorType": "external_agent",
"actorIdentifier": "campaign-bot"
}'Read the target summary
curl -X POST https://memory.conseqai.com/api/targets/summary \
-H "Authorization: Bearer $SINGULARITY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"tenantId": "workspace_123",
"identityType": "email",
"identityValue": "lena@example.com"
}'AI Guides
Point an assistant at the contract directly
If you want an AI assistant to explain how to integrate, give it the machine-readable guide first so it starts from the actual public contract.
Suggested prompt
Read https://memory.conseqai.com/llms-full.txt and show me how to integrate contactability checks, outreach logging, and target summaries into my outbound tool.