API Documentation

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. 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. 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. 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.

1

Issue a workspace API key

Create a workspace-scoped key in the dashboard with only the read and write paths the integration needs.

2

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.

3

Append the resulting event

After the send, reply, unsubscribe, bounce, or meeting happens, append that fact with provenance and an idempotency key.

4

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.

MethodPathPurpose
POST/api/contactability/checkDetermine whether contact is allowed right now using a person, organization, or identity lookup.
POST/api/outreach-eventsAppend a contact attempt, reply, meeting, unsubscribe, bounce, or note after it happens.
POST/api/targets/summaryReturn the resolved target, known identities, recent events, and current policy inputs in one payload.
POST/api/targets/historyRetrieve recent outreach history for a target when a timeline view is needed.
POST/api/targets/policy-documentExport the active rule set as policy.v1 for portable policy reasoning.
POST/api/imports/outreach-csvBackfill historical outreach data from CSV or CRM-style exports.
POST/api/record-flagsFlag disputed, wrong, or malicious records without mutating underlying history.
GET/api/policy-decisionsRetrieve 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.