Skip to content

sidratnam.com / agents

Agent Contact API · sidratnam.com

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.

API operational No auth required 10 req / min · per IP

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

POST https://sidratnam.com/api/contact/inbound
Content-Type application/json
Authentication None required
Rate limit 10 requests per minute per IP
Max body 64 KB
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.

active_vision

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.

future_advisory

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.

press

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.

other

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
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"
    }
  }'
JavaScript (fetch)
// 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.

Note

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.

202
Accepted. The submission is in the review queue. Response body includes status: "accepted" and a ref_id UUID — retain it for reference.
400
Validation failed or spam detected. Response body includes error (string) and optionally fields (object with field-level messages). Fix and resubmit.
429
Rate limit exceeded. Back off for 60 seconds before retrying.
500
Server error. Retry after a short delay.

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.