---
title: "Enroll in the affiliate program"
method: POST
path: "/affiliate/enroll/"
tags: ["affiliate"]
---

# Enroll in the affiliate program

`POST /affiliate/enroll/`

## Request

- Base URL: `https://api.getoneprofile.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.getoneprofile.ai/affiliate/enroll/`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

Enroll the caller's workspace, idempotently: enrolling twice returns the existing profile. Open self-serve: the program's gates live at payout, not at the door. Requires a signed-in user rather than an API key, because enrollment records who the affiliate is.

## Request body

- AffiliateEnrollRequestSchema: The one thing enrollment asks for: what to call the affiliate.
  - `display_name` string, required: The name shown to referred users in welcome copy.

## Response `201`

Successful Response

- AffiliateProfileReadSchema: The caller's own standing in the affiliate program.
  - `contact_email` string, required
  - `created_at` string, date-time, required
  - `display_name` string, required
  - `id` string, uuid, required
  - `identity_verified_at` string, date-time, nullable, required
  - `paypal_email` string, nullable, required
  - `paypal_email_confirmed_at` string, date-time, nullable, required
  - `status` 'active' | 'suspended' | 'banned', required: Whether an affiliate may earn and be paid.

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `422`: Invalid request made to the API.
- `500`: Internal server error.
- `502`: Bad gateway error.
- `503`: Service unavailable.

---

[API](https://skmtc.dev/getoneprofile/apis/api-reference-oneprofile.md) · [All operations](https://skmtc.dev/getoneprofile/apis/api-reference-oneprofile/llms.txt) · [OpenAPI document](https://skmtc.dev/getoneprofile/apis/api-reference-oneprofile/revisions/4a6bd71e3f02?raw)
