Public Profile Resolution

GET /u/{handle}

Retrieve a user's public profile. Supports content negotiation via Accept header or ?format query parameter.

HTML response (default)

curl https://api.boxowl.me/u/yourname \
  -H "Accept: text/html"

Returns a styled HTML profile card with identity, public profiles, and injected custom CSS.

JSON response

curl https://api.boxowl.me/u/yourname?format=json

Response 200 OK:

{
  "handle": "yourname",
  "displayName": "Ali",
  "firstName": "Alice",
  "preferredName": "Ali",
  "socialLinks": [
    {
      "platform": "github",
      "url": "https://github.com/yourname"
    }
  ],
  "links": [],
  "didByHandle": "did:web:boxowl.me/user:yourname"
}

Only fields marked Public in the user's vault are included. If the handle does not exist, returns 404 Not Found.

Profile CSS Management

Custom CSS for the public profile page is managed through the vault endpoints:

See the Vault Endpoints page for curl examples.

did:web Discovery

GET /.well-known/did.json

Returns the domain-level DID document for did:web:boxowl.me.

curl https://api.boxowl.me/.well-known/did.json

Response 200 OK:

{
  "handle": "yourname",
  "displayName": "Ali",
  "firstName": "Alice",
  "preferredName": "Ali",
  "socialLinks": [
    {
      "platform": "github",
      "url": "https://github.com/yourname"
    }
  ],
  "links": [],
  "didByHandle": "did:web:boxowl.me/user:yourname"
}

User DID Resolution

GET /did/{handle}

Resolve a user's DID document by handle.

curl https://api.boxowl.me/did/yourname

Response 200 OK:

{
  "handle": "yourname",
  "displayName": "Ali",
  "firstName": "Alice",
  "preferredName": "Ali",
  "socialLinks": [
    {
      "platform": "github",
      "url": "https://github.com/yourname"
    }
  ],
  "links": [],
  "didByHandle": "did:web:boxowl.me/user:yourname"
}

Keys are generated lazily on first resolution and persisted. W3C DID Core 1.0 compliant.

← Back to API Reference