---
title: "Add a product partner"
method: POST
path: "/v3/products/{product_id}/partners"
tags: ["Business Products"]
---

# Add a product partner

`POST /v3/products/{product_id}/partners`

## Request

- Base URL: `https://api.scalev.com`
- URL: `https://api.scalev.com/v3/products/{product_id}/partners`
- Auth: one of:
  - HTTP bearer
  - API key in header `authorization`

Requires the `product:update` scope. Creates a new product partner.

## Request body

- CreatePartnerRequest
  - `partner_unique_id` string, required: Partner Unique ID

## Response `200`

Product partner created successfully

- ProductPartner: A partner associated with a product
  - `affiliate_pro_domains` object[]: Approved affiliate_pro custom domains for this partnership
    - `business_id` integer: Business ID that owns the custom domain
    - `full_url` string: Full URL of the custom domain
    - `id` integer: Unique identifier of the custom domain
  - `affiliate_pro_links` object[]: Affiliate Pro links for partners (product + checkout, includes ap=<store_short_unique_id>)
    - `checkout_url` string: Affiliate Pro checkout page URL
    - `domain` string: Custom domain for the affiliate pro link
    - `product_url` string: Affiliate Pro product page URL
  - `affiliate_status` string: Status of the partnership (pending, approved, rejected, banned)
  - `approved_at` string, date-time, nullable: Timestamp when partnership was approved
  - `created_at` string, date-time: Timestamp when the product partner was created
  - `custom_domains` object[]: List of custom domains where the product page can be viewed
    - `business_id` integer: Business ID that owns the custom domain
    - `full_url` string: Full URL of the custom domain
    - `id` integer: Unique identifier of the custom domain
  - `id` integer: Unique identifier of the product partner
  - `message_to_product_owner` string, nullable: Message from partner when requesting partnership
  - `partner` object
    - `account_holder` string: Name of the account holder
    - `email` string, email: Email address of the business
    - `id` integer: Business ID
    - `is_banned` boolean: Is the business banned?
    - `logo` string, uri: URL to the business logo
    - `unique_id` string: Unique identifier for the business
    - `username` string: Username of the business
  - `partnership_type` string: Type of partnership (affiliate, affiliate_pro, or reseller)
  - `rejected_at` string, date-time, nullable: Timestamp when partnership was rejected
  - `requested_at` string, date-time, nullable: Timestamp when partnership was requested
  - `store_id` integer, nullable: Store ID assigned for affiliate_pro routing

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found

---

[API](https://skmtc.dev/scalev/apis/nexus-commerce-api.md) - [All operations](https://skmtc.dev/scalev/apis/nexus-commerce-api/llms.txt) - [OpenAPI document](https://skmtc.dev/scalev/apis/nexus-commerce-api/revisions/6b9152f04622?raw)
