Zephira developer platform · production

Registry-sourced KYB data through one Zephira API.

Search companies and retrieve legal identity, officers, shareholders, corporate structures, and filed financials. The ten documented operations are backed by Zephira's configured company-data service and preserve every successful response field.

Base URLhttps://dashboard.zephira.ai/api/v2Live
10KYB operations
v2API version
Tokenauthentication
JSONresponse format

Self-service setup

Your API access is ready in the dashboard.

  1. Open Dashboard → API keys. Paid workspaces have a key prepared automatically. Choose Reveal API key, or keep using your existing key. Workspace Owners, Admins and Developers manage credentials.
  2. Copy the key when it is shown and save it in your server's ZEPHIRA_API_KEY environment variable. For additional keys or a free workspace, choose Create API key.
  3. Choose Run first request to see a live company response and updated credits. A successful test uses one credit; the saved result is reused on refresh. Company profile details can be added later.
Dashboard gateway base URLhttps://dashboard.zephira.ai/api/v2Send Authorization: Token followed by your dashboard-generated token.
cURLDashboard gateway · company profile
curl --request GET 'https://dashboard.zephira.ai/api/v2/kyb/29707645/lite' \
  --header "Authorization: Token $ZEPHIRA_API_KEY" \
  --header 'Accept: application/json'

Your token works immediately; no support request is needed. Existing active production dashboard keys also work. Every endpoint example below uses this gateway. Permissions, revocation and your workspace allowance apply; successful requests count one unit and failed requests are not charged.

If you lose the token, generate a replacement and revoke the old one. Full tokens cannot be retrieved after their first display.

Download OpenAPI JSON
01

Authentication & first request

Search with your dashboard token.

Set ZEPHIRA_API_KEY to the token you generated in Dashboard → API keys. Keep it in a server-side environment variable and send it in the Authorization header with the Token prefix.

AuthorizationAuthorization: Token $ZEPHIRA_API_KEYNever expose the key in browser code, mobile apps, logs, or source control.
cURLCompany search
curl --request POST 'https://dashboard.zephira.ai/api/v2/kyb/search' \
  --header "Authorization: Token $ZEPHIRA_API_KEY" \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '{"name":"Global Data Intelligence","location":"GB","include_provenance":true}'
Postman and OpenAPI clients: download the specification above and enter Token YOUR_ZEPHIRA_API_KEY as the complete Authorization header value. The specification already selects the correct dashboard API URL.

Integration help

Use the URL and key format from this guide.

Use https://dashboard.zephira.ai/api/v2 with the token generated in Dashboard → API keys. The quoted header in each cURL example reads your ZEPHIRA_API_KEY environment variable. Existing integrations at api.zephira.ai have a separate direct API guide.

Postman and OpenAPI clients: add an Authorization header with the value Token YOUR_ZEPHIRA_API_KEY. When importing the OpenAPI specification, enter that complete value, including Token and one space.
What you needSupported request after the base URL
Find a company IDPOST /kyb/search
Disclosed shareholdersGET /kyb/{id}/shareholders
Corporate group structureGET /kyb/{id}/group-structures/full

/ownership/{id} is not a supported route on this API. Choose shareholders or group structure according to the information you need; their responses are different.

For a 401, check that the environment variable is set, the token is active for this API, and the header begins with Token followed by one space. For a 404, check the method, endpoint path and company ID against the examples below.

If a request still fails, send support the request method, URL, HTTP status and error response. Remove your API token before sharing an example.

02

Data contract

Complete fields without false certainty.

All returned fields pass through

Zephira does not discard optional or jurisdiction-specific fields from successful KYB responses.

Provenance on demand

Set include_provenance=true to receive source metadata where the module supports it.

Null stays null

A missing, null, or empty value means it was not returned. It is not converted into a negative conclusion.

Important: field availability is record- and jurisdiction-dependent. Officers, shareholders, financials, and group structures can be empty even when the company exists.
03

API reference

Ten production KYB operations.

POST/kyb/search
Live

Company identity · 01

Search companies

Find the correct legal entity by name, registration number, VAT/EIN, or ticker within a jurisdiction.

Authentication TokenRequired permissions company:read

Parameters

NameLocationTypeRequirementDescription
locationbodystringRequiredISO country code, US/CA/CN country-state code, or Global Database KYB location identifier.
namebodystringOptionalCompany name. Supply at least one search identifier.
registration_numberbodystringOptionalLocal company registration number.
vat_numberbodystringOptionalVAT, tax, or EIN identifier.
tickerbodystringOptionalListed-company ticker.
city_or_statebodystring[]OptionalOptional city or state names used to narrow results.
include_provenancebodybooleanOptionalAdd source metadata to the response. Recommended for audit and compliance workflows.
  • Use US-CA, CA-ON, or CN-BJ style locations where a state or province is required.
  • Search results are candidates; confirm the identifier before requesting a detailed record.
cURLRequest
curl --request POST 'https://dashboard.zephira.ai/api/v2/kyb/search' \
  --header "Authorization: Token $ZEPHIRA_API_KEY" \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '{"name":"Global Data Intelligence","location":"GB","include_provenance":true}'
JSONSuccess response
[
  {
    "id": 29707645,
    "name": "GLOBAL DATA INTELLIGENCE LIMITED",
    "registration_number": "09410808",
    "vat_number": "GB260423730",
    "country_code": "GB",
    "state": "Northamptonshire",
    "jurisdiction": null,
    "source": {
      "category": "Government Registry",
      "comment": "Official registry data",
      "id": 197,
      "name": "Companies House",
      "url": "https://find-and-update.company-information.service.gov.uk"
    }
  }
]
Response field reference 8 documented field groups
FieldTypeMeaning
idinteger | stringCompany ID used by all company-detail endpoints.
namestringRegistered company name.
registration_numberstring | nullLocal registration number; leading zeroes are preserved.
vat_numberstring | nullVAT, tax, or EIN identifier when available.
country_codestringISO alpha-2 country code.
statestring | nullState, province, or registry region when supplied.
jurisdictionstring | nullRegistry jurisdiction when distinct from country or state.
sourcesource | absentReturned when include_provenance=true.
GET/kyb/{id}/lite
Live

Company identity · 02

Get company profile

Retrieve core legal identity, status, registered address, legal form, website, LinkedIn URL, and source evidence.

Authentication TokenRequired permissions company:read

Parameters

NameLocationTypeRequirementDescription
idpathintegerRequiredCompany ID returned by the search endpoint.
include_provenancequerybooleanOptionalAdd source metadata to the response. Recommended for audit and compliance workflows.
  • Without provenance, the same fields are returned in a flat object.
  • Null means the field was not returned for this company or jurisdiction.
cURLRequest
curl --request GET 'https://dashboard.zephira.ai/api/v2/kyb/29707645/lite?include_provenance=true' \
  --header "Authorization: Token $ZEPHIRA_API_KEY" \
  --header 'Accept: application/json'
JSONSuccess response
{
  "id": 29707645,
  "basic": {
    "name": "GLOBAL DATA INTELLIGENCE LIMITED",
    "registration_number": "09410808",
    "vat_number": "GB260423730",
    "incorporation_date": "2015-01-28",
    "status": "Active",
    "legal_form": "Private limited company (Ltd.)",
    "source": {
      "category": "Government Registry",
      "comment": "Official registry data",
      "id": 197,
      "name": "Companies House",
      "url": "https://find-and-update.company-information.service.gov.uk"
    }
  },
  "address": {
    "country_code": "GB",
    "country_name": "United Kingdom",
    "country_region": "Northamptonshire",
    "address_street": "Artisans' House",
    "address_location": "7 Queensbridge",
    "address_city": "Northampton",
    "zip_code": "NN4 7BF",
    "jurisdiction": null,
    "source": {
      "category": "Government Registry",
      "comment": "Official registry data",
      "id": 197,
      "name": "Companies House",
      "url": "https://find-and-update.company-information.service.gov.uk"
    }
  },
  "contact": {
    "website": "https://www.globaldatabase.com/",
    "linkedin": "linkedin.com/company/global-database",
    "source": {
      "category": "Enriched",
      "comment": "Contact information enrichment",
      "id": 1153,
      "name": "Contact Enrichment",
      "url": null
    }
  }
}
Response field reference 19 documented field groups
FieldTypeMeaning
idinteger | stringCompany ID.
basic.namestringRegistered company name.
basic.registration_numberstring | nullRegistration number.
basic.vat_numberstring | nullVAT, tax, or EIN identifier.
basic.incorporation_datedate | nullIncorporation date in YYYY-MM-DD format.
basic.statusstring | nullRegistry-reported company status.
basic.legal_formstring | nullRegistry-reported legal form.
address.country_codestring | nullISO alpha-2 country code.
address.country_namestring | nullCountry name.
address.country_regionstring | nullRegion, state, or province.
address.address_streetstring | nullRegistered-address line.
address.address_locationstring | nullAdditional registered-address line.
address.address_citystring | nullRegistered-address city.
address.zip_codestring | nullPostal code.
address.jurisdictionstring | nullRegistry jurisdiction.
contact.websitestring | nullCompany website when available.
contact.linkedinstring | nullCompany LinkedIn URL when available.
ticker / basic.tickerstring | nullListed-company ticker when available.
basic.source / address.source / contact.sourcesource | absentField-group provenance returned when requested.
GET/kyb/{id}/officers
Live

People & ownership · 03

List company officers

Return current and former directors, officers, appointment dates, roles, published addresses, and available enrichment.

Authentication TokenRequired permissions company:read

Parameters

NameLocationTypeRequirementDescription
idpathintegerRequiredCompany ID returned by the search endpoint.
pagequeryintegerOptionalOne-based page number. Default 1.
per_pagequeryintegerOptionalResults per page from 1 to 50. Default 10.
include_provenancequerybooleanOptionalAdd source metadata to the response. Recommended for audit and compliance workflows.
cURLRequest
curl --request GET 'https://dashboard.zephira.ai/api/v2/kyb/29707645/officers' \
  --header "Authorization: Token $ZEPHIRA_API_KEY" \
  --header 'Accept: application/json'
JSONSuccess response
{
  "data": [
    {
      "id": 212160656,
      "first_name": "Nicolae",
      "last_name": "Buldumac",
      "appointed_at": "2015-01-28",
      "resigned_at": null,
      "work_status": "ACTIVE",
      "date_of_birth_year": 1985,
      "date_of_birth_month": 12,
      "job_title": "Director",
      "address_country": "GB",
      "address_line_1": "7 Queensbridge, Artisans' House",
      "address_locality": "Northampton",
      "address_region": "Northamptonshire",
      "address_postal_code": "NN4 7BF"
    }
  ],
  "total_pages": 1,
  "total_results": 3
}
Response field reference 10 documented field groups
FieldTypeMeaning
data[].idinteger | stringOfficer record ID.
data[].first_name / last_namestring | nullPublished officer name fields.
data[].appointed_at / resigned_atdate | nullAppointment and resignation dates.
data[].work_statusstring | nullCurrent or previous appointment status.
data[].date_of_birth_year / date_of_birth_monthinteger | nullPublished partial date of birth when available.
data[].job_titlestring | nullRegistry-reported role.
data[].address_*string | nullPublished officer-address fields.
data[].officer / appointment / addressobject | absentProvenance-aware field groups when requested.
data[].contact.email / contact.phonestring | null | absentLicensed contact fields when returned with provenance.
total_pages / total_resultsintegerPagination totals.
POST/kyb/officers/search
Live

People & ownership · 04

Search officers

Search an individual by name and return the companies where they hold or previously held a statutory appointment.

Authentication TokenRequired permissions company:read

Parameters

NameLocationTypeRequirementDescription
namebodystringRequiredFull or partial officer name; minimum two characters.
date_of_birth_yearbodyintegerOptionalFour-digit year used for disambiguation.
country_codebodystringOptionalISO alpha-2 country code.
statusbodyC | POptionalCurrent or previous appointment.
appointment_datebody{gte,lte}OptionalInclusive YYYY-MM-DD appointment-date range.
resignation_datebody{gte,lte}OptionalInclusive YYYY-MM-DD resignation-date range.
company_namebodystringOptionalOptional company-name filter.
company_reg_numberbodystringOptionalOptional company-registration-number filter.
company_statusbodyarrayOptionalCompany-status nomenclature IDs.
company_countriesbodyarrayOptionalKYB-country nomenclature IDs.
include_provenancebodybooleanOptionalAdd source metadata to the response. Recommended for audit and compliance workflows.
cURLRequest
curl --request POST 'https://dashboard.zephira.ai/api/v2/kyb/officers/search' \
  --header "Authorization: Token $ZEPHIRA_API_KEY" \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '{"name":"Nicolae Buldumac","country_code":"GB"}'
JSONSuccess response
[
  {
    "id": 212160656,
    "company_id": 29707645,
    "company_name": "GLOBAL DATA INTELLIGENCE LIMITED",
    "registration_number": "09410808",
    "company_status": "Active",
    "incorporation_date": "2015-01-28",
    "full_name": "Nicolae Buldumac",
    "first_name": "Nicolae",
    "last_name": "Buldumac",
    "middle_name": null,
    "title": "Mr",
    "sex": "M",
    "nationality": "Romanian",
    "date_of_birth_year": 1985,
    "date_of_birth_month": 12,
    "officer_role": "Director",
    "appointed_at": "2015-01-28",
    "resigned_at": null,
    "work_status": "ACTIVE",
    "country_of_residence": "GB",
    "address_country": "GB",
    "address_line_1": "7 Queensbridge, Artisans' House",
    "address_locality": "Northampton",
    "address_region": "Northamptonshire",
    "address_postal_code": "NN4 7BF",
    "email": "nbuldumac@globaldatabase.com"
  }
]
Response field reference 9 documented field groups
FieldTypeMeaning
idinteger | stringOfficer record ID.
company_id / company_name / registration_numbermixedConnected-company identity.
company_status / incorporation_datestring | date | nullConnected-company status and incorporation date.
full_name / first_name / middle_name / last_name / titlestring | nullPublished officer name and title.
sex / nationality / country_of_residencestring | nullPublished person attributes where available.
date_of_birth_year / date_of_birth_monthinteger | nullPublished partial date of birth.
officer_role / appointed_at / resigned_at / work_statusmixedAppointment details.
address_* / email / phonestring | nullPublished or licensed contact fields when returned.
company / officer / appointment / address / contactobject | absentProvenance-aware field groups when requested.
GET/kyb/{id}/shareholders
Live

People & ownership · 05

List disclosed shareholders

Return direct shareholder names, quantities, percentages, share classes, prices, values, and currency where disclosed.

Authentication TokenRequired permissions ownership:read

Parameters

NameLocationTypeRequirementDescription
idpathintegerRequiredCompany ID returned by the search endpoint.
pagequeryintegerOptionalOne-based page number. Default 1.
per_pagequeryintegerOptionalResults per page from 1 to 50. Default 10.
include_provenancequerybooleanOptionalAdd source metadata to the response. Recommended for audit and compliance workflows.
  • A direct shareholder is not automatically an ultimate beneficial owner.
  • An empty response does not prove that a company has no shareholders; disclosure varies by jurisdiction.
cURLRequest
curl --request GET 'https://dashboard.zephira.ai/api/v2/kyb/29707645/shareholders?include_provenance=true' \
  --header "Authorization: Token $ZEPHIRA_API_KEY" \
  --header 'Accept: application/json'
JSONSuccess response
{
  "data": [
    {
      "currency": "GBP",
      "id": 712449329,
      "name": "NICOLAE BULDUMAC",
      "percentage": 90,
      "quantity": 9000,
      "share_price": 0.01,
      "share_type": "ORDINARY",
      "share_value": "9000.0 ORDINARY GBP 0.01",
      "status": null,
      "total_value": 90
    }
  ],
  "source": {
    "category": "Government Registry",
    "comment": "Official registry data",
    "id": 197,
    "name": "Companies House",
    "url": "https://find-and-update.company-information.service.gov.uk"
  },
  "total_pages": 1,
  "total_results": 2
}
Response field reference 12 documented field groups
FieldTypeMeaning
data[].idinteger | stringShareholding record ID.
data[].namestringPublished shareholder name.
data[].percentagenumber | nullPublished direct ownership percentage.
data[].quantitynumber | nullNumber of shares.
data[].share_pricenumber | nullStated price per share.
data[].share_typestring | nullShare class or type.
data[].share_valuestring | nullSource-formatted holding description.
data[].currencystring | nullCurrency code.
data[].statusstring | nullHolding status when supplied.
data[].total_valuenumber | nullReported or calculated total value.
sourcesource | absentResponse provenance when requested.
total_pages / total_resultsintegerPagination totals.
POST/kyb/shareholders/search/{view_mode}
Live

People & ownership · 06

Search shareholders

Find companies linked to a named individual or corporate shareholder, with lite or full shareholding detail.

Authentication TokenRequired permissions ownership:read

Parameters

NameLocationTypeRequirementDescription
view_modepathlite | fullRequiredLite returns holder and company; full adds holding details.
namebodystringRequiredShareholder name from 2 to 500 characters.
company_namebodystringOptionalOptional company-name filter.
registration_numberbodystringOptionalOptional company-registration-number filter.
vat_numberbodystringOptionalOptional company VAT-number filter.
location_countriesbodystring[]OptionalISO alpha-2 country filters.
percentagebody{gte,lte}OptionalOwnership range from 1 to 100.
pagebodyintegerOptionalOne-based page number. Default 1.
per_pagebodyintegerOptionalResults per page from 1 to 50. Default 10.
include_provenancebodybooleanOptionalAdd source metadata to the response. Recommended for audit and compliance workflows.
cURLRequest
curl --request POST 'https://dashboard.zephira.ai/api/v2/kyb/shareholders/search/full' \
  --header "Authorization: Token $ZEPHIRA_API_KEY" \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '{"name":"Nicolae Buldumac","location_countries":["GB"],"page":1,"per_page":10,"include_provenance":true}'
JSONSuccess response
{
  "data": [
    {
      "company": {
        "id": 29707645,
        "name": "GLOBAL DATA INTELLIGENCE LIMITED",
        "registration_number": "09410808",
        "address": {
          "zip": "NN4 7BF",
          "city": "Northampton",
          "address1": "Artisans' House",
          "address2": "7 Queensbridge",
          "country_region": "Northamptonshire"
        },
        "vat_number": "GB260423730"
      },
      "created": "2026-03-08T00:30:10,037+0000",
      "currency": "GBP",
      "id": 712449329,
      "name": "NICOLAE BULDUMAC",
      "percentage": 90,
      "quantity": 9000,
      "share_price": 0.01,
      "share_type": "ORDINARY",
      "share_value": "9000.0 ORDINARY GBP 0.01",
      "status": "C",
      "type": "Person",
      "source": {
        "category": "Government Registry",
        "comment": "Official registry data",
        "id": 197,
        "name": "Companies House",
        "url": "https://find-and-update.company-information.service.gov.uk"
      }
    }
  ],
  "total_pages": 1,
  "total_results": 1
}
Response field reference 7 documented field groups
FieldTypeMeaning
data[].companyobjectConnected company identity, address, registration number, and VAT number.
data[].name / typestring | nullHolder name and person/corporate classification.
data[].id / created / statusmixedHolding identity, creation date, and status in full mode.
data[].percentage / quantity / share_pricenumber | nullHolding economics in full mode.
data[].share_type / share_value / currencystring | nullShare-class and value fields in full mode.
data[].sourcesource | absentPer-record provenance when requested.
total_pages / total_resultsintegerPagination totals.
GET/kyb/{id}/group-structures/lite
Live

People & ownership · 07

Get immediate group structure

Return a simplified company hierarchy for quick parent and subsidiary checks.

Authentication TokenRequired permissions ownership:read

Parameters

NameLocationTypeRequirementDescription
idpathintegerRequiredCompany ID returned by the search endpoint.
include_provenancequerybooleanOptionalAdd source metadata to the response. Recommended for audit and compliance workflows.
  • Corporate linkage is relationship data, not an automatic beneficial-owner conclusion.
cURLRequest
curl --request GET 'https://dashboard.zephira.ai/api/v2/kyb/29707645/group-structures/lite?include_provenance=true' \
  --header "Authorization: Token $ZEPHIRA_API_KEY" \
  --header 'Accept: application/json'
JSONSuccess response
{
  "data": [
    {
      "id": 29707645,
      "name": "GLOBAL DATA INTELLIGENCE LIMITED",
      "country": "GB",
      "registration_number": "GB 09410808",
      "selected": true,
      "children": []
    }
  ],
  "source": {
    "category": "Modelled",
    "comment": "Relationship derived using proprietary linkage methodologies and available corporate relationship data",
    "id": 895,
    "name": "Global Data Intelligence Limited",
    "url": "https://www.globaldatabase.com/"
  }
}
Response field reference 7 documented field groups
FieldTypeMeaning
data[].idinteger | stringCompany ID.
data[].namestring | nullCompany name.
data[].countrystring | nullCountry code.
data[].registration_numberstring | nullCountry-qualified registration number.
data[].selectedbooleanWhether the node is the requested company.
data[].childrennode[]Immediate related company nodes.
sourcesource | absentRelationship-method provenance when requested.
GET/kyb/{id}/group-structures/full
Live

People & ownership · 08

Get complete group structure

Return the available multi-level parent, subsidiary, and related-company hierarchy.

Authentication TokenRequired permissions ownership:read

Parameters

NameLocationTypeRequirementDescription
idpathintegerRequiredCompany ID returned by the search endpoint.
include_provenancequerybooleanOptionalAdd source metadata to the response. Recommended for audit and compliance workflows.
  • Depth depends on available corporate-linkage evidence.
  • Do not treat a terminal corporate node as a natural-person UBO without further ownership evidence.
cURLRequest
curl --request GET 'https://dashboard.zephira.ai/api/v2/kyb/29707645/group-structures/full?include_provenance=true' \
  --header "Authorization: Token $ZEPHIRA_API_KEY" \
  --header 'Accept: application/json'
JSONSuccess response
{
  "data": [
    {
      "id": 29707645,
      "name": "GLOBAL DATA INTELLIGENCE LIMITED",
      "country": "GB",
      "registration_number": "GB 09410808",
      "selected": true,
      "children": [
        {
          "id": 222828368,
          "name": "GLOBAL DATABASE, SRL",
          "country": "MD",
          "registration_number": "MD 1021600025805",
          "selected": false,
          "children": []
        }
      ]
    }
  ],
  "source": {
    "category": "Modelled",
    "comment": "Relationship derived using proprietary linkage methodologies and available corporate relationship data",
    "id": 895,
    "name": "Global Data Intelligence Limited",
    "url": "https://www.globaldatabase.com/"
  }
}
Response field reference 5 documented field groups
FieldTypeMeaning
data[].id / namemixedCompany identity.
data[].country / registration_numberstring | nullJurisdiction and company number.
data[].selectedbooleanRequested-company marker.
data[].childrenrecursive node[]Nested corporate hierarchy.
sourcesource | absentRelationship-method provenance when requested.
GET/kyb/{id}/financial
Live

Financials · 09

Get filed financials

Retrieve multi-year filed statements, metric groups, source values, and period-over-period progress indicators.

Authentication TokenRequired permissions financials:read

Parameters

NameLocationTypeRequirementDescription
idpathintegerRequiredCompany ID returned by the search endpoint.
include_provenancequerybooleanOptionalAdd source metadata to the response. Recommended for audit and compliance workflows.
  • Metric names vary by filing regime and accounting taxonomy.
  • Preserve decimal precision and null values; do not coerce unavailable fields to zero.
cURLRequest
curl --request GET 'https://dashboard.zephira.ai/api/v2/kyb/29707645/financial?include_provenance=true' \
  --header "Authorization: Token $ZEPHIRA_API_KEY" \
  --header 'Accept: application/json'
JSONSuccess response
{
  "years": [
    "2023-01-31",
    "2024-01-31",
    "2025-01-31"
  ],
  "groups": [
    {
      "id": "Summary",
      "name": "Summary",
      "order": 0,
      "list": [
        {
          "name": "Net Assets",
          "list": {
            "2023-01-31": "-239021.00",
            "2024-01-31": "-252504.00",
            "2025-01-31": "-213633.00"
          },
          "progress": [
            -95,
            -100,
            -85
          ]
        }
      ]
    }
  ],
  "source": {
    "category": "Government Registry",
    "comment": "Official registry data",
    "id": 197,
    "name": "Companies House",
    "url": "https://find-and-update.company-information.service.gov.uk"
  }
}
Response field reference 6 documented field groups
FieldTypeMeaning
yearsstring[]Reporting-period dates.
groups[].id / name / ordermixedStatement group identity and display order.
groups[].list[].namestringSource financial metric label.
groups[].list[].listobjectReporting-period to source value map. Values may be strings, numbers, or null.
groups[].list[].progressnumber[] | absentPeriod comparison values when supplied.
sourcesource | absentFinancial-statement provenance when requested.
GET/kyb/{id}/full
Live

Complete profile · 10

Get complete KYB record

Retrieve company identity, officers, shareholders, full group structure, and financials in one response.

Authentication TokenRequired permissions company:read, ownership:read, financials:read

Parameters

NameLocationTypeRequirementDescription
idpathintegerRequiredCompany ID returned by the search endpoint.
include_provenancequerybooleanOptionalAdd source metadata to the response. Recommended for audit and compliance workflows.
  • For latency-sensitive flows, call only the modules needed for the decision.
cURLRequest
curl --request GET 'https://dashboard.zephira.ai/api/v2/kyb/29707645/full' \
  --header "Authorization: Token $ZEPHIRA_API_KEY" \
  --header 'Accept: application/json'
JSONSuccess response
{
  "lite": {
    "id": 29707645,
    "name": "GLOBAL DATA INTELLIGENCE LIMITED",
    "registration_number": "09410808",
    "vat_number": "GB260423730",
    "incorporation_date": "2015-01-28",
    "status": "Active",
    "country_code": "GB",
    "legal_form": "Private limited company (Ltd.)"
  },
  "officers": [
    {
      "id": 212160656,
      "first_name": "Nicolae",
      "last_name": "Buldumac",
      "work_status": "ACTIVE",
      "job_title": "Director"
    }
  ],
  "shareholders": [
    {
      "id": 712449329,
      "name": "NICOLAE BULDUMAC",
      "percentage": 90,
      "quantity": 9000,
      "share_type": "ORDINARY",
      "currency": "GBP"
    }
  ],
  "group_structures_full": [
    {
      "company_id": 222828368,
      "country_source": "GB",
      "country_target": "MD",
      "source": "GB 09410808",
      "target": "MD 1021600025805",
      "title": "GLOBAL DATA INTELLIGENCE LIMITED",
      "target_title": "GLOBAL DATABASE, SRL",
      "temporary": false
    }
  ],
  "financial": {
    "id": "Summary",
    "name": "Summary",
    "years": [
      "2023-01-31",
      "2024-01-31",
      "2025-01-31"
    ],
    "groups": []
  }
}
Response field reference 6 documented field groups
FieldTypeMeaning
litecompany profileAll company-profile fields from the lite endpoint.
officersofficer[]All officer fields from the officers endpoint.
shareholdersshareholder[]All direct-shareholding fields from the shareholders endpoint.
group_structures_fullrelationship[]Available corporate linkage records.
financialfinancial objectAll filed-financial fields from the financial endpoint.
source objectssource | absentField-group provenance when include_provenance=true.
04

Common fields

Source and pagination objects.

Source object

FieldTypeMeaning
categorystringEvidence class, such as Government Registry, Enriched, or Modelled.
commentstring | nullSource-method note supplied with the record.
idinteger | string | nullInternal source catalogue identifier.
namestring | nullRegistry or source name.
urlstring | nullSource or registry URL when available.

Pagination

datatotal_pagestotal_results

Use one-based pages. per_page accepts 1–50.

Financial values

yearsgroupslist

Metric labels and available periods follow the source filing taxonomy.

Corporate hierarchy

selectedchildrensource

Relationship depth depends on available linkage evidence.

05

Errors & billing

Check the response before retrying.

StatusWhat to check
400Check the JSON body, required fields and parameter values.
401Check that your dashboard token is active and the header begins with Token followed by one space.
403Check your token permissions and workspace subscription status.
404Check the endpoint path, HTTP method and company ID.
429Check your workspace allowance, daily limits and any retry instructions in the response.
5xxRetain the error response and retry temporary service failures with backoff.

API requests share your workspace allowance with dashboard and MCP usage. Each successful data request counts one unit; failed requests are not charged. Review Usage and Request logs in your dashboard for the request ID, charging decision and remaining allowance.

06

Security

Production integration rules.

Keep keys server-side

Store your token in a secrets manager or server environment.

Limit access

Share tokens only with systems and people that need API access.

Retain error details

Log the request time, status and any returned request ID. Never log the token.

Respect availability

Do not interpret missing shareholder or officer records as a verified absence.

Existing direct API integrations at api.zephira.ai

The direct service uses https://api.zephira.ai/v2 and a token issued separately for that service. Dashboard-generated tokens use the dashboard gateway documented above. Keep your existing direct token and URL if your integration already uses the direct service.

cURLDirect API · separately issued token
curl --request POST 'https://api.zephira.ai/v2/kyb/search' \
  --header "Authorization: Token $ZEPHIRA_API_KEY" \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '{"name":"Global Data Intelligence","location":"GB","include_provenance":true}'
Download direct API OpenAPI JSON

Direct service access and billing follow your direct API agreement. For new integrations, create a dashboard API key and use the gateway setup above.