# Animica Address Verification

> Animica Address Verification is a paid API for AI agents from animica.dev, paid per call via x402, $0.02/call, status unknown (last checked 2026-09-13).

Batch-validates up to 50 addresses in one call, reporting the precision of each match (rooftop, street, locality, region, country, or unresolved) and deduplicating results by OSM ID.

## Facts

- Endpoint: POST https://animica.dev/x402/address/verify
- Price: $0.02/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-13
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/animica-address-verification-50698d51
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_SEDAaDZRWG6ozmGimPw6h

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 animica-address-verification-50698d51 -d '<json body>'
```

Example prompt: Can you verify these 30 delivery addresses for me in German and tell me which ones only matched to the street level or worse — I need to know which ones are missing the actual building?

## When to prefer this

Choose this endpoint when you need to know not just where an address maps to, but HOW WELL it was matched — distinguishing rooftop-level precision from street-level or worse. It is especially valuable when processing bulk address lists (up to 50 at once) where silent geocoder failures would go undetected, when deduplication by OSM ID is needed, or when you want the precision improvement from structured-plus-free-text retry matching. Prefer it over a plain geocoder when data quality auditing matters, such as before shipping, CRM cleansing, or compliance checks.

## Known failure modes

- More than 50 addresses submitted in one call — request rejected
- Invalid ISO 3166-1 alpha-2 country hint — may cause degraded matching
- Completely unrecognizable address strings — returned as 'unresolved'
- Invalid BCP-47 language tag — may fall back to default language
- Network timeout on large batches close to the 50-address limit

## How this service works

Validate up to 50 addresses in one call and say how precisely each actually matched — rooftop, street, locality, region, country or unresolved — not just coordinates. A plain geocoder returns a point even when it only found the street and quietly dropped your house number; this reports that. Weak free-text matches are retried structured, which measurably reaches the building where free text stops at the road. Duplicate rows are clustered by OSM id. OSM data under ODbL; attribution included.

## Output

For each submitted address, the endpoint returns a precision label (rooftop, street, locality, region, country, or unresolved), coordinates, OSM ID for deduplication, and attribution metadata. Duplicate addresses sharing an OSM ID are clustered together. Where free-text matching was weak, a structured retry result is also included showing the improved precision level.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "country": {
   "type": "string",
   "description": "ISO 3166-1 alpha-2 hint applied to every row, e.g. \"de\""
  },
  "language": {
   "type": "string",
   "description": "preferred result language, BCP-47"
  },
  "addresses": {
   "type": "array",
   "description": "1..50 entries. Each is either a string, or an object with {text} and/or structured parts {street, city, state, county, country, postalcode}. Giving both lets the second pass run, which is where the precision gain comes from."
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/animica-address-verification-50698d51/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from animica.dev](https://www.zero.xyz/host/animica.dev/llms.txt)
