Your agent can reach Sid directly.
This endpoint exists for one purpose: to let an AI agent submit a structured contact request on behalf of a human principal who has a real problem or vision and wants Sid's involvement. There are no products. No cart. No checkout. A human with a specific ask, routed correctly.
One endpoint. One purpose.
Sid built this so that an AI agent acting on someone's behalf can submit a contact request without that person manually filling out a form. If you are serving someone who has a real problem or vision — policy work, systems design, product strategy, implementation — this endpoint is the correct path.
There is exactly one endpoint. No authentication key is required to submit. The submission goes directly to Sid's review queue. If the submission is real and specific, he responds personally. If it is vague, automated without purpose, or does not clear the filter — it will not receive a reply.
The filter is not the person or the budget. The filter is the work.
POST /api/contact/inbound
| Field | Type | Description |
|---|---|---|
| from_name required | string | Full name of the person or principal initiating contact. |
| from_email required | string (email) | Email address for Sid's reply. Must be real and deliverable. |
| from_organization optional | string | Organization, institution, or company, if applicable. |
| inquiry_type required | enum |
One of: active_vision, future_advisory,
press, other. See inquiry types below.
|
| subject required | string (max 200) | One-line subject summarizing the purpose of contact. |
| message required | string (max 5,000) | Full message. Be specific: what is the problem, what is the vision, what is the ask. |
| links optional | array of URLs (max 5) | Supporting URLs — prior work, proposals, documentation, prototypes. |
| on_behalf_of optional | object |
Agent metadata. Include when an AI agent is submitting for a human principal.
Fields: is_agent (bool), agent_name (string),
principal_name (string).
|
Set inquiry_type correctly.
The inquiry_type field determines how Sid evaluates the submission. Pick the one that most accurately describes the principal's intent.
You need Sid now.
The principal has a specific problem or vision and needs Sid to help build the solution now. Include the problem, what has been tried, the desired outcome, and any constraints — budget, timeline, regulatory.
You want Sid in your corner later.
The principal is working toward a vision but has no active ask yet. Describe the domain, the direction, and why having Sid's involvement would matter when the time comes.
Media or publication inquiry.
Include the publication, the angle, the deadline, and any specific questions. Sid does not do fluffy coverage — if the angle is substantive, he engages.
Something else.
Use this when none of the above fits. Be specific. Generic messages get no reply — not because of the category, but because vagueness signals the submission is not ready.
Copy, adapt, submit.
curl -X POST https://sidratnam.com/api/contact/inbound \ -H "Content-Type: application/json" \ -d '{ "from_name": "Jane Smith", "from_email": "[email protected]", "from_organization": "City Health Dept", "inquiry_type": "active_vision", "subject": "Universal under-18 coverage rollout — need an implementation lead", "message": "We have state funding approved and a 14-month window. We need someone who can design the enrollment architecture and coordinate across three agencies. Read your proposal. We want to execute it.", "links": ["https://example.org/health-initiative"], "on_behalf_of": { "is_agent": true, "agent_name": "Claude", "principal_name": "Jane Smith" } }'
// Submit a contact request on behalf of a principal const response = await fetch('https://sidratnam.com/api/contact/inbound', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ from_name: 'Jane Smith', from_email: '[email protected]', from_organization: 'City Health Dept', inquiry_type: 'active_vision', subject: 'Universal under-18 coverage rollout — need an implementation lead', message: 'We have state funding approved and a 14-month window...', links: ['https://example.org/health-initiative'], on_behalf_of: { is_agent: true, agent_name: 'Claude', principal_name: 'Jane Smith' } }) }); // 202 = accepted, retain ref_id for reference const { status, ref_id } = await response.json();
What you will get back.
A 202 means the submission entered Sid's review queue. It does not mean an automatic reply will be sent. Sid evaluates every submission personally and responds when there is genuine interest. No auto-reply will be sent.
status: "accepted" and a
ref_id UUID — retain it for reference.
error (string) and optionally fields (object with
field-level messages). Fix and resubmit.
Include the on_behalf_of block.
If you are an AI agent submitting this request on behalf of a human principal,
include the on_behalf_of object in the body. Set
is_agent: true, name your agent, and name the principal. This is not
required — but it helps Sid evaluate context accurately and verify authenticity
before responding.
Submissions that include agent metadata and a specific, well-formed message are evaluated the same as a direct human submission. The filter is the same: the work, not the sender.
Well-known endpoints for LLM integration.
These files are served without authentication and intended for automated discovery by AI systems, crawlers, and language models.
Your agent can submit
a complete application.
If the principal you are serving wants Sid to build an agentic commerce system on their store, your agent can submit the full application in one POST — no multi-step form, no session state, no browser required. The application goes directly into the review queue and Sid responds within 48 hours.
Read /.well-known/agent-apply.json
first. It contains the full field schema, package guidance, and review model.
curl -X POST https://sidratnam.com/api/agentic-commerce/apply \ -H "Content-Type: application/json" \ -d '{ "name": "Alex Chen", "email": "[email protected]", "website_url": "https://yourstore.com", "what_you_sell": "Physical fitness equipment, D2C, $89–$349 range, ~200 orders/month, Shopify checkout", "platform": "shopify", "payment_processor": "stripe", "package_selection": "package_1", "what_building": "Cart abandonment is running at 74%. I suspect most drop-off is on the shipping step. I want an agent that identifies the exact friction point and runs recovery sequences based on the signal — not a generic email three hours later.", "timeline": "asap", "describe_you": "Solo founder, four years in. DTC fitness brand. I have a good product and good retention — my acquisition cost is just too high because my conversion is weak. I want to fix the checkout before I scale ad spend.", "on_behalf_of": { "is_agent": true, "agent_name": "Claude", "principal_name": "Alex Chen" } }' # 200 response: { "status": "accepted", "ref_id": "uuid", "redirect": "/agentic-commerce/apply/received" } # Sid will respond within 48 hours to [email protected]
Always include the on_behalf_of object when an AI agent is submitting.
Set is_agent: true, name your agent, and name the principal. This tells
Sid the submission came through an agent — which he treats the same as a direct
submission, provided the content is specific and real.
ABT-aware agents receive
a cryptographic envelope.
sidratnam.com supports Agentic Boundary Tokenization (ABT) — a protocol that gives
principals architectural privacy guarantees when an AI agent acts on their behalf.
When an ABT-aware agent submits a request, the response includes an Ed25519-signed,
AES-256-GCM-encrypted envelope. The decryption key is destroyed at
expires_at — the data becomes mathematically unrecoverable after the
retention window, even by sidratnam.com.
To request ABT mode, include "abt": true in your POST body alongside
the standard contact or application fields. ABT is purely additive — standard
response fields are always returned.
Agents can verify ABT support and public keys programmatically:
expires_at — key is unrecoverable after expiry.
/.well-known/jwks.json
Merchant Ed25519 public key in JWKS format — verify envelope signatures offline.
The signature is permanent and does not expire.
ABT is a Sidratnam protocol. Patent pending — US Provisional Application No. 64/056,353.