API Reference
Ledger API
Immutable ledger operations for records and certificates
Endpoints in this group
- GET
/v1/ledger/records - GET
/v1/ledger/records/{id} - GET
/v1/ledger/records/{id}/certificate - POST
/v1/ledger/records/{id}/certificate - GET
/v1/ledger/certificates - GET
/v1/ledger/certificates/{id} - GET
/v1/ledger/chains/verify
GET
/v1/ledger/recordsList ledger records with pagination and filters
Parameters
| Parameter | In | Type | Req | Description |
|---|---|---|---|---|
page | query | integer | No | |
pageSize | query | integer | No | |
eventType | query | string | No | |
startDate | query | string | No | |
endDate | query | string | No | |
actorId | query | string | No | |
documentHash | query | string | No | |
documentReference | query | string | No |
Responses
200Paginated list of ledger records401Unauthorized
| Field | Type | Req | Description |
|---|---|---|---|
data | Record[] | No | |
total | integer | No | |
page | integer | No | |
pageSize | integer | No |
Example request
cURL
curl -X GET "https://api.bedrockcompliance.co.uk/v1/ledger/records" \
-H "X-Bedrock-Key: bk_live_your_api_key"GET
/v1/ledger/records/{id}Get a single ledger record
Parameters
| Parameter | In | Type | Req | Description |
|---|---|---|---|---|
id | path | string | Yes | Record ID |
Responses
200Ledger record details401Unauthorized404Record not found
| Field | Type | Req | Description |
|---|---|---|---|
id | string | No | |
firmId | string | No | |
sequenceNumber | integer | No | |
eventType | string | No | |
actorId | string | No | |
actorFcaRef | string | null | No | |
actorName | string | No | |
documentHash | string | No | |
documentMetadata | object | No | |
previousHash | string | null | No | |
recordHash | string | No | |
chainHash | string | No | |
signature | string | No | |
publicKey | string | No | |
timestamp | string (date-time) | No | |
reviewJobId | string | null | No |
Example request
cURL
curl -X GET "https://api.bedrockcompliance.co.uk/v1/ledger/records/<id>" \
-H "X-Bedrock-Key: bk_live_your_api_key"GET
/v1/ledger/records/{id}/certificateGet presigned URL for certificate PDF
Parameters
| Parameter | In | Type | Req | Description |
|---|---|---|---|---|
id | path | string | Yes | Record ID |
Responses
200Presigned URL for certificate PDF401Unauthorized404Certificate not found
| Field | Type | Req | Description |
|---|---|---|---|
url | string (uri) | No |
Example request
cURL
curl -X GET "https://api.bedrockcompliance.co.uk/v1/ledger/records/<id>/certificate" \
-H "X-Bedrock-Key: bk_live_your_api_key"POST
/v1/ledger/records/{id}/certificateIssue a certificate on demand for a ledger record
On-demand certificate issuance for any ledger record outside the auto-issue allowlist. Idempotent: returns the existing certificate id if one was already issued for the record.
Parameters
| Parameter | In | Type | Req | Description |
|---|---|---|---|---|
id | path | string | Yes | Record ID |
Responses
200Certificate already existed or was enqueued for generation401Unauthorized404Ledger record not found
| Field | Type | Req | Description |
|---|---|---|---|
certificateId | string | null | No | Existing certificate id, or null if cert-gen was enqueued |
status | string | No | existingenqueued |
Example request
cURL
curl -X POST "https://api.bedrockcompliance.co.uk/v1/ledger/records/<id>/certificate" \
-H "X-Bedrock-Key: bk_live_your_api_key"GET
/v1/ledger/certificatesList all certificates for the authenticated firm
Responses
200List of certificates401Unauthorized
Example request
cURL
curl -X GET "https://api.bedrockcompliance.co.uk/v1/ledger/certificates" \
-H "X-Bedrock-Key: bk_live_your_api_key"GET
/v1/ledger/certificates/{id}Get certificate metadata by id
Item pair of `listCertificates` — returns the full Certificate envelope. For the PDF download, use `GET /v1/ledger/records/{id}/certificate` instead.
Parameters
| Parameter | In | Type | Req | Description |
|---|---|---|---|---|
id | path | string | Yes | Certificate ID |
Responses
200Certificate envelope401Unauthorized404Certificate not found
| Field | Type | Req | Description |
|---|---|---|---|
id | string | No | |
ledgerRecordId | string | No | |
firmId | string | No | |
firmName | string | No | |
firmFrnNumber | string | No | |
issuedAt | string (date-time) | No | |
verificationUrl | string (uri) | No | |
pdfUrl | string (uri) | No | |
pdfStorageKey | string | No | |
metadata | object | No | Event-specific snapshot — shape depends on the linked record's eventType. Carries `eventLabel`, optional `statusPill`, and `sections` (heading + labelled fields). |
Example request
cURL
curl -X GET "https://api.bedrockcompliance.co.uk/v1/ledger/certificates/<id>" \
-H "X-Bedrock-Key: bk_live_your_api_key"GET
/v1/ledger/chains/verifyVerify chain integrity for the authenticated firm
Responses
200Chain verification result401Unauthorized
| Field | Type | Req | Description |
|---|---|---|---|
valid | boolean | No | |
recordCount | integer | No | |
errors | object[] | No |
Example request
cURL
curl -X GET "https://api.bedrockcompliance.co.uk/v1/ledger/chains/verify" \
-H "X-Bedrock-Key: bk_live_your_api_key"