Zephira APIzephira.ai ↗
Search and retrieve official company profiles, officer records, and registration data from 150+ government registries worldwide via the Zephira.ai API.
What is the Zephira API?
The Zephira.ai API provides 4 endpoints for querying official corporate registry data across 150+ jurisdictions. Use search_companies to find companies by name, registration number, VAT, LEI, or ticker, then call get_company_details to retrieve incorporation dates, registered addresses, legal forms, and VAT numbers. A parallel set of officer endpoints lets you search and retrieve directors, secretaries, and their appointment histories.
curl -X POST 'https://api.parse.bot/scraper/45d887ca-d7bf-41a7-81d2-2e17fc3d0b22/search_companies' \
-H 'X-API-Key: $PARSE_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"query": "Global Database"
}'Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace zephira-ai-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Zephira KYB SDK — bounded, re-runnable; every call capped."""
from parse_apis.zephira_ai_api import Zephira, ParseError
client = Zephira()
# Search for companies by name — limit caps total items.
for company in client.company_summaries.search(query="Global Database", limit=3):
print(company.name, company.status, company.country_code)
# Drill-down: take one company, get full details.
hit = client.company_summaries.search(query="Global Database", limit=1).first()
try:
full = hit.details()
print(full.name, full.registration_number, full.incorporation_date)
except ParseError as e:
print("error:", e)
# Get officers for that company.
for officer in full.officers(limit=3):
print(officer.first_name, officer.last_name, officer.job_title, officer.work_status)
# Search officers by name.
for result in client.officer_summaries.search(query="John Smith", limit=3):
print(result.full_name, result.officer_role, result.company_name)
print("exercised: company_summaries.search / details / officers / officer_summaries.search")
Full-text search for companies by name, registration number, VAT, LEI, or ticker across 150+ jurisdictions. Returns up to 10 matching company summaries per query. Results are auto-iterated.
| Param | Type | Description |
|---|---|---|
| queryrequired | string | Company name, registration number, VAT, LEI, or ticker to search for. |
| jurisdiction | string | ISO 3166-1 alpha-2 country code to filter results by jurisdiction (e.g. 'gb', 'us'). Omitted returns results from all jurisdictions. |
{
"type": "object",
"fields": {
"total": "integer count of results returned",
"companies": "array of company summaries with id, name, status, country_code, and registration_number"
},
"sample": {
"data": {
"total": 10,
"companies": [
{
"id": "22401777",
"name": "DATABASE SERVICE PROVIDER GLOBAL LTD",
"status": "Active",
"country_code": "GB",
"registration_number": "03898451"
},
{
"id": "1104884213",
"name": "GLOBAL DATABASE - INFORMATICA LTDA.",
"status": "Active",
"country_code": "BR",
"registration_number": "04536081000108"
}
]
},
"status": "success"
}
}About the Zephira API
Company Search and Detail Retrieval
The search_companies endpoint accepts a query string — company name, registration number, VAT, LEI, or stock ticker — and an optional jurisdiction parameter (ISO 3166-1 alpha-2, e.g. gb, de, us). It returns an array of company summaries, each containing id, name, status, country_code, and registration_number. The id from these results is required as company_id input for get_company_details, which returns the full corporate profile: name, status, country, website, legal_form, vat_number, incorporation_date (YYYY-MM-DD), registered_address, and registration_number.
Officer Search and Appointment Records
search_officers works similarly to company search: supply an officer name as query, with an optional jurisdiction filter. Each result in the officers array includes full_name, officer_role, company_name, address_country, and resigned_at — letting you see whether an appointment is current or historical. For a specific company's full officer list, get_company_officers takes a company_id and returns paginated results with total_pages and total_results alongside the officers array, which includes appointment dates, resignation dates, job titles, and address data.
Coverage and Workflow
All four endpoints draw from government-sourced registry data spanning 150+ countries. The typical workflow is two steps: run a search endpoint to obtain identifiers, then pass those identifiers to the detail endpoints. Both search endpoints auto-iterate results, and officer results from get_company_officers expose pagination metadata so you can retrieve large appointment lists in full.
The Zephira API is a managed, monitored endpoint for zephira.ai — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when zephira.ai changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official zephira.ai API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Automate KYC workflows by verifying company status, incorporation date, and registered address from official registries
- Screen potential business partners by checking officer roles and resignation dates across multiple jurisdictions
- Build a corporate ownership explorer by linking officers to multiple company records via search_officers
- Enrich CRM or lead records with legal_form, vat_number, and registration_number from get_company_details
- Monitor director appointments and resignations across a portfolio of companies using get_company_officers
- Cross-reference LEI or VAT numbers against official registry data for financial compliance checks
- Aggregate incorporation dates and legal forms across jurisdictions for market-entry research
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Zephira.ai provide an official developer API?+
What does get_company_details return beyond basic registration info?+
Can I retrieve a company's full filing history or annual accounts through this API?+
How does pagination work for officer results?+
get_company_officers endpoint returns the first page of officers along with total_pages and total_results so you know how many additional pages exist. To retrieve subsequent pages you need to make additional calls. The search_companies and search_officers endpoints auto-iterate, returning up to 10 summaries per query rather than requiring manual page handling.