Sign in

Local development

Use 127.0.0.1 (not localhost) so sign-in redirects work.

API Explorer

at.fund API endpoints — documented and testable inline.

Public

No authentication required

GET/api/health

Health check — confirms the server is reachable.

GET/api/auth/check

Returns current session validity. { valid: bool, did: string | null }

GET/api/steward

Thin resolution — identity + funding only. No capability discovery or transitive dependency resolution. Use /api/entry for the full pipeline.

GET/api/entry

Full vertical resolution for a single URI — identity → funding → capabilities → dependencies. Returns { entry: StewardEntry, referenced: StewardEntry[] }.

Use this to test PDS catalog entries. Try: blacksky.app · eurosky.social · tngl.sh · roomy.chat

Authenticated

Requires an active session — sign in via the navbar first

GET/api/lexiconsauth

Non-streaming repo scan for the signed-in user. Accepts optional extra steward URIs to append.

GET/api/lexicons/streamauthstream

Streaming NDJSON scan. Each newline-delimited JSON object is a pipeline event: meta, status, entry, referenced, warning, done.

POST/api/lexiconsauth

Repo scan with self-reported steward URIs supplied in the request body.

POST/api/endorseauth

Create a fund.at.endorse record on your PDS. Idempotent — endorsing the same URI twice is a no-op.

DELETE/api/endorseauth

Remove a fund.at.endorse record from your PDS.

POST/api/setupauth

Publish fund.at records to your PDS — writes fund.at.contribute and/or fund.at.dependency records.

Admin

Requires admin handle

POST/api/admin/pds-platformsadmin

Fingerprint PDS hosts via com.atproto.server.describeServer. Detects platform (atproto, picopds, nginx, …). Returns summary + per-host fingerprints.