API Documentation
Bedrock provides a REST API for submitting advice documents, tracking review workflows, and retrieving tamper-proof certificates. Standard JSON over HTTPS with API key authentication.
Authentication
All requests require an API key passed in the X-API-Key header. Keys are scoped to a single firm.
Webhooks
Configure webhooks to receive real-time notifications as records are written and reviews complete.
Endpoints
4 endpoint groups covering the Ledger, Principal, and Firm APIs.
Firm
7 endpointsLedger
6 endpointsPrincipal
3 endpointsPublic
1 endpointHealth
Service health check.
/healthHealth check
Check API health status
Responses
| Field | Type | Required | Description |
|---|---|---|---|
status | string | No |
Example
curl -X GET "https://api.bedrockledger.com/health" \
-H "Content-Type: application/json" \
-H "X-API-Key: bk_live_your_api_key"Firm
Manage your firm profile, API keys, and webhook configurations.
/v1/firm/meGet current firm
Responses
| Field | Type | Required | Description |
|---|---|---|---|
id | string | No | |
name | string | No | |
createdAt | string(date-time) | No | |
updatedAt | string(date-time) | No |
Example
curl -X GET "https://api.bedrockledger.com/v1/firm/me" \
-H "Content-Type: application/json" \
-H "X-API-Key: bk_live_your_api_key"/v1/firm/me/statsGet firm statistics
Responses
| Field | Type | Required | Description |
|---|---|---|---|
recordCount | integer | No | |
certificateCount | integer | No | |
jobCount | integer | No |
Example
curl -X GET "https://api.bedrockledger.com/v1/firm/me/stats" \
-H "Content-Type: application/json" \
-H "X-API-Key: bk_live_your_api_key"/v1/firm/me/backup-statusGet backup status
Responses
| Field | Type | Required | Description |
|---|---|---|---|
isHealthy | boolean | No | |
certifiedAt | string(date-time) | No | |
nextCheckAt | string(date-time) | No | |
spotChecks | object[] | No |
Example
curl -X GET "https://api.bedrockledger.com/v1/firm/me/backup-status" \
-H "Content-Type: application/json" \
-H "X-API-Key: bk_live_your_api_key"/v1/firm/me/api-keysList API keys
Responses
Example
curl -X GET "https://api.bedrockledger.com/v1/firm/me/api-keys" \
-H "Content-Type: application/json" \
-H "X-API-Key: bk_live_your_api_key"/v1/firm/me/webhooksList webhooks
Responses
Example
curl -X GET "https://api.bedrockledger.com/v1/firm/me/webhooks" \
-H "Content-Type: application/json" \
-H "X-API-Key: bk_live_your_api_key"/v1/firm/me/webhooksCreate webhook
Request body
| Field | Type | Required | Description |
|---|---|---|---|
url | string(uri) | Yes | |
events | string[] | Yes |
Responses
| Field | Type | Required | Description |
|---|---|---|---|
id | string | No | |
firmId | string | No | |
url | string(uri) | No | |
events | string[] | No | |
createdAt | string(date-time) | No | |
deactivatedAt | string(date-time) | No |
Example
curl -X POST "https://api.bedrockledger.com/v1/firm/me/webhooks" \
-H "Content-Type: application/json" \
-H "X-API-Key: bk_live_your_api_key" \
-d '{
"url": "https://example.com",
"events": []
}'/v1/firm/me/webhooks/{webhookId}Delete webhook
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
webhookId | path | string | Yes |
Responses
Example
curl -X DELETE "https://api.bedrockledger.com/v1/firm/me/webhooks/{webhookId}" \
-H "Content-Type: application/json" \
-H "X-API-Key: bk_live_your_api_key"Ledger
Submit advice documents, query records, and manage certificates.
/v1/ledger/recordsCreate record
Request body
| Field | Type | Required | Description |
|---|---|---|---|
eventType | string | Yes | |
actorId | string | Yes | |
actorFcaRef | string | No | |
actorName | string | No | |
documentHash | string | Yes | |
documentMetadata | object | Yes |
Responses
| Field | Type | Required | Description |
|---|---|---|---|
id | string | No | |
firmId | string | No | |
eventType | string | No | |
actorId | string | No | |
actorFcaRef | string | No | |
actorName | string | No | |
documentHash | string | No | |
documentMetadata | object | No | |
certificateId | string | No | |
createdAt | string(date-time) | No |
Example
curl -X POST "https://api.bedrockledger.com/v1/ledger/records" \
-H "Content-Type: application/json" \
-H "X-API-Key: bk_live_your_api_key" \
-d '{
"eventType": "example_eventType",
"actorId": "example_actorId",
"actorFcaRef": "example_actorFcaRef",
"actorName": "example_actorName",
"documentHash": "example_documentHash",
"documentMetadata": {}
}'/v1/ledger/recordsList records
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
skip | query | integer | No | |
take | query | integer | No |
Responses
Example
curl -X GET "https://api.bedrockledger.com/v1/ledger/records" \
-H "Content-Type: application/json" \
-H "X-API-Key: bk_live_your_api_key"/v1/ledger/records/{recordId}Get record
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
recordId | path | string | Yes |
Responses
| Field | Type | Required | Description |
|---|---|---|---|
id | string | No | |
firmId | string | No | |
eventType | string | No | |
actorId | string | No | |
actorFcaRef | string | No | |
actorName | string | No | |
documentHash | string | No | |
documentMetadata | object | No | |
certificateId | string | No | |
createdAt | string(date-time) | No |
Example
curl -X GET "https://api.bedrockledger.com/v1/ledger/records/{recordId}" \
-H "Content-Type: application/json" \
-H "X-API-Key: bk_live_your_api_key"/v1/ledger/certificatesList certificates
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
skip | query | integer | No | |
take | query | integer | No |
Responses
Example
curl -X GET "https://api.bedrockledger.com/v1/ledger/certificates" \
-H "Content-Type: application/json" \
-H "X-API-Key: bk_live_your_api_key"/v1/ledger/certificates/{certificateId}/urlGet certificate URL
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
certificateId | path | string | Yes |
Responses
| Field | Type | Required | Description |
|---|---|---|---|
url | string(uri) | No | |
expiresAt | string(date-time) | No |
Example
curl -X GET "https://api.bedrockledger.com/v1/ledger/certificates/{certificateId}/url" \
-H "Content-Type: application/json" \
-H "X-API-Key: bk_live_your_api_key"/v1/ledger/certificates/{certificateId}/verify-chainVerify certificate chain
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
certificateId | path | string | Yes |
Responses
| Field | Type | Required | Description |
|---|---|---|---|
isValid | boolean | No | |
chain | object[] | No |
Example
curl -X POST "https://api.bedrockledger.com/v1/ledger/certificates/{certificateId}/verify-chain" \
-H "Content-Type: application/json" \
-H "X-API-Key: bk_live_your_api_key"Principal
Submit advice for review and track review job progress.
/v1/principal/jobsSubmit job
Request body
| Field | Type | Required | Description |
|---|---|---|---|
description | string | Yes | |
data | object | Yes |
Responses
| Field | Type | Required | Description |
|---|---|---|---|
id | string | No | |
firmId | string | No | |
description | string | No | |
data | object | No | |
status | string | No | |
assignedTo | string | No | |
createdAt | string(date-time) | No | |
updatedAt | string(date-time) | No |
Example
curl -X POST "https://api.bedrockledger.com/v1/principal/jobs" \
-H "Content-Type: application/json" \
-H "X-API-Key: bk_live_your_api_key" \
-d '{
"description": "example_description",
"data": {}
}'/v1/principal/jobsList jobs
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
skip | query | integer | No | |
take | query | integer | No | |
status | query | string | No |
Responses
Example
curl -X GET "https://api.bedrockledger.com/v1/principal/jobs" \
-H "Content-Type: application/json" \
-H "X-API-Key: bk_live_your_api_key"/v1/principal/jobs/{jobId}Get job
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
jobId | path | string | Yes |
Responses
| Field | Type | Required | Description |
|---|---|---|---|
id | string | No | |
firmId | string | No | |
description | string | No | |
data | object | No | |
status | string | No | |
assignedTo | string | No | |
createdAt | string(date-time) | No | |
updatedAt | string(date-time) | No |
Example
curl -X GET "https://api.bedrockledger.com/v1/principal/jobs/{jobId}" \
-H "Content-Type: application/json" \
-H "X-API-Key: bk_live_your_api_key"Public
Endpoints that require no authentication.
/v1/public/certificates/verifyVerify certificate
Request body
| Field | Type | Required | Description |
|---|---|---|---|
certificateId | string | Yes |
Responses
| Field | Type | Required | Description |
|---|---|---|---|
isValid | boolean | No | |
certificateHash | string | No | |
issuedAt | string(date-time) | No |
Example
curl -X POST "https://api.bedrockledger.com/v1/public/certificates/verify" \
-H "Content-Type: application/json" \
-H "X-API-Key: bk_live_your_api_key" \
-d '{
"certificateId": "example_certificateId"
}'Ready to integrate?
Import the OpenAPI spec into Postman, Bruno, or any API client. Request early access to start building.