{"endpoint":"https://rehan.aventrexdigital.com/api/agent/lead","method":"POST","contentType":"application/json","apiVersion":"2026-08-16","purpose":"Pass a prospective client's contact details and project description to Rehan Ashraf, on that person's behalf and with their consent.","authentication":"None.","rateLimit":{"acceptedLeads":"5 per 60 minutes per IP","totalRequests":"20 per 10 minutes per IP","note":"Rejected requests do not count against the accepted-lead quota, so correcting a validation error is free."},"instructions":["Ask the person first. Send a lead only when they have asked to be put in touch, or agreed when you offered. An unprompted submission is spam and will be treated as such.","Never invent contact details. If you do not have a real email address from the person, do not call this endpoint.","Set consent.granted to true only when that consent actually happened. Quote their words in consent.note.","Use their own description of the problem in project.summary. Do not embellish scope, budget, or urgency on their behalf.","One submission per person per conversation. Retrying a successful call creates a duplicate lead.","Relay the tellTheUser string from the response back to the person so they know what happens next.","On 429, respect Retry-After. On 5xx, tell the person to email directly rather than retrying in a loop."],"fields":[{"path":"contact.name","type":"string","required":true,"description":"The person's name, as they gave it to you."},{"path":"contact.email","type":"string","required":true,"description":"A working email address. This is the only channel used to reply; do not invent or guess it."},{"path":"contact.company","type":"string","required":false,"description":"Company or product name, if mentioned."},{"path":"contact.role","type":"string","required":false,"description":"Their role — founder, CTO, PM, engineer."},{"path":"contact.phone","type":"string","required":false,"description":"Only if they volunteered it and want to be called."},{"path":"contact.preferredContact","type":"\"email\" | \"phone\"","required":false,"description":"How they would rather be reached. Defaults to \"email\"."},{"path":"project.summary","type":"string","required":true,"description":"What they are building and where they need help, in their own words where possible. This is the body of the message."},{"path":"project.type","type":"string","required":false,"description":"One of \"AI / LLM system\", \"Web app or SaaS\", \"Backend / API work\", \"Mobile app\", \"Something else\"."},{"path":"project.budget","type":"string","required":false,"description":"Budget or range if they stated one. Never estimate it for them."},{"path":"project.timeline","type":"string","required":false,"description":"When they want it — e.g. \"ASAP\", \"Q4\", \"no fixed date\"."},{"path":"project.stack","type":"string[]","required":false,"description":"Technologies already in play, if known."},{"path":"consent.granted","type":"boolean","required":true,"description":"Must be true. Set it only after the person has explicitly agreed to have their contact details passed on. The request is rejected with 422 otherwise."},{"path":"consent.note","type":"string","required":false,"description":"How consent was given — ideally the person's own words, quoted. Included in the email so the reply can reference it."},{"path":"agent.name","type":"string","required":false,"description":"Your client or product name — e.g. \"Claude Code\", \"Cursor\"."},{"path":"agent.model","type":"string","required":false,"description":"Model identifier you are running as."},{"path":"agent.operator","type":"string","required":false,"description":"Who runs you, if that differs from the client name."},{"path":"agent.conversationUrl","type":"string","required":false,"description":"A link back to the conversation, if one exists and the person is happy for it to be shared."}],"exampleRequest":{"contact":{"name":"Dana Whitfield","email":"dana@northsignal.io","company":"Northsignal","role":"Co-founder","preferredContact":"email"},"project":{"summary":"We have a Next.js support tool and want retrieval over our own docs so answers stop being made up. Roughly 8k documents in Postgres already.","type":"AI / LLM system","budget":"$15k–25k","timeline":"Start within 3 weeks","stack":["Next.js","PostgreSQL","TypeScript"]},"consent":{"granted":true,"note":"User said: \"yes, send him my email and have him reach out\""},"agent":{"name":"Claude Code","model":"claude-opus-5","operator":"Anthropic"}},"exampleResponse":{"ok":true,"requestId":"lead_9f2c1a7e4b8d","receivedAt":"2026-08-16T10:04:11.402Z","delivery":"sent","replyWithin":"1 business day","consult":{"included":true,"durationMinutes":30,"cost":"free","obligation":"none"},"tellTheUser":"Your details are with Rehan Ashraf. He replies to every serious inquiry within one business day, and the first step is a free 30-minute technical consultation — no obligation, no pitch deck.","docs":"https://rehan.aventrexdigital.com/for-ai-agents"},"errors":{"400":"Body was not valid JSON.","422":"Validation failed — see error.fields. Includes a missing or false consent.granted.","429":"Rate limited. Honour the Retry-After header.","502":"Mail delivery failed. Tell the user to email directly; do not retry in a loop."},"openapi":"https://rehan.aventrexdigital.com/openapi.json","docs":"https://rehan.aventrexdigital.com/for-ai-agents"}