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.