Which workspace a bio page is in, for a link that names no workspace
For an old link (`/links/bio/<id>`, an email from before workspace URLs), so the app can send the tab to `/links/w/<slug>/bio/<id>`. It works across the caller's workspaces: the token may be for any of them. It answers only when Links would let the caller read the bio page in its own workspace: they are a member with a product seat, Links is on there, and they own the page (bio pages are owner-only). Every other case gets the same 404, byte for byte: no such bio page, one the caller can't read, Links turned off there, a record from before workspaces, a malformed id, or a request made with an API key or an OAuth grant (those are bound to one workspace by consent). Both answers are `Cache-Control: no-store`. Rate-limited per user and per client IP (the edge's CF-Connecting-IP), one limit across the three locate routes.
View as MarkdownAuthorization
bearer In: header
Path Parameters
Response Body
application/json
application/json
application/json
curl -X GET "https://example.com/v1/bio/string/locate"{ "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9", "slug": "string"}Delete a bio page
Permanently deletes the page, its items, and any avatar/background media it owns in storage. Requires ?confirm=true.
Upload the page's avatar or background image (multipart, "file" field, ≤5MB)
multipart/form-data upload to R2 (image/png, image/jpeg, image/webp, or image/gif). Sets theme.avatarUrl or theme.bgImageUrl depending on kind. If that field was already set, the previously-uploaded image is deleted from storage — replacing an image never leaves an orphaned object behind. 400 when kind is invalid, the file is missing, or the content type isn't one of the allowed image types; 413 when the file is larger than 5MB; 503 when image storage isn't configured for this environment.