Hold Service XRPC Endpoints#
This document lists all XRPC endpoints implemented in the Hold service (pkg/hold/).
PDS Endpoints (pkg/hold/pds/xrpc.go)#
Public (No Auth Required)#
| Endpoint |
Method |
Description |
/xrpc/_health |
GET |
Health check |
/xrpc/com.atproto.server.describeServer |
GET |
Server metadata |
/xrpc/com.atproto.repo.describeRepo |
GET |
Repository information |
/xrpc/com.atproto.repo.getRecord |
GET |
Retrieve a single record |
/xrpc/com.atproto.repo.listRecords |
GET |
List records in a collection (paginated) |
/xrpc/com.atproto.sync.listRepos |
GET |
List all repositories |
/xrpc/com.atproto.sync.getRecord |
GET |
Get record as CAR file |
/xrpc/com.atproto.sync.getRepo |
GET |
Full repository as CAR file |
/xrpc/com.atproto.sync.getRepoStatus |
GET |
Repository hosting status |
/xrpc/com.atproto.sync.subscribeRepos |
GET |
WebSocket firehose |
/xrpc/com.atproto.identity.resolveHandle |
GET |
Resolve handle to DID |
/xrpc/app.bsky.actor.getProfile |
GET |
Get actor profile |
/xrpc/app.bsky.actor.getProfiles |
GET |
Get multiple profiles |
/.well-known/did.json |
GET |
DID document |
/.well-known/atproto-did |
GET |
DID for handle resolution |
Conditional Auth (based on captain.public)#
| Endpoint |
Method |
Description |
/xrpc/com.atproto.sync.getBlob |
GET/HEAD |
Get blob (routes OCI vs ATProto) |
Owner/Crew Admin Required#
| Endpoint |
Method |
Description |
/xrpc/com.atproto.repo.deleteRecord |
POST |
Delete a record |
/xrpc/com.atproto.repo.uploadBlob |
POST |
Upload ATProto blob |
DPoP Auth Required#
| Endpoint |
Method |
Description |
/xrpc/io.atcr.hold.requestCrew |
POST |
Request crew membership |
OCI Multipart Upload Endpoints (pkg/hold/oci/xrpc.go)#
All require blob:write permission via service token:
| Endpoint |
Method |
Description |
/xrpc/io.atcr.hold.initiateUpload |
POST |
Start multipart upload |
/xrpc/io.atcr.hold.getPartUploadUrl |
POST |
Get presigned URL for part |
/xrpc/io.atcr.hold.uploadPart |
PUT |
Direct buffered part upload |
/xrpc/io.atcr.hold.completeUpload |
POST |
Finalize multipart upload |
/xrpc/io.atcr.hold.abortUpload |
POST |
Cancel multipart upload |
/xrpc/io.atcr.hold.notifyManifest |
POST |
Notify manifest push (creates layer records + optional Bluesky post) |
Standard ATProto Endpoints (excluding io.atcr.hold.*)#
| Endpoint |
| /xrpc/_health |
| /xrpc/com.atproto.server.describeServer |
| /xrpc/com.atproto.repo.describeRepo |
| /xrpc/com.atproto.repo.getRecord |
| /xrpc/com.atproto.repo.listRecords |
| /xrpc/com.atproto.repo.deleteRecord |
| /xrpc/com.atproto.repo.uploadBlob |
| /xrpc/com.atproto.sync.listRepos |
| /xrpc/com.atproto.sync.getRecord |
| /xrpc/com.atproto.sync.getRepo |
| /xrpc/com.atproto.sync.getRepoStatus |
| /xrpc/com.atproto.sync.getBlob |
| /xrpc/com.atproto.sync.subscribeRepos |
| /xrpc/com.atproto.identity.resolveHandle |
| /xrpc/app.bsky.actor.getProfile |
| /xrpc/app.bsky.actor.getProfiles |
| /.well-known/did.json |
| /.well-known/atproto-did |