TidyTools

Company enrichment + AI classification

POST https://tools.yukai.uk/api/v1/company/enrich/ai

Enrich a company and classify it with AI. The same profile as /api/v1/company/enrich, plus ai: industry (one of 31 labels), business model (B2B, B2C, B2B2C, nonprofit, government), a one-sentence summary and the company name, from about 1,500 tokens of the home and about pages (output capped at 400 tokens). industry then holds the AI label (method: ai). Parked, placeholder and unreachable sites are refused before the model runs. aiGenerated and header x-ai-generated say whether the AI part is in the answer. Pages read: the home page plus about, contact and careers pages (maxPages, default 4), decoded with the site's real charset; a real browser only when the site blocks bots or needs JavaScript. DNS, RDAP and one public ATS job feed are read in parallel. Every fact carries the page it came from (evidence). Results are cached for 24 hours.

Cost

Credits: 72 ($0.0072) per successful call. Failed calls are free. Source price: ai-page-classifier/page-classified-deep.

Input

Send a JSON body (POST) or the same fields as a query string (GET).

No field is required.

FieldTypeDefaultDescription
domainstringCompany domain or website URL (stripe.com, https://www.acme.de/en). An e-mail address works too (its domain is used). Aliases: url, website. Required unless name is sent. Private and local addresses are refused.
namestringCompany name, used only when no domain is sent: candidate domains are built from the name (+ country), resolved over DNS, and a site counts only when its own name (schema.org, og:site_name or title) is this name. Otherwise 422 company_not_found: send the domain.
countrystringWith name: 2-letter ISO country code; its domain endings (e.g. .de, .co.uk, .co.jp) are tried before .com.
maxPagesinteger4Pages of the site to read, home page included: about, contact and careers pages first, then imprint, team and locations.
renderstring"auto"auto (default): plain HTTP, and a real Chrome browser for the home page only when the site blocks plain requests or needs JavaScript. never: HTTP only.
includeJobsbooleantrueLook for the company's ATS job board and count open jobs (companySize).
includeDnsbooleantrueReturn the DNS findings (dns: MX provider, SPF includes, verification records, DNS host).
includeRdapbooleantrueLook up the domain's registration (domainRegistration: creation date, age, registrar).
includeEvidencebooleantrueReturn evidence (source and page URL per field) and foundedYearText.

Examples

Replace tt_live_XXXX with your key from the pricing page.

curl

curl -i -X POST "https://tools.yukai.uk/api/v1/company/enrich/ai" \
  -H "Authorization: Bearer tt_live_XXXX" \
  -H "Content-Type: application/json" \
  -d '{"domain":"stripe.com"}'

JavaScript (fetch)

const res = await fetch("https://tools.yukai.uk/api/v1/company/enrich/ai", {
  method: "POST",
  headers: { "Authorization": "Bearer tt_live_XXXX", "Content-Type": "application/json" },
  body: JSON.stringify({"domain":"stripe.com"}),
});
console.log(res.status, res.headers.get("x-credits-charged"), res.headers.get("x-credits-balance"));
console.log(await res.json());

Python (requests)

import requests

r = requests.post(
    "https://tools.yukai.uk/api/v1/company/enrich/ai",
    headers={"Authorization": "Bearer tt_live_XXXX"},
    json={"domain": "stripe.com"},
    timeout=120,
)
print(r.status_code, r.headers.get("x-credits-charged"), r.headers.get("x-credits-balance"))
print(r.json())

Response

JSON with "success": true and the result fields; on failure {"success": false, "error": {"code", "message", "retryable"}} and no credits are used. Every answer carries x-credits-charged (credits used) and x-credits-balance (balance after the call); check the balance any time with GET https://tools.yukai.uk/v1/billing/balance.

Full field list and response schema: OpenAPI spec company-enrichment (its servers entry is the marketplace gateway; call https://tools.yukai.uk with your key).

← All routes · Pricing