← nondual

REST API

Direct HTTP access. All endpoints accept and return JSON.

Base URL

https://api.nondual.cloud/v1

Authentication

Pass your key in the Authorization header on every request.

Authorization: Bearer ***

Get a key:

curl -s -X POST https://api.nondual.cloud/v1/keys \
  -H "Content-Type: application/json" \
  -d '{"email":"you@example.com"}'

Agent attribution

Pass the calling agent name in the X-Nondual-Agent header on record and context calls. It is stored with every interaction and followup.

X-Nondual-Agent: my-sales-agent

POST /resolve

Resolve an email or LinkedIn URL to a full contact profile.

curl -s -X POST https://api.nondual.cloud/v1/resolve \
  -H "Authorization: Bearer ***" \
  -H "Content-Type: application/json" \
  -d '{"contact":"dario@anthropic.com"}'

Request body:

FieldRequiredDescription
contactyesEmail or LinkedIn URL to resolve

Response:

{
  "contact": {
    "id": "contact_...",
    "name": "Dario Amodei",
    "identifiers": {
      "emails": ["dario@anthropic.com"],
      "linkedin_url": "https://linkedin.com/in/darioamodei",
      "phones": [],
      "handles": []
    },
    "profile": {
      "role": "Co-Founder & CEO",
      "about": "...",
      "location": "San Francisco, CA"
    },
    "company": { "name": "Anthropic", "domain": "anthropic.com" },
    "next": { "action": "Reach out via LinkedIn..." }
  }
}

POST /context

Get relationship context for a contact — profile, interaction history, open followups, next step.

curl -s -X POST https://api.nondual.cloud/v1/context \
  -H "Authorization: Bearer ***" \
  -H "X-Nondual-Agent: my-agent" \
  -H "Content-Type: application/json" \
  -d '{"contact":"dario@anthropic.com"}'
FieldRequiredDescription
contactyesEmail or LinkedIn URL
purposenoReason for outreach

POST /interactions

Record an interaction after outreach.

curl -s -X POST https://api.nondual.cloud/v1/interactions \
  -H "Authorization: Bearer ***" \
  -H "X-Nondual-Agent: my-agent" \
  -H "Content-Type: application/json" \
  -d '{"contact":"dario@anthropic.com","channel":"email","direction":"outbound","summary":"Sent intro","details":"Full email body..."}'
FieldRequiredValues
contactyesEmail or LinkedIn URL
channelyesemail call linkedin slack meeting sms other
directionyesinbound outbound
summaryyesOne sentence describing what happened
detailsnoFull content — email body, transcript, notes

POST /followups

Create a follow-up task.

curl -s -X POST https://api.nondual.cloud/v1/followups \
  -H "Authorization: Bearer ***" \
  -H "X-Nondual-Agent: my-agent" \
  -H "Content-Type: application/json" \
  -d '{"contact":"dario@anthropic.com","action":"Follow up with proposal","due":"2026-07-25"}'
FieldRequiredDescription
contactyesEmail or LinkedIn URL
actionyesWhat to do
duenoISO date (YYYY-MM-DD)

Errors

StatusMeaning
400Bad request — missing or invalid fields
401Missing or invalid API key
404Contact not found — resolve first
429Rate limited — monthly resolve quota reached
500Server error — retry with backoff

All error responses follow:

{ "error": "code", "message": "description" }