Ban Partner
Ban a partner from the Project, with a reason: its enrollments end, its pending applications are declined, and its later applications are declined at once. The partner is not told. A write applies at once. Needs the partners:write key permission.
Authorization
WorkspaceApiKey Workspace-owned Better Auth API key of one environment (Sandbox or Live); it authorizes the Projects of that environment in its Workspace. A Project of the other environment returns 403 ENVIRONMENT_MISMATCH. Never expose it in the browser.
In: header
Path Parameters
\S1 <= length <= 512Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/partners/string/ban" \ -H "Content-Type: application/json" \ -d '{ "reason": "fraud", "projectId": "string" }'{ "success": true, "data": { "partnerBanId": "string", "partnerId": "string" }}Approve Partner Application POST
Approve a partner application; the partner joins the Program. A write applies at once. Needs the partners:write key permission.
Capture Handle POST
The landing script calls this route from the browser. It exchanges the `refref_handoff` of a referral click for the handle of the browser, and keeps the handle in a first-party cookie. There is no API key: the handoff is the credential, and it is valid for 15 minutes. `handle` is the handle that the browser holds, if any; an unknown handle, or a handle of another Project, counts as absent. A click goes to one handle, once. An open handle that the browser holds takes the click; a handle that is already identified is replaced by a new handle. A retry of the same handoff without a handle returns the handle that took the click. The response is not cached (`Cache-Control: no-store`). A handoff that is not valid, or has expired, gets 400.