{"openapi":"3.2.0","info":{"title":"Company Enrichment API","description":"Get stored company profiles by domain or corporate email, including firmographics, contacts, technologies and funding when available. Missing profiles are free.","version":"1.0.0"},"servers":[{"url":"https://enrichment.jojapi.net"}],"security":[{"ApiKeyAuth":[]}],"x-agent-commerce":{"catalog_url":"https://enrichment.jojapi.net/_jojapi/agent/plans","discovery_url":"https://enrichment.jojapi.net/.well-known/x402","directory_url":"https://agents.jojapi.net/apis/company-enrichment","docs":"https://docs.jojapi.com/consumers/agents"},"paths":{"/enrich":{"post":{"operationId":"post_enrich","summary":"Enrich Company","description":"Retrieve a saved company profile by domain or corporate email. Send exactly one JSON field: domain or email. Email input uses its domain to identify the company; it does not identify a person or verify mailbox deliverability. The response is synchronous and does not start an enrichment job. ENRICHED costs $0.02. NOT_FOUND is free. FREE_EMAIL_PROVIDER, DISPOSABLE, invalid_domain and invalid_email are billable. Repeated billable requests are charged again. Authentication, structural validation, rate-limit and server errors are free. Limit: 30 requests per minute per buyer, including repeats and no-match results. Additional input fields are not supported. Response examples are illustrative.","responses":{"200":{"description":"ENRICHED: a prepared company profile was found. Billable at $0.02 per request, including repeats. Example data is fictional.","content":{"application/json":{"schema":{"type":"object","required":["success","message","result_type","data"],"properties":{"success":{"type":"boolean","const":true},"message":{"type":"string"},"result_type":{"type":"string","const":"ENRICHED"},"data":{"type":"object","required":["company_name","legal_name","domain","website_url","logo_url","description","founded_year","online_since","language","industry","sub_industry","sector","tags","duns_number","lei_number","employee_count","staff_range","revenue_range","annual_revenue","hq_city","hq_region","hq_country","addresses","social_links","contacts","tech_stacks","fundings","ipo_status","stock_symbol","competitors"],"properties":{"company_name":{"type":"string"},"legal_name":{"type":["string","null"]},"domain":{"type":"string"},"website_url":{"type":["string","null"]},"logo_url":{"type":["string","null"]},"description":{"type":["string","null"]},"founded_year":{"type":["integer","null"]},"online_since":{"type":["string","null"],"format":"date"},"language":{"type":["string","null"]},"industry":{"type":["string","null"]},"sub_industry":{"type":["string","null"]},"sector":{"type":["string","null"]},"tags":{"type":"array","items":{"type":"string"}},"duns_number":{"type":["string","null"]},"lei_number":{"type":["string","null"]},"employee_count":{"type":["integer","null"]},"staff_range":{"type":["string","null"]},"revenue_range":{"type":["string","null"]},"annual_revenue":{"type":["number","null"]},"hq_city":{"type":["string","null"]},"hq_region":{"type":["string","null"]},"hq_country":{"type":["string","null"]},"addresses":{"type":"array","items":{"type":"object","required":["address_type","street","street_number","city","region","state","state_code","county","postal_code","postalcode_suffix","postal_town","country","country_code","township","neighborhood","district","premise","subpremise","sublocality","latitude","longitude","is_primary"],"properties":{"address_type":{"type":"string"},"street":{"type":["string","null"]},"street_number":{"type":["string","null"]},"city":{"type":["string","null"]},"region":{"type":["string","null"]},"state":{"type":["string","null"]},"state_code":{"type":["string","null"]},"county":{"type":["string","null"]},"postal_code":{"type":["string","null"]},"postalcode_suffix":{"type":["string","null"]},"postal_town":{"type":["string","null"]},"country":{"type":["string","null"]},"country_code":{"type":["string","null"]},"township":{"type":["string","null"]},"neighborhood":{"type":["string","null"]},"district":{"type":["string","null"]},"premise":{"type":["string","null"]},"subpremise":{"type":["string","null"]},"sublocality":{"type":["string","null"]},"latitude":{"type":["string","null"]},"longitude":{"type":["string","null"]},"is_primary":{"type":"boolean"}}}},"social_links":{"type":"array","items":{"type":"object","required":["url","platform"],"properties":{"url":{"type":"string"},"platform":{"type":"string"}}}},"contacts":{"type":"object","required":["emails","phones"],"properties":{"emails":{"type":"array","items":{"type":"object","required":["value","label"],"properties":{"value":{"type":"string"},"label":{"type":["string","null"]}}}},"phones":{"type":"array","items":{"type":"object","required":["value","label"],"properties":{"value":{"type":"string"},"label":{"type":["string","null"]}}}}}},"tech_stacks":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}},"fundings":{"type":"array","items":{"type":"object","required":["round_type","amount_usd","investors","date_raised","description"],"properties":{"round_type":{"type":["string","null"]},"amount_usd":{"type":["integer","null"]},"investors":{},"date_raised":{"type":["string","null"],"format":"date"},"description":{"type":["string","null"]}}}},"ipo_status":{"type":["string","null"]},"stock_symbol":{"type":["string","null"]},"competitors":{"type":"array","items":{"type":"object","required":["company_name","domain","note"],"properties":{"company_name":{"type":["string","null"]},"domain":{"type":["string","null"]},"note":{"type":["string","null"]}}}}}}}},"examples":{"enriched":{"summary":"Prepared company profile found","description":"Fictional example. A successful prepared profile costs $0.02, including repeated requests. Fields without stored values may be null; collections may be empty.","value":{"success":true,"message":"Company profile found.","result_type":"ENRICHED","data":{"company_name":"Example Labs","legal_name":"Example Labs, Inc.","domain":"example.com","website_url":"https://example.com","logo_url":null,"description":"Fictional company profile used only to illustrate this response.","founded_year":2020,"online_since":"2020-01-15","language":"en","industry":"Software","sub_industry":"Business software","sector":"Technology","tags":["Fictional example","B2B"],"duns_number":null,"lei_number":null,"employee_count":42,"staff_range":"11-50","revenue_range":"$1M - $5M","annual_revenue":1250000.5,"hq_city":"Example City","hq_region":"Example Region","hq_country":"Example Country","addresses":[],"social_links":[],"contacts":{"emails":[{"value":"contact@example.com","label":"general"}],"phones":[]},"tech_stacks":{"analytics":["Fictional Analytics"]},"fundings":[],"ipo_status":"private","stock_symbol":null,"competitors":[]}}}}}}},"400":{"description":"NOT_FOUND: no prepared profile, free. FREE_EMAIL_PROVIDER: free email provider, billable $0.02. DISPOSABLE: disposable email provider, billable $0.02. All variants return success: false and data: null. No enrichment job is started.","content":{"application/json":{"schema":{"type":"object","required":["success","message","result_type","data"],"properties":{"success":{"type":"boolean","const":false},"message":{"type":"string"},"result_type":{"type":"string","enum":["NOT_FOUND","FREE_EMAIL_PROVIDER","DISPOSABLE"]},"data":{"type":"null"}}},"examples":{"not_found":{"summary":"No prepared company profile","description":"This result is free.","value":{"success":false,"message":"No prepared company profile for this domain.","result_type":"NOT_FOUND","data":null}},"free_email_provider":{"summary":"Free email provider","description":"Billable at $0.02 because the supplied domain is a free email provider.","value":{"success":false,"message":"Domain is a free email provider.","result_type":"FREE_EMAIL_PROVIDER","data":null}},"disposable":{"summary":"Disposable email provider","description":"Billable at $0.02 because the supplied domain is a disposable email provider.","value":{"success":false,"message":"Domain is a disposable email provider.","result_type":"DISPOSABLE","data":null}}}}}},"401":{"description":"Authentication failed. Not billed.","content":{"application/json":{"schema":{"type":"object","required":["success","message","error"],"properties":{"success":{"type":"boolean","const":false},"message":{"type":"string"},"error":{"type":"object","required":["reason"],"properties":{"reason":{"type":"string","enum":["authentication_failed"]}}}}},"examples":{"authentication_failed":{"summary":"Authentication failed","description":"Not billed.","value":{"success":false,"message":"Authentication failed.","error":{"reason":"authentication_failed"}}}}}}},"422":{"description":"invalid_domain or invalid_email: the supplied sole field is invalid, billable $0.02. validation_failed: missing or both fields, extra properties, or malformed JSON; not billed.","content":{"application/json":{"schema":{"type":"object","required":["success","message","error"],"properties":{"success":{"type":"boolean","const":false},"message":{"type":"string"},"error":{"type":"object","required":["reason"],"properties":{"reason":{"type":"string","enum":["invalid_domain","invalid_email","validation_failed"]}}}}},"examples":{"invalid_domain":{"summary":"Invalid domain","description":"Billable at $0.02.","value":{"success":false,"message":"The request is invalid.","error":{"reason":"invalid_domain"}}},"invalid_email":{"summary":"Invalid email","description":"Billable at $0.02.","value":{"success":false,"message":"The request is invalid.","error":{"reason":"invalid_email"}}},"validation_failed":{"summary":"Invalid request structure","description":"Not billed.","value":{"success":false,"message":"The request is invalid.","error":{"reason":"validation_failed"}}}}}}},"429":{"description":"Request limit exceeded. Not billed. Reasons: enrichment_rate_limit_exceeded or origin_capacity_exceeded. Respect Retry-After (seconds).","content":{"application/json":{"schema":{"type":"object","required":["success","message","error"],"properties":{"success":{"type":"boolean","const":false},"message":{"type":"string"},"error":{"type":"object","required":["reason","retry_after"],"properties":{"reason":{"type":"string","enum":["enrichment_rate_limit_exceeded","origin_capacity_exceeded"]},"retry_after":{"type":"integer","minimum":1,"description":"Seconds to wait; also returned in the Retry-After response header."}}}}},"examples":{"rate_limited":{"summary":"Wait before retrying","description":"Illustrative response. Retry-After: 30 is also returned as a response header.","value":{"success":false,"message":"Request limit exceeded.","error":{"reason":"enrichment_rate_limit_exceeded","retry_after":30}}}}}}},"500":{"description":"The request could not be completed. reason: request_failed. Not billed.","content":{"application/json":{"schema":{"type":"object","required":["success","message","error"],"properties":{"success":{"type":"boolean","const":false},"message":{"type":"string"},"error":{"type":"object","required":["reason"],"properties":{"reason":{"type":"string","enum":["request_failed"]}}}}},"examples":{"request_failed":{"summary":"Request failed","description":"Server failure; not billed.","value":{"success":false,"message":"The request could not be completed.","error":{"reason":"request_failed"}}}}}}},"503":{"description":"Temporarily unavailable. Not billed. buyer_identity_unavailable: buyer identity could not be established. admission_control_unavailable: request admission control could not be checked.","content":{"application/json":{"schema":{"type":"object","required":["success","message","error"],"properties":{"success":{"type":"boolean","const":false},"message":{"type":"string"},"error":{"type":"object","required":["reason"],"properties":{"reason":{"type":"string","enum":["buyer_identity_unavailable","admission_control_unavailable"]}}}}},"examples":{"admission_control_unavailable":{"summary":"Temporarily unavailable","description":"Not billed.","value":{"success":false,"message":"Admission control is unavailable.","error":{"reason":"admission_control_unavailable"}}}}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","description":"Send exactly one of domain or email. No additional properties are accepted.","properties":{"domain":{"type":"string","minLength":1,"description":"Bare company domain, without a URL scheme, path or port. Use this field OR email.","examples":["example.com"]},"email":{"type":"string","format":"email","description":"Corporate email address. Its domain identifies the company; no mailbox verification is performed. Use this field OR domain.","examples":["analyst@example.com"]}},"oneOf":[{"required":["domain"]},{"required":["email"]}],"additionalProperties":false},"example":{"domain":"example.com"}}}}}}},"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-JoJAPI-Key","description":"Your JoJ API key."}}}}