# Crustdata Company Identify / Normalize

> Crustdata Company Identify / Normalize is a paid API for AI agents from crustdata.withzero.xyz, paid per call via MPP, $0.01/call, status unknown (last checked 2026-09-14).

Resolves and normalizes company identifiers (domains, names, LinkedIn URLs, or Crustdata IDs) into canonical Crustdata company records before enrichment or people search.

## Facts

- Endpoint: POST https://crustdata.withzero.xyz/api/v1/company/identify
- Price: $0.01/call
- Payment: MPP
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 3
- Provider: crustdata.withzero.xyz
- Website: https://crustdata.withzero.xyz
- Canonical page: https://www.zero.xyz/c/crustdata-withzero-xyz-crustdata-company-identify-normalize-cd05e122
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_9yu4Odkf-4KvRW_0cweOT

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability crustdata-withzero-xyz-crustdata-company-identify-normalize-cd05e122 -d '<json body>'
```

Example prompt: I need to identify and normalize the company record for 'openai.com' using Crustdata — use exact match so I can then enrich their account profile.

## When to prefer this

Use this endpoint as the first step in any Crustdata account enrichment or people search workflow when you have a company domain, name, LinkedIn company URL, or Crustdata ID and need to resolve it to a canonical Crustdata company record. Prefer this over direct enrichment when the company identity is ambiguous or when normalizing mixed-format inputs across a list.

## Known failure modes

- No company found for the given domain or name — Crustdata returns empty data array
- Invalid input type (e.g. non-string domain) — schema validation error before upstream call
- Upstream Crustdata API unavailable — proxy returns 5xx error
- Exceeds maxItems limit of 25 per field — request rejected with validation error
- Payment settlement failure — USDC charge not completed, call not forwarded

## How this service works

Core workflow route: normalize company inputs from domains, names, professional-network company URLs, or Crustdata IDs before account enrichment or people search. Minimum-charge route: $0.01 on successful upstream calls.

## Output

Returns the raw Crustdata JSON company record(s) matched to the input identifiers, along with billing metadata including API credits consumed, USDC micro-units settled, and the minimum call charge applied.

## Example request

```json
{
 "domains": [
  "openai.com"
 ],
 "exact_match": true
}
```

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "example": {
  "domains": [
   "openai.com"
  ],
  "exact_match": true
 },
 "properties": {
  "names": {
   "type": "array",
   "items": {
    "type": "string",
    "minLength": 1
   },
   "example": [
    "OpenAI"
   ],
   "maxItems": 25,
   "minItems": 1,
   "description": "Company names to identify or enrich."
  },
  "domains": {
   "type": "array",
   "items": {
    "type": "string",
    "minLength": 1
   },
   "example": [
    "openai.com"
   ],
   "maxItems": 25,
   "minItems": 1,
   "description": "Website domains to identify or enrich."
  },
  "exact_match": {
   "type": "boolean",
   "example": true,
   "description": "Restrict matching to exact domain/name behavior when supported by Crustdata. Recommended for domain-sensitive account lookups."
  },
  "crustdata_company_ids": {
   "type": "array",
   "items": {
    "type": "integer",
    "maximum": 9007199254740991,
    "exclusiveMinimum": 0
   },
   "example": [
    12345
   ],
   "maxItems": 25,
   "minItems": 1,
   "description": "Crustdata company IDs."
  },
  "professional_network_profile_urls": {
   "type": "array",
   "items": {
    "type": "string",
    "minLength": 1
   },
   "example": [
    "https://www.linkedin.com/company/openai"
   ],
   "maxItems": 25,
   "minItems": 1,
   "description": "Company professional-network profile URLs."
  }
 },
 "additionalProperties": false
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "data"
 ],
 "properties": {
  "data": {
   "description": "Raw JSON response returned by Crustdata."
  },
  "billing": {
   "type": "object",
   "required": [
    "apiCredits",
    "minimumCallUsdcMicro",
    "pricePerCreditUsdcMicro",
    "settledUsdcMicro"
   ],
   "properties": {
    "apiCredits": {
     "type": "number",
     "example": 0.06,
     "description": "Estimated Crustdata API credits charged for this request."
    },
    "settledUsdcMicro": {
     "type": "string",
     "example": "10000",
     "description": "USDC micro-units settled for this request."
    },
    "minimumCallUsdcMicro": {
     "type": "string",
     "example": "10000",
     "description": "Configured minimum successful-call settlement in USDC micro-units."
    },
    "pricePerCreditUsdcMicro": {
     "type": "string",
     "example": "100000",
     "description": "Configured USDC micro-units charged per Crustdata API credit."
    }
   },
   "additionalProperties": false
  }
 },
 "additionalProperties": false
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/crustdata-withzero-xyz-crustdata-company-identify-normalize-cd05e122/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from crustdata.withzero.xyz](https://www.zero.xyz/host/crustdata.withzero.xyz/llms.txt)
