Hello, I have a few questions and would appreciate your help in clarifying them.
-
I need some assistance with understanding a few things related to StreamingAPI:
1.1 The API’s different endpoints seem to have different starting points for timepoints. For example, in
filing-history
the timepoint is 168511966, but incompany
it’s 82025317.
Is this normal? Are they supposed to be different? And do these timepoints differ across different accounts? (I’m using two accounts, one primary and one backup.)1.2 What should we do if the last event we received was more than 3 days ago? Our connector was intentionally disconnected from StreamingAPI due to technical reasons.
Is there a way to retrieve events older than 3 days? Is this even possible?1.3 Are timepoints counted in seconds starting from a certain DateTime? And is that DateTime in UTC (i.e., UTC+0)?
1.4 According to the documentation, the oldest retrievable timepoint is “3 days ago,” but when trying to fetch events from that time range, we receive a 416 response code.
Does this mean we’re requesting a timepoint that exceeds the 3-day limit? Here’s an example of the last event we received:
{
"resource_kind": "company-profile",
"resource_uri": "/company/15893094",
"resource_id": "15893094",
"data": {
"accounts": {
"accounting_reference_date": {
"day": "31",
"month": "08"
},
"next_accounts": {
"due_on": "2026-05-12",
"period_end_on": "2025-08-31",
"period_start_on": "2024-08-12"
},
"next_due": "2026-05-12",
"next_made_up_to": "2025-08-31"
},
"can_file": true,
"company_name": "VAPEBOX LTD",
"company_number": "15893094",
"company_status": "active",
"confirmation_statement": {
"next_due": "2025-08-25",
"next_made_up_to": "2025-08-11"
},
"date_of_creation": "2024-08-12",
"etag": "b845162ed5d8824907607daf6ccc939cd2dc76f9",
"jurisdiction": "england-wales",
"links": {
"filing_history": "/company/15893094/filing-history",
"officers": "/company/15893094/officers",
"persons_with_significant_control": "/company/15893094/persons-with-significant-control",
"self": "/company/15893094"
},
"registered_office_address": {
"address_line_1": "83 Chelford Road",
"address_line_2": "Eccleston",
"country": "England",
"locality": "St. Helens",
"postal_code": "WA10 5PL"
},
"sic_codes": [
"46170"
],
"type": "ltd"
},
"event": {
"timepoint": 82025317,
"published_at": "2024-08-12T19:28:02",
"type": "changed"
}
}
Based on the logic, the timepoint 82025317 represents 82025317 seconds from 2024-08-12T19:28:02, which means to avoid a 416 error in the request, I would need to calculate the difference in seconds between 2024-08-12T19:28:02 and the current time (e.g., 2024-09-05 09:09:49), then add this difference to the original timepoint and use the result in the request.
However, I still receive a 416 error. Here’s an example of my calculations:
[2024-09-05 09:09:49.798389][][][DEBUG] Original timepoint: 82025317. Original datetime: 2024-08-12 19:28:02
[2024-09-05 09:09:49.798468][][][DEBUG] Modified timepoint: 83802655
[2024-09-05 09:09:49.799231][][][DEBUG] StreamingAPI called endpoint: https://stream.companieshouse.gov.uk/companies?timepoint=83802655
I’ve tried the same approach for a timepoint “2 days ago” but still get the same 416 error. Meanwhile, the same logic works fine with the filing-history
endpoint.
Is it possible that some endpoints allow fetching historical events with different time ranges (1 day, 2 days, 3 days)? The documentation doesn’t mention this. What am I doing wrong?
-
Is there a more up-to-date version of the documentation?
In the current documentation available at developer-specs.company-information.service.gov.uk/companies-house-public-data-api/reference,
the object schemas and descriptions (e.g., mandatory/optional fields) don’t match the actual data I’m receiving from the API. -
From what I understand, the
officer_id
from the endpoint developer-specs.company-information.service.gov.uk/companies-house-public-data-api/reference/officer-disqualifications/get-natural-officer
doesn’t match theofficer_id
from developer-specs.company-information.service.gov.uk/companies-house-public-data-api/reference/officer-appointments/list.
How can I retrieve disqualifications for an officer using the ID I get from your data (e.g., BZVJHIlegGkpm_1w4bT4HnZ4Ekk)?
When I request data from both disqualified-officers endpoints, I get the response{"timestamp":"2024-09-05T09:27:54.254069593","message":"Resource not found."}
Could you clarify for which officers this request is valid? Is it specific to a certain type or status of officers?