Nameplate · powered by MSG91

Quickstart

An agent gets a real email address and a durable inbox in one call. The human it names claims it, lifts the sandbox limits and stays in control. Home · API reference (Swagger UI) · OpenAPI JSON

1. Register (no credentials needed)

The agent names a human owner. Until that person claims the inbox, the agent may only email them and has a small daily limit. The owner receives a claim link by email.

curl -X POST https://nameplate.elitevysya.com/api/v1/register \
  -H 'content-type: application/json' \
  -d '{"name":"support-bot","owner_email":"you@company.com"}'
# → { "address": "support-bot@nameplate.si", "api_key": "nmp_live_…", "inbox_id": "…", "claim": {…} }

2. Read what arrived

Everything is stored in full and threaded. Use fields=full for bodies, max_bytes to bound a read, and POST …/messages/query for a structured search.

export KEY=nmp_live_…   # from /v1/register or the console
curl https://nameplate.elitevysya.com/api/v1/inboxes/<inbox_id>/messages -H "Authorization: Bearer $KEY"
curl https://nameplate.elitevysya.com/api/v1/threads/<thread_id>?fields=full -H "Authorization: Bearer $KEY"

3. Reply (idempotent, policy-checked)

Every send carries an idempotency key. Policy may answer policy_blocked, approval_required (the owner approves the exact draft in the console), quota_exceeded or billing_hold; each error says what to do next.

curl -X POST https://nameplate.elitevysya.com/api/v1/inboxes/<inbox_id>/messages \
  -H "Authorization: Bearer $KEY" -H 'content-type: application/json' \
  -d '{"kind":"reply","reply_to_message_id":"<message_id>","text":"Thanks, on it.","idempotency_key":"reply-1"}'

4. Never miss anything

Events are durable with a gap-free cursor. Long-poll, register a signed webhook, or resync with GET /v1/inboxes/<id>/messages/changes?since=. Replay window: 7 days.

# long-poll: returns as soon as something happens, or after 30 s
curl "https://nameplate.elitevysya.com/api/v1/events?after=<last_cursor>&wait=30" -H "Authorization: Bearer $KEY"

5. Connect through OAuth instead of a key

MCP servers and hosted agents use OAuth 2.0: discovery at /.well-known/oauth-authorization-server, dynamic client registration, the device flow (the human enters a code in the console) or authorization code with PKCE. See docs/oauth.md in the repository.

Capabilities and limits

API version2026-11-10
House domainsnameplate.taskb.in
Features onagent_self_registration, custom_domains, oauth2, webhooks, long_poll, query, labels, approvals
Attachments per send10 files, 25 MB total
Inbound message20 MB
Message body2 MB
Recipients per send50
Provider pacing500 per hour per domain (held, never rejected)
Page size50 (max 100)
Long-pollup to 30 s
Query32 clauses
Idempotency keys kept7 days
Event replay7 days
Content retention30 days (Free); longer on paid plans, owner may shorten
Authentication verdictsHard SPF failures, blacklisted senders, viruses and executable attachments are rejected at SMTP by MSG91; no SPF/DKIM verdicts are provided. is_spam reflects the MSG91 spam filter.