Docs

Quickstart. First profile in under five minutes.

No portal gymnastics. A key, three tools, and the smallest API surface that lets an agent remember.

Quickstart

Five minutes from npm install to a profile any agent in your stack can read.

1. Install

# pick one
npm install @ediccio/sdk
pip install ediccio

2. Make your first profile

Pipe any natural-language signal in. We do the extraction.

curl -X POST https://api.ediccio.ai/v1/enrich_from_text \
  -H "Authorization: Bearer $EDICCIO_KEY" \
  -d '{
       "end_user_id": "pat@acme.com",
       "text": "we keep reinventing memory for every agent",
       "channel": "email"
     }'

Response:

{
  "profile_version": 1,
  "updated_fields": [
    { "field": "intent", "value": "Evaluate managed memory layer", ... },
    { "field": "pain",   "value": "Re-implementing memory per agent", ... }
  ]
}

3. Ask your agent about it

Add Ediccio to any MCP-compatible host’s mcp.json, restart, and ask:

> What does Pat at Acme care about?

Calling tool get_profile(end_user_id="pat@acme.com")
✓ profile retrieved

Pat is evaluating managed customer-memory layers.
Top pain: re-implementing memory per agent...

API reference

Three endpoints. Every one of them has a cURL example, a Python example, and an MCP example. Every response includes request_id for support.

get_profile

GET /v1/profile/:end_user_id

Return the current profile. Pass ?projection=intent,pain to subset.

curl https://api.ediccio.ai/v1/profile/pat@acme.com \
  -H "Authorization: Bearer $EDICCIO_KEY"

enrich_from_text

POST /v1/enrich_from_text

Update a profile from a natural-language signal. Returns the diff with evidence.

curl -X POST https://api.ediccio.ai/v1/enrich_from_text \
  -H "Authorization: Bearer $EDICCIO_KEY" \
  -d '{ "end_user_id": "...", "text": "...", "channel": "email" }'

find_profiles

POST /v1/find_profiles

Semantic search across the tenant. Filter by trait, sentiment band, recency.

curl -X POST https://api.ediccio.ai/v1/find_profiles \
  -H "Authorization: Bearer $EDICCIO_KEY" \
  -d '{ "query": "mentioned multi-agent context this month", "limit": 10 }'

Webhook adapter

Point any source that posts JSON at /v1/webhook/:source. Configure the field mapping once in the dashboard. We’ll parse, identify by your mapping, and run enrich_from_text in the background.

Python & TypeScript SDKs

Thin wrappers around the REST API. Typed responses, async by default, retry-with-backoff out of the box. pip install ediccio · npm install @ediccio/sdk.

Rate limits

  • Free. 60 req/min · 5,000 signals/mo · 500 active profiles · hard cap, then read-only.
  • Team. 600 req/min · 250,000 signals/mo · then $0.0015 per signal.
  • Scale. 1.5M signals/mo · then $0.0011 per signal · SSO, audit logs, EU residency.
  • Enterprise. Negotiated.

Errors

Standard HTTP codes. Every error body includes code, message, request_id, and a docs URL.

{
  "code": "profile_not_found",
  "message": "No profile for end_user_id 'pat@acme.com'",
  "request_id": "req_01HZX...",
  "docs": "https://ediccio.ai/docs/errors#profile_not_found"
}

Read it, then build the thing.

Five design partners through July. We reply in two working days.