Base URL
https://api.morphr.link/v1
A JSON REST API with a published OpenAPI spec. Every route below is versioned under /v1.
https://api.morphr.link/v1
Bearer token. Send the session JWT from the auth service as Authorization: Bearer <token>.
/open/docs for the browser, /open/openapi for the machine.
Links live inside a workspace. Pass the workspace id in the path.
curl -X POST https://api.morphr.link/v1/workspaces/$WORKSPACE_ID/links \
-H "Authorization: Bearer $MORPHR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"domain_id": "dom_1a2b3c",
"slug": "spring-launch",
"target_url": "https://example.com/spring"
}'Workspace membership decides what a token can do. An editor creates, updates and deletes links; a viewer reads them and gets 403 on writes. A link id from another workspace returns 404, not 403 — workspaces don't leak.
Authenticated routes version together under one prefix, so a future /v2 doesn't move routes piecemeal. The spec at /open is deliberately unversioned: it always describes what is live.