{"openapi":"3.1.0","info":{"title":"Deploid Enrich","version":"0.2.0","contact":{"name":"Deploid.now","email":"hello@deploid.now"},"termsOfService":"https://enrich.deploid.now/policies","description":"Work email enrichment for AI agents. Limited pilot for occasional CRM completion and fallback lookups, not bulk prospecting. Authorize one x402 payment, receive an asynchronous job, and poll with its capability token. Only a DELIVERABLE work email is charged. Personal emails and phones are excluded."},"externalDocs":{"url":"https://enrich.deploid.now/integrate","description":"Integration, safe retries, result states and downloadable client"},"tags":[{"name":"Work email","description":"One known professional per lookup; no bulk people search."}],"servers":[{"url":"https://enrich.deploid.now"}],"paths":{"/v1/work-email":{"post":{"operationId":"findWorkEmail","summary":"Find one verified work email","tags":["Work email"],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.15"}},"description":"Send an initial request to obtain PAYMENT-REQUIRED, then retry with PAYMENT-SIGNATURE and a random Idempotency-Key. A 202 starts a job but is not a settlement receipt. Preserve the exact signature, request body and idempotency key for retries. Authorizations expire in 15 minutes. Async, with no delivery-time guarantee. Only DELIVERABLE work emails initiate settlement; no match and rejected quality are not charged.","parameters":[{"in":"header","name":"Idempotency-Key","required":false,"description":"Required on paid retries; 16-128 characters. Reuse only for this exact lookup.","schema":{"type":"string","minLength":16,"maxLength":128}},{"in":"header","name":"PAYMENT-SIGNATURE","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"first_name":{"type":"string","minLength":1,"maxLength":100,"description":"Professional first name; required with last_name and domain/company_name when linkedin_url is absent."},"last_name":{"type":"string","minLength":1,"maxLength":100,"description":"Professional last name."},"domain":{"type":"string","maxLength":253,"description":"Company hostname only, e.g. example.com; no scheme or path."},"company_name":{"type":"string","minLength":1,"maxLength":100,"description":"Company name; domain is preferred when known."},"linkedin_url":{"type":"string","format":"uri","maxLength":300,"description":"HTTPS linkedin.com/in/ professional profile URL. Alternative to the name-and-company fields."}},"anyOf":[{"required":["linkedin_url"]},{"required":["first_name","last_name","domain"]},{"required":["first_name","last_name","company_name"]}]},"examples":{"professionalProfile":{"summary":"Illustrative professional profile (replace with authorized input)","value":{"linkedin_url":"https://www.linkedin.com/in/example-person/"}},"nameAndCompany":{"summary":"Fictional input, not a successful-lookup fixture","value":{"first_name":"Example","last_name":"Person","domain":"example.com"}}}}}},"responses":{"200":{"description":"Idempotent replay of a completed job; not an additional charge.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmittedJob"}}}},"202":{"description":"Pending job. Save job_id and access_token; poll status_url with Bearer access_token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmittedJob"}}}},"400":{"description":"Invalid input or payment terms; no supplier call."},"402":{"description":"Payment terms in the PAYMENT-REQUIRED header and body."},"403":{"description":"Wallet outside the private pilot allowlist."},"409":{"description":"Idempotency key or payment nonce already used with different input."},"429":{"description":"Rate or supplier budget limit reached."},"503":{"description":"Pilot is disabled or payment verification unavailable."}}}},"/v1/jobs/{job_id}":{"get":{"operationId":"getWorkEmailJob","summary":"Read a job; polling is free","security":[{"jobCapability":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Completed with a paid email and PAYMENT-RESPONSE, or a terminal no-charge result.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Job"}}}},"202":{"description":"Pending. Respect Retry-After. payment_pending has charged:null: never pay again while its outcome is unresolved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Job"}}}},"401":{"description":"Missing or invalid job capability."},"404":{"description":"Unknown job."},"410":{"description":"72-hour result retention expired."}}}},"/pricing":{"get":{"operationId":"pricing","responses":{"200":{"description":"Current unit price and quality policy."}}}},"/health":{"get":{"operationId":"health","responses":{"200":{"description":"Service status; not a guarantee of supplier or payment availability."}}}},"/ready":{"get":{"operationId":"readiness","summary":"Free advisory readiness check; no supplier lookup or payment","responses":{"200":{"description":"Recent maintenance, supplier balance snapshot and shared capacity checks pass. Not a reservation or a paid end-to-end test; per-wallet limits still apply."},"429":{"description":"Health probe rate limit reached; respect Retry-After."},"503":{"description":"One or more readiness checks need attention, or shared capacity is limited. Retry later."}}}},"/policies":{"get":{"operationId":"policies","summary":"Business identity, payment, privacy and acceptable-use notices","responses":{"200":{"description":"Public operating notices and contact; no payment required."}}}}},"components":{"securitySchemes":{"jobCapability":{"type":"http","scheme":"bearer","description":"Unique per-job access_token, not a wallet private key."}},"schemas":{"SubmittedJob":{"allOf":[{"$ref":"#/components/schemas/Job"},{"type":"object","required":["access_token"],"properties":{"access_token":{"type":"string","description":"Bearer capability; securely retain, never log or put in a URL."}}}]},"Job":{"type":"object","required":["job_id","status","status_url","expires_at"],"properties":{"job_id":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["pending","payment_pending","completed","no_match","supplier_failed","payment_failed","expired"]},"status_url":{"type":"string","description":"Relative /v1/jobs/{job_id} URL on the same API origin."},"expires_at":{"type":"string","format":"date-time"},"charged":{"type":["boolean","null"],"description":"null means unresolved payment, not free. May be omitted on retention expiry."},"amount_usdc":{"type":"number"},"retry_after_seconds":{"type":"integer"},"error":{"type":"string"},"message":{"type":"string"},"result":{"anyOf":[{"$ref":"#/components/schemas/WorkEmailResult"},{"type":"null"}]},"payment":{"type":"object","properties":{"success":{"const":true},"transaction":{"type":"string"},"network":{"type":"string"},"payer":{"type":"string"},"amount":{"type":"string","description":"Micro-USDC units"}}}}},"WorkEmailResult":{"type":"object","required":["work_email","verification_status","source","checked_at"],"properties":{"work_email":{"type":"string","format":"email"},"verification_status":{"const":"DELIVERABLE"},"source":{"const":"FullEnrich"},"checked_at":{"type":"string","format":"date-time"},"person":{"type":"object","properties":{"full_name":{"type":"string"},"job_title":{"type":"string"}}},"company":{"type":"object","properties":{"name":{"type":"string"},"domain":{"type":"string"}}}}}}}}