{"openapi":"3.1.0","info":{"title":"Attestry API","description":"Company and professional data in which every field carries its source, its status\n(verified, unverified, inferred or unavailable), when it was collected, and what its licence permits.\n\nAuthenticate with `Authorization: Bearer <api key>`. Errors always have the shape\n`{\"error\": {\"code\", \"message\", \"details\", \"request_id\"}}`.","version":"1.0.0"},"paths":{"/v1/companies/search":{"post":{"tags":["Companies"],"summary":"Search companies","description":"Search by name, domain, country, region, industry or headcount. Which filters work depends on\nthe enabled data sources (see GET /v1/sources); an unsupported filter is rejected, not ignored.","operationId":"companies_search_v1_companies_search_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanySearchIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Companies Search V1 Companies Search Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/companies/enrich":{"post":{"tags":["Companies"],"summary":"Enrich one company","description":"Look one company up by LEI, registration number + country, domain, or exact legal name, and\nmerge what every enabled source knows. Each field carries its own source and status.","operationId":"companies_enrich_v1_companies_enrich_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyEnrichIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/people/search":{"post":{"tags":["People"],"summary":"Search professionals","description":"Professionals by company, title, seniority or department, in one named country.\nAvailable on paid plans and only for countries enabled on this deployment.","operationId":"people_search_v1_people_search_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PeopleSearchIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response People Search V1 People Search Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/people/enrich":{"post":{"tags":["People"],"summary":"Enrich one professional record","operationId":"people_enrich_v1_people_enrich_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonEnrichIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/emails/verify":{"post":{"tags":["E-mail"],"summary":"Check a business e-mail address","description":"Syntax, the domain's live mail-server records, disposable and role-address detection.\nThe mailbox itself is not probed and is reported as unverified.","operationId":"emails_verify_v1_emails_verify_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailVerifyIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Emails Verify V1 Emails Verify Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/emails/lookup":{"post":{"tags":["E-mail"],"summary":"Find a work e-mail from a licensed source","description":"Returns an address only when a licensed source holds one. Addresses are never guessed.","operationId":"emails_lookup_v1_emails_lookup_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailLookupIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/batches":{"post":{"tags":["Batches"],"summary":"Start a batch","description":"Queue up to your plan's batch size of enrich or verify items. Poll GET /v1/batches/{id} or\nreceive a `batch.completed` webhook.","operationId":"batches_create_v1_batches_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchIn"}}},"required":true},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/batches/{batch_id}":{"get":{"tags":["Batches"],"summary":"Get a batch and its results","operationId":"batches_get_v1_batches__batch_id__get","parameters":[{"name":"batch_id","in":"path","required":true,"schema":{"type":"string","title":"Batch Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Batches Get V1 Batches  Batch Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/account":{"get":{"tags":["Account"],"summary":"Account, plan and capabilities","operationId":"account_v1_account_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Account V1 Account Get"}}}}}}},"/v1/usage":{"get":{"tags":["Account"],"summary":"Usage for a period","operationId":"usage_v1_usage_get","parameters":[{"name":"period","in":"query","required":false,"schema":{"type":"string","description":"today, week or month","default":"month","title":"Period"},"description":"today, week or month"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Usage V1 Usage Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/billing":{"get":{"tags":["Account"],"summary":"Plan, subscription status and credit prices","operationId":"billing_v1_billing_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Billing V1 Billing Get"}}}}}}},"/v1/sources":{"get":{"tags":["Transparency"],"summary":"Every data source, its licence and its limits","description":"Public. Lists each source Attestry can draw on, whether it is enabled here, what its licence\npermits and how long Attestry stores its data.","operationId":"sources_v1_sources_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Sources V1 Sources Get"}}}}}}},"/v1/plans":{"get":{"tags":["Transparency"],"summary":"Plans and limits","operationId":"plans_v1_plans_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Plans V1 Plans Get"}}}}}}},"/v1/webhooks":{"get":{"tags":["Webhooks"],"summary":"List webhook endpoints","operationId":"webhooks_list_v1_webhooks_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Webhooks List V1 Webhooks Get"}}}}}},"post":{"tags":["Webhooks"],"summary":"Add a webhook endpoint","description":"The signing secret is returned once. Verify `Attestry-Signature: t=<unix>,v1=<hex>` as\nHMAC-SHA256 of `<t>.<raw body>`.","operationId":"webhooks_create_v1_webhooks_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookIn"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Webhooks Create V1 Webhooks Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/webhooks/{endpoint_id}":{"delete":{"tags":["Webhooks"],"summary":"Remove a webhook endpoint","operationId":"webhooks_delete_v1_webhooks__endpoint_id__delete","parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","title":"Endpoint Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Webhooks Delete V1 Webhooks  Endpoint Id  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/privacy-requests":{"post":{"tags":["Transparency"],"summary":"File a data-subject request","description":"Public. Anyone can ask for access, erasure, correction, or to object / opt out. The request\ntakes effect once the address is confirmed through the e-mailed link.","operationId":"privacy_request_v1_privacy_requests_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrivacyRequestIn"}}},"required":true},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Privacy Request V1 Privacy Requests Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"BatchIn":{"properties":{"operation":{"type":"string","enum":["companies.enrich","people.enrich","emails.verify"],"title":"Operation"},"items":{"items":{"additionalProperties":true,"type":"object"},"type":"array","maxItems":1000,"minItems":1,"title":"Items"}},"additionalProperties":false,"type":"object","required":["operation","items"],"title":"BatchIn"},"CompanyEnrichIn":{"properties":{"lei":{"anyOf":[{"type":"string","maxLength":20,"minLength":20,"pattern":"^[A-Za-z0-9]{20}$"},{"type":"null"}],"title":"Lei"},"registration_number":{"anyOf":[{"type":"string","maxLength":40,"pattern":"^[A-Za-z0-9 ./-]+$"},{"type":"null"}],"title":"Registration Number"},"country":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}],"title":"Country"},"domain":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Domain"},"name":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Name"},"view":{"type":"string","enum":["full","flat"],"title":"View","default":"full"}},"additionalProperties":false,"type":"object","title":"CompanyEnrichIn"},"CompanySearchIn":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Name"},"domain":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Domain"},"country":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}],"title":"Country","description":"ISO 3166-1 alpha-2, e.g. US, GB, DE"},"region":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Region"},"industry":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Industry"},"employee_min":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Employee Min"},"employee_max":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Employee Max"},"revenue_min_usd":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Revenue Min Usd"},"revenue_max_usd":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Revenue Max Usd"},"limit":{"type":"integer","maximum":25.0,"minimum":1.0,"title":"Limit","default":10},"offset":{"type":"integer","maximum":10000.0,"minimum":0.0,"title":"Offset","default":0},"view":{"type":"string","enum":["full","flat"],"title":"View","default":"full"}},"additionalProperties":false,"type":"object","title":"CompanySearchIn"},"EmailLookupIn":{"properties":{"full_name":{"type":"string","maxLength":200,"title":"Full Name"},"company_domain":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Company Domain"},"company_name":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Company Name"},"country":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}],"title":"Country"}},"additionalProperties":false,"type":"object","required":["full_name"],"title":"EmailLookupIn"},"EmailVerifyIn":{"properties":{"email":{"type":"string","maxLength":320,"title":"Email"}},"additionalProperties":false,"type":"object","required":["email"],"title":"EmailVerifyIn"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"PeopleSearchIn":{"properties":{"company_name":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Company Name"},"company_domain":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Company Domain"},"job_title":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Job Title"},"seniority":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"Seniority"},"department":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}],"title":"Department"},"country":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}],"title":"Country"},"region":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Region"},"limit":{"type":"integer","maximum":25.0,"minimum":1.0,"title":"Limit","default":10},"offset":{"type":"integer","maximum":10000.0,"minimum":0.0,"title":"Offset","default":0},"view":{"type":"string","enum":["full","flat"],"title":"View","default":"full"}},"additionalProperties":false,"type":"object","title":"PeopleSearchIn"},"PersonEnrichIn":{"properties":{"full_name":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Full Name"},"company_domain":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Company Domain"},"company_name":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Company Name"},"work_email":{"anyOf":[{"type":"string","maxLength":254},{"type":"null"}],"title":"Work Email"},"profile_url":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}],"title":"Profile Url"},"country":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}],"title":"Country"},"view":{"type":"string","enum":["full","flat"],"title":"View","default":"full"}},"additionalProperties":false,"type":"object","title":"PersonEnrichIn"},"PrivacyRequestIn":{"properties":{"request_type":{"type":"string","enum":["access","erasure","objection","correction","opt_out_of_sale"],"title":"Request Type"},"email":{"type":"string","maxLength":320,"title":"Email"},"full_name":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Full Name"},"jurisdiction":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"title":"Jurisdiction"},"details":{"anyOf":[{"type":"string","maxLength":4000},{"type":"null"}],"title":"Details"}},"additionalProperties":false,"type":"object","required":["request_type","email"],"title":"PrivacyRequestIn"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"WebhookIn":{"properties":{"url":{"type":"string","maxLength":500,"title":"Url"}},"additionalProperties":false,"type":"object","required":["url"],"title":"WebhookIn"}}}}