Resend an artist invitation
Re-issues a pending artist invitation: mints a fresh claim token, resets the 7-day expiry, and re-emails the artist. Requires an Idempotency-Key header (the email is an irreversible side effect): a retry with the same key replays the original result for 24h instead of emailing again.
Re-issues a pending artist invitation: mints a fresh claim token, resets the 7-day expiry, and re-emails the artist. Requires an Idempotency-Key header (the email is an irreversible side effect): a retry with the same key replays the original result for 24h instead of emailing again.
Authorization
bearerAuth artists:writeA gallery API key, sent as Authorization: Bearer gpk_… (or the x-api-key header).
In: header
Scope: artists:write
Path Parameters
Query Parameters
Preview this operation without committing it. When true, the request is authenticated, scoped, and validated, but no side effect runs — no write, no idempotency claim, no audit event, no outbound delivery. The response is HTTP 200 with an X-Dry-Run: true header and a body of { "dry_run": true }, plus an effect object describing what the real call would change when this operation can resolve one.
Header Parameters
Required — this write has an irreversible side effect. Send a unique key per logical operation; a retry with the same key replays the original success for 14 days instead of re-running it. Reusing a key with a different body returns 400. Omitting the header returns 400.
Response Body
application/json
application/json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
{ "dry_run": true, "effect": { "summary": "string", "count": 0, "targets": [ { "type": "string", "id": "string", "label": "string" } ], "amount": { "minor": -9007199254740991, "currency": "str" }, "details": { "property1": "string", "property2": "string" }, "irreversible": true }}{ "id": "string", "artist_id": "string", "email": "string", "status": "pending", "share_profile": true, "expires_at": "string", "created_at": "string"}{ "type": "../dictionary", "title": "string", "status": 0, "detail": "string", "code": "string", "retry": "permanent", "details": null}{ "type": "../dictionary", "title": "string", "status": 0, "detail": "string", "code": "string", "retry": "permanent", "details": null}{ "type": "../dictionary", "title": "string", "status": 0, "detail": "string", "code": "string", "retry": "permanent", "details": null}{ "type": "../dictionary", "title": "string", "status": 0, "detail": "string", "code": "string", "retry": "permanent", "details": null}{ "type": "../dictionary", "title": "string", "status": 0, "detail": "string", "code": "string", "retry": "permanent", "details": null}{ "type": "../dictionary", "title": "string", "status": 0, "detail": "string", "code": "string", "retry": "permanent", "details": null}List artist invitations GET
Lists the gallery's artist studio-claim invitations, newest first, with cursor pagination. Filter with ?status=pending or ?artist_id=artist_….
Create an artist POST
Adds an artist to the gallery's roster — the deliberate alternative to the silent mint when a name is typed into the artwork form. `name` is required; the profile fields are optional. A duplicate name (case-insensitive) is rejected.