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.

Health

Service health check.

GET/health

Health check

Check API health status

Responses

200API is healthy
FieldTypeRequiredDescription
statusstringNo

Example

cURL
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.

GET/v1/firm/me

Get current firm

Responses

200Current firm details
FieldTypeRequiredDescription
idstringNo
namestringNo
createdAtstring(date-time)No
updatedAtstring(date-time)No

Example

cURL
curl -X GET "https://api.bedrockledger.com/v1/firm/me" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: bk_live_your_api_key"
GET/v1/firm/me/stats

Get firm statistics

Responses

200Firm statistics
FieldTypeRequiredDescription
recordCountintegerNo
certificateCountintegerNo
jobCountintegerNo

Example

cURL
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"
GET/v1/firm/me/backup-status

Get backup status

Responses

200Backup status with spot checks
FieldTypeRequiredDescription
isHealthybooleanNo
certifiedAtstring(date-time)No
nextCheckAtstring(date-time)No
spotChecksobject[]No

Example

cURL
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"
GET/v1/firm/me/api-keys

List API keys

Responses

200List of API keys

Example

cURL
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"
GET/v1/firm/me/webhooks

List webhooks

Responses

200List of webhooks

Example

cURL
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"
POST/v1/firm/me/webhooks

Create webhook

Request body

FieldTypeRequiredDescription
urlstring(uri)Yes
eventsstring[]Yes

Responses

201Webhook created
FieldTypeRequiredDescription
idstringNo
firmIdstringNo
urlstring(uri)No
eventsstring[]No
createdAtstring(date-time)No
deactivatedAtstring(date-time)No

Example

cURL
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": []
  }'
DELETE/v1/firm/me/webhooks/{webhookId}

Delete webhook

Parameters

ParameterInTypeRequiredDescription
webhookIdpathstringYes

Responses

200Webhook deleted

Example

cURL
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.

POST/v1/ledger/records

Create record

Request body

FieldTypeRequiredDescription
eventTypestringYes
actorIdstringYes
actorFcaRefstringNo
actorNamestringNo
documentHashstringYes
documentMetadataobjectYes

Responses

201Record created
FieldTypeRequiredDescription
idstringNo
firmIdstringNo
eventTypestringNo
actorIdstringNo
actorFcaRefstringNo
actorNamestringNo
documentHashstringNo
documentMetadataobjectNo
certificateIdstringNo
createdAtstring(date-time)No

Example

cURL
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": {}
  }'
GET/v1/ledger/records

List records

Parameters

ParameterInTypeRequiredDescription
skipqueryintegerNo
takequeryintegerNo

Responses

200List of records

Example

cURL
curl -X GET "https://api.bedrockledger.com/v1/ledger/records" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: bk_live_your_api_key"
GET/v1/ledger/records/{recordId}

Get record

Parameters

ParameterInTypeRequiredDescription
recordIdpathstringYes

Responses

200Record details
FieldTypeRequiredDescription
idstringNo
firmIdstringNo
eventTypestringNo
actorIdstringNo
actorFcaRefstringNo
actorNamestringNo
documentHashstringNo
documentMetadataobjectNo
certificateIdstringNo
createdAtstring(date-time)No

Example

cURL
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"
GET/v1/ledger/certificates

List certificates

Parameters

ParameterInTypeRequiredDescription
skipqueryintegerNo
takequeryintegerNo

Responses

200List of certificates

Example

cURL
curl -X GET "https://api.bedrockledger.com/v1/ledger/certificates" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: bk_live_your_api_key"
GET/v1/ledger/certificates/{certificateId}/url

Get certificate URL

Parameters

ParameterInTypeRequiredDescription
certificateIdpathstringYes

Responses

200Certificate download URL
FieldTypeRequiredDescription
urlstring(uri)No
expiresAtstring(date-time)No

Example

cURL
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"
POST/v1/ledger/certificates/{certificateId}/verify-chain

Verify certificate chain

Parameters

ParameterInTypeRequiredDescription
certificateIdpathstringYes

Responses

200Certificate chain verification result
FieldTypeRequiredDescription
isValidbooleanNo
chainobject[]No

Example

cURL
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.

POST/v1/principal/jobs

Submit job

Request body

FieldTypeRequiredDescription
descriptionstringYes
dataobjectYes

Responses

201Job created
FieldTypeRequiredDescription
idstringNo
firmIdstringNo
descriptionstringNo
dataobjectNo
statusstringNo
assignedTostringNo
createdAtstring(date-time)No
updatedAtstring(date-time)No

Example

cURL
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": {}
  }'
GET/v1/principal/jobs

List jobs

Parameters

ParameterInTypeRequiredDescription
skipqueryintegerNo
takequeryintegerNo
statusquerystringNo

Responses

200List of jobs

Example

cURL
curl -X GET "https://api.bedrockledger.com/v1/principal/jobs" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: bk_live_your_api_key"
GET/v1/principal/jobs/{jobId}

Get job

Parameters

ParameterInTypeRequiredDescription
jobIdpathstringYes

Responses

200Job details
FieldTypeRequiredDescription
idstringNo
firmIdstringNo
descriptionstringNo
dataobjectNo
statusstringNo
assignedTostringNo
createdAtstring(date-time)No
updatedAtstring(date-time)No

Example

cURL
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.

POST/v1/public/certificates/verify

Verify certificate

Request body

FieldTypeRequiredDescription
certificateIdstringYes

Responses

200Certificate verification result
FieldTypeRequiredDescription
isValidbooleanNo
certificateHashstringNo
issuedAtstring(date-time)No

Example

cURL
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.