Skip to main content
POST
Submit an AllTrack affiliation for a workspace user
This endpoint requires authentication. Include your Bearer token in the Authorization header.

Description

POST /writer/by-user//alltrack/affiliation Description: Applies for AllTrack affiliation on behalf of one workspace user. Royalti finds the writer linked to the user, or creates one from the legal first and last name in the request (role CA, worldwide territory), then submits the application exactly as POST /writer/{id}/alltrack/affiliation does. The same checks apply: age 13 or over, no other PRO declared, terms accepted, and one live application per writer. Returns 201 with the same body as the GET. If the writer already has a live application, returns 409 with that application in the body. Limited to 5 requests per user per hour (429, with Retry-After). Authorization:
  • Required role: admin or higher
  • API keys: a key scoped to publishing:affiliation is accepted. These two by-user routes are the only routes that scope reaches.
  • Requires the publisher capability enabled with its alltrack feature on
  • Environment kill-switch: ALLTRACK_AFFILIATION_ENABLED (503 if off)
Method: POST

Code Examples

Authorizations

Authorization
string
header
required

JWT Authorization header using the Bearer scheme. Format: "Bearer {token}"

Path Parameters

tenantUserId
string<uuid>
required

The workspace user (TenantUser) id

Body

application/json
firstName
string
required

Legal first name. Also used for a new writer.

Maximum string length: 45
Example:

"Ada"

lastName
string
required

Legal last name. Also used for a new writer.

Maximum string length: 45
Example:

"Obi"

email
string<email>
required
Example:

"ada.obi@example.com"

phone
string
required

Full international number, including the country code

Example:

"+2348012345678"

dateOfBirth
string<date>
required
Example:

"1995-06-15"

otherProDeclared
enum<boolean>
required
Available options:
false
Example:

false

tosAcceptedAt
string<date-time>
required
Example:

"2026-10-01T10:00:00Z"

address
object
required
middleName
string | null
Maximum string length: 45
Example:

null

stageName
string | null
Example:

"Ada O"

taxId
string | null
Example:

null

Response

Application submitted

writer
object | null
required
affiliation
object | null
required