POST /api/v2/storefront/join-links
Mints a join link for a storefront your organization owns. Advertisers who sign up through the link become sponsored buyers scoped to that storefront. The approvalPolicy you choose here decides whether those signups are admitted automatically or held for your review.
Request
Parameters
| Field | Type | Required | Notes |
|---|---|---|---|
storefrontId | integer | Yes | The storefront_config.id the joining buyer is scoped to. Must belong to your organization. |
approvalPolicy | enum | No | auto_approve, manual_approve, invite_only, or closed. Default manual_approve. |
slug | string | No | Custom handle (2–64 chars, lowercase letters, numbers, hyphens). Derived from the storefront name when omitted. |
expiresAt | string | No | ISO-8601 expiry. Omit for a link that never expires. |
maxUses | integer | No | Cap on total successful signups (positive). Omit for unlimited. |
Response
201 Created with the new JoinLink:
joinPath (/join/{slug}); your UI or agent prepends its own origin to form the full URL.
Errors
400 VALIDATION_ERROR— missingstorefrontId, or an invalidslug,approvalPolicy,expiresAt, ormaxUses.401 UNAUTHORIZED— missing or invalid API key.403 CUSTOMER_ROLE_DENIED— the API key is not a seller account; only sellers manage join links.403 ACCESS_DENIED— thestorefrontIdbelongs to another organization.404 NOT_FOUND— no storefront with thisidexists.409 CONFLICT— an active link with thatslugalready exists. Choose a different slug or disable the existing one.
Related
Join-link tasks
All operations
List join links
Every active link
Sponsored buyers
Manage the buyers who joined
Errors
Shared error contract