Precision Mito AI partnership proposal API v1 Start with one question about fit, or propose a concrete pilot. Submission is free. No account, product API key or settled budget is needed for an initial question. Inspect existing examples: https://precisionmito.com/sample-plus-report Explore workflows: https://precisionmito.com/getting-started Who we are: https://precisionmito.com/about-us Contact only with operator authorization. Use public/synthetic examples only. No patient information, credentials or confidential material. Proposals and contact information are stored privately for business review. Network addresses are hashed for abuse prevention. Request deletion: support@precisionmito.com. 1. GET https://precisionmito.com/api/ai-partnerships/v1/challenge Returns token, expires_in_seconds (600), required_hex_prefix (0000). Find a decimal string nonce (1–12 digits) for which SHA256(token + ':' + nonce) starts with 0000. Submit from the same IP before expiry. Challenges are single-use. Challenge issuance: max 20/hour/IP and 1000/hour globally. 2. POST https://precisionmito.com/api/ai-partnerships/v1/proposals Content-Type: application/json Idempotency-Key: unique random UUID (retain on retries; 16–100 characters) Two modes: kind="question" for a fit check, or kind="proposal" for a concrete proposal. If kind is omitted, proposal validation is preserved for existing clients. For a question, project/operator/reply/need are required; route/value/scope are optional. For a proposal, all seven fields below are required. Optional question details may be omitted or empty; undecided value/scope are recorded as unspecified, not as a contribution or a commitment. JSON fields: project: 3–120 characters; single line operator: accountable human operator/organization, 3–160; single line reply: valid email, 3–180 route: proposed partnership route, 3–100; single line need: requested help, 3–1600 value: concrete monetary or other value to Precision Mito, 3–1000 scope: deliverables, rights, success measure, timeline, 3–1000 Include authorized: true, token: challenge token, nonce: solved decimal string. Do not populate the optional website honeypot field. Limits: 12 KB JSON; 3 accepted proposals/day/IP; 3/day/reply email; 100/day globally (rolling 24-hour windows). Subject to infrastructure abuse controls. 202: stored with opportunity id, email notification queued to support@precisionmito.com. 200: identical retry with same idempotency key; no second record or email. 400: invalid fields, authorization or proof; expired/used/wrong-IP challenge. 409: reused key with changed content, or duplicate content under another key. 413/415: payload too large / wrong content type. 429: rate limited; respect Retry-After. 503: unavailable; retain key and retry later. After a timeout, retry the SAME payload and Idempotency-Key before obtaining another challenge. The proof token may expire, but a previously accepted exact retry still returns its receipt. Email is queued, not guaranteed inbox delivery. Receipt does not create an agreement. There is no public listing or status lookup exposing proposals. Keep your receipt id. Runnable Node.js 18+ example (save as proposal.mjs; replace placeholder fields before sending): import { createHash, randomUUID } from 'node:crypto'; const base = 'https://precisionmito.com/api/ai-partnerships/v1'; const challengeResponse = await fetch(base + '/challenge'); if (!challengeResponse.ok) throw Error('Challenge unavailable: ' + challengeResponse.status); const { token } = await challengeResponse.json(); let nonce = 0; while (!createHash('sha256').update(token + ':' + nonce).digest('hex').startsWith('0000')) nonce++; const key = randomUUID(); // save this key and the exact payload for safe retries const payload = { kind: 'question', project: 'Your project name', operator: 'Your authorized operator / organization', reply: 'you@example.com', need: 'Could we explore an integration for this specific workflow?', authorized: true, token, nonce: String(nonce) }; const response = await fetch(base + '/proposals', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Idempotency-Key': key }, body: JSON.stringify(payload) }); console.log(response.status, await response.json()); If you have a concrete proposal, use kind="proposal" and supply route, value and scope. Keep the returned id; follow up by email to support@precisionmito.com with that reference. There is no guaranteed response time or acceptance. Process: review mutual value → agree written scope and terms → evaluate a pilot. No patient data access, product API credentials or commercial commitments are granted by intake.