Genesis-generated links
Request a short-lived opaque onboarding URL through the link-generation API.
Create a link
Call the endpoint from your backend, then redirect the member to the returned URL.
curl -i -X POST https://forum.genesistudio.com/api/integrations/link \
-H "Authorization: Bearer $FORUM_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: onboarding-user-324234-v1" \
-d '{
"uuid": "external-user-324234",
"username": "reader123",
"email": "reader@example.com",
"destination": "/novels/memorize/discussion"
}'
Request fields
| Field | Required | Rules |
|---|---|---|
uuid | Yes | Stable external subject, at most 255 characters |
username | No | Proposed display name, at most 50 characters |
email | No | Valid email, at most 320 characters |
destination | No | Safe internal Forum path |
The request must be JSON and no larger than 16 KB.
Response
A successful request returns 201 Created:
{
"url": "https://forum.genesistudio.com/link?id=gfo_opaque_value",
"expiresAt": "2026-07-28T12:10:00.000Z"
}
The link expires after 10 minutes and is consumed by the final decision. Treat the complete URL as sensitive and do not log it.
Redirecting the member
Use an HTTP redirect or a clear user action to navigate to the exact returned URL. Do not parse, rewrite, or append data to the opaque id. If the link expires before the member finishes, request a new link with a new idempotency key.