Global Database · AsyncAPI Specification
Globaldatabase Com Companies Webhooks
Version
View Spec
View on GitHub
CompanyCompany DataKYBComplianceBusiness VerificationBeneficial OwnershipFinanceCredit RiskData EnrichmentProspectingWebhookMCPAI AgentsUnited KingdomAsyncAPIEvents
AsyncAPI Specification
generated: '2026-09-19'
method: searched
spec_type: Webhooks
source: https://api.globaldatabase.com/docs/v2/#watch-companies-api (Start/Stop Watch Company, Watched Company Fields, Set/Get Callback URL, Companies Webhook, All Companies Events)
asyncapi_published: false
asyncapi_note: 'The provider publishes no AsyncAPI document (none linked from the docs, none on the GitHub accounts, /asyncapi.yaml not served). This file captures the documented webhook surface verbatim from the HTML reference; nothing is generated.'
summary: >-
The Watch Companies API lets an API consumer subscribe to changes on individual companies and
receive them two ways: pushed to a single per-account callback URL (signed webhook), or pulled
via GET /v2/companies/{id}/watch/events. Subscriptions are per company and per field list;
the callback URL is account-wide. The marketing page for Portfolio Monitoring lists 38 change
types across 400+ registries (https://www.globaldatabase.com/continuous-monitoring).
registration:
set_callback: {method: PUT, url: 'https://api.globaldatabase.com/v2/companies/watch/callback', body: '{"callback": "<https URL>"}', response: '{"callback": "<url>", "secret": "<64-hex>"}'}
get_callback: {method: GET, url: 'https://api.globaldatabase.com/v2/companies/watch/callback', response: '{"callback": "<url>", "secret": "<64-hex>"}'}
secret_semantics: 'Generated automatically the first time a callback is set; the API returns it and it stays the same across later calls even if the callback URL changes. Used to verify X-GD-Signature on incoming webhooks.'
subscribe: {method: 'POST (also documented as PUT)', url: 'https://api.globaldatabase.com/v2/companies/{id}/watch/start', body: '{"fields": ["company.name", ...]}'}
unsubscribe: {method: DELETE, url: 'https://api.globaldatabase.com/v2/companies/{id}/watch/stop'}
list_subscriptions: {method: GET, url: 'https://api.globaldatabase.com/v2/companies/watch?date=YYYY-MM-DD'}
watched_fields: {get: 'GET /v2/companies/{id}/watch/fields', add: 'PUT /v2/companies/{id}/watch/fields/add', remove: 'PUT /v2/companies/{id}/watch/fields/remove'}
security:
signature_header: X-GD-Signature
secret: per-account, returned by PUT/GET /v2/companies/watch/callback
algorithm: 'Not stated in the docs (the secret is a 64-hex string, consistent with an HMAC-SHA256 key; not asserted).'
transport: HTTPS callback URL supplied by the consumer
delivery:
event_payload:
shape: '{"company_data": {"id": int, "name": string, "registration_number": string, "country_code": string, "date": ISO-8601}, "field": "<watched field>", "status": "UPDATE", "new_value": any, "old_value": any}'
example_from_docs: '{"company_data": {"id": 9, "name": "TESCO PLC", "registration_number": "00445790", "country_code": "GB", "date": "2021-09-15T18:53:25Z"}, "field": "company.email", "status": "UPDATE", "new_value": "email@example.com", "old_value": ...}'
retries: not documented
ordering: not documented
pull_alternative:
endpoint: 'GET https://api.globaldatabase.com/v2/companies/{id}/watch/events?from_date&to_date&fields&page&per_page'
response: '{"data": [{"status": "UPDATED", "message": string, "date_created": ISO-8601, "event_type": "<field>"}], "total_results": int, "pages": int}'
events:
keyed_by: watched field name (the `field` / `event_type` value)
fields_documented_in_start_watch_example:
- company.name
- company.status
- company.registration_number
- company.vat
- company.address_street
- company.email
- company.phone
- company.fax
- company.website
- company.bank
- company.employees_number
- company.trading_activity_export
- company.trading_activity_import
- company.group_structure
- company.financial
- office.identity
- office.email
- office.fax
- office.phone
- office.website
- address.street
- shareholder.holding
- shareholder.holding_historical
- shareholder.exit_precise
- shareholder.exit_approximate
- shareholder.share_type
- shareholder.share_price
- employee.appointment
- employee.phone
- employee.email
- employee.resignation_date
- officer.appointment
- officer.phone
- officer.email
- officer.resignation_date
- vat_number
field_descriptions_sample: {officer.appointment: Officer appointed, officer.phone: 'Officer phone added, changed or removed', officer.email: 'Officer email added, changed or removed', officer.resignation_date: Officer resignation date registered}
statuses: [UPDATE, UPDATED]
marketing_change_types:
source: https://www.globaldatabase.com/continuous-monitoring
count: 38
examples: [New shareholder filed, Director appointed, Status changed to dissolved, Annual accounts filed, Registered address changed, Director resigned, Status changed to liquidation, Insolvency filing, New ultimate beneficial owner, Persons with significant control changed, Charge registered, Sanctions list addition, Share capital changed]
note: 'Marketing vocabulary; the API keys events by field name as listed above.'
Work with this as data
Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for asyncapi
4 MCP tools reach this
find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/globaldatabase-com-companies-webhooks"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.