social.coves.aggregator.register

coves.social

Documentation

Register an existing aggregator DID with this Coves instance. Aggregators must first create their own DID via PLC directory, then call this endpoint to register. Domain ownership is verified via .well-known/atproto-did file.

main procedure

Register an existing aggregator DID with this Coves instance. Aggregators must first create their own DID via PLC directory, then call this endpoint to register. Domain ownership is verified via .well-known/atproto-did file.

Input

Encodingapplication/json
did stringdid Required

DID of the aggregator (did:plc or did:web format)

domain string Required

Hostname where the aggregator is hosted, without scheme (e.g., 'rss-bot.example.com'). Must serve a .well-known/atproto-did file containing the DID.

maxLength: 253 bytes

Output

Encodingapplication/json
did stringdid Required

DID of the registered aggregator

handle string Required

Handle extracted from DID document

message string Optional

Success message with next steps

Errors

InvalidDID DID format is invalid or not did:plc or did:web format
DomainVerificationFailed Could not verify domain ownership via .well-known/atproto-did or DID mismatch
AlreadyRegistered This aggregator DID is already registered with this instance
DIDResolutionFailed Could not resolve DID document to extract handle and PDS URL
RegistrationFailed Internal server error occurred during registration
Try It

Requests are sent directly from your browser. Some servers may block requests due to CORS.

Base URL for XRPC calls (e.g., https://bsky.social)
Enter valid JSON for the request body
View raw schema
{
  "type": "procedure",
  "input": {
    "schema": {
      "type": "object",
      "required": [
        "did",
        "domain"
      ],
      "properties": {
        "did": {
          "type": "string",
          "format": "did",
          "description": "DID of the aggregator (did:plc or did:web format)"
        },
        "domain": {
          "type": "string",
          "maxLength": 253,
          "description": "Hostname where the aggregator is hosted, without scheme (e.g., 'rss-bot.example.com'). Must serve a .well-known/atproto-did file containing the DID."
        }
      }
    },
    "encoding": "application/json"
  },
  "errors": [
    {
      "name": "InvalidDID",
      "description": "DID format is invalid or not did:plc or did:web format"
    },
    {
      "name": "DomainVerificationFailed",
      "description": "Could not verify domain ownership via .well-known/atproto-did or DID mismatch"
    },
    {
      "name": "AlreadyRegistered",
      "description": "This aggregator DID is already registered with this instance"
    },
    {
      "name": "DIDResolutionFailed",
      "description": "Could not resolve DID document to extract handle and PDS URL"
    },
    {
      "name": "RegistrationFailed",
      "description": "Internal server error occurred during registration"
    }
  ],
  "output": {
    "schema": {
      "type": "object",
      "required": [
        "did",
        "handle"
      ],
      "properties": {
        "did": {
          "type": "string",
          "format": "did",
          "description": "DID of the registered aggregator"
        },
        "handle": {
          "type": "string",
          "maxLength": 512,
          "description": "Handle extracted from DID document"
        },
        "message": {
          "type": "string",
          "maxLength": 1000,
          "description": "Success message with next steps"
        }
      }
    },
    "encoding": "application/json"
  },
  "description": "Register an existing aggregator DID with this Coves instance. Aggregators must first create their own DID via PLC directory, then call this endpoint to register. Domain ownership is verified via .well-known/atproto-did file."
}

Lexicon Garden

@