SalesOS

Partners

Partner management

List

GET
/v1/partners

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Query Parameters

statusRequiredstring
tierRequiredstring
typeRequiredstring
searchRequiredstring
curl -X GET "https://api.salesos.org/v1/partners?status=%3Cstring%3E&tier=%3Cstring%3E&type=%3Cstring%3E&search=%3Cstring%3E" \
  -H "Authorization: Bearer <token>"

[
  {}
]

Create

POST
/v1/partners

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Request Body

application/jsonRequired
companyNameRequiredstring
websitestring
typestring
Value in: "RESELLER" | "REFERRAL" | "TECHNOLOGY" | "SYSTEM_INTEGRATOR" | "OEM" | "AFFILIATE"
tierstring
Value in: "REGISTERED" | "SILVER" | "GOLD" | "PLATINUM"
statusstring
Value in: "SUSPENDED" | "PENDING" | "PROSPECT" | "APPROVED" | "TERMINATED"
commissionRatenumber
Minimum: 0Maximum: 100
portalEnabledboolean

Header Parameters

Idempotency-Keystring

Unique key (a UUID is ideal) that makes this write safe to retry for 24 hours: a retry with the same body replays the original response (Idempotent-Replayed: true); the same key with a different body is a 409.

Maximum length: 255
curl -X POST "https://api.salesos.org/v1/partners" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "companyName": "string",
    "website": "string",
    "type": "RESELLER",
    "tier": "REGISTERED",
    "status": "SUSPENDED",
    "commissionRate": 100,
    "portalEnabled": true
  }'

{}

Get stats

GET
/v1/partners/stats

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

curl -X GET "https://api.salesos.org/v1/partners/stats" \
  -H "Authorization: Bearer <token>"

Find one

GET
/v1/partners/{id}

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Path Parameters

idRequiredstring
curl -X GET "https://api.salesos.org/v1/partners/<string>" \
  -H "Authorization: Bearer <token>"

{}

Update

PATCH
/v1/partners/{id}

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Request Body

application/jsonRequired
companyNamestring
websitestring
typestring
Value in: "RESELLER" | "REFERRAL" | "TECHNOLOGY" | "SYSTEM_INTEGRATOR" | "OEM" | "AFFILIATE"
tierstring
Value in: "REGISTERED" | "SILVER" | "GOLD" | "PLATINUM"
statusstring
Value in: "SUSPENDED" | "PENDING" | "PROSPECT" | "APPROVED" | "TERMINATED"
commissionRatenumber
Minimum: 0Maximum: 100
portalEnabledboolean

Path Parameters

idRequiredstring

Header Parameters

Idempotency-Keystring

Unique key (a UUID is ideal) that makes this write safe to retry for 24 hours: a retry with the same body replays the original response (Idempotent-Replayed: true); the same key with a different body is a 409.

Maximum length: 255
curl -X PATCH "https://api.salesos.org/v1/partners/<string>" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "companyName": "string",
    "website": "string",
    "type": "RESELLER",
    "tier": "REGISTERED",
    "status": "SUSPENDED",
    "commissionRate": 100,
    "portalEnabled": true
  }'

{}

Delete

DELETE
/v1/partners/{id}

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Path Parameters

idRequiredstring
curl -X DELETE "https://api.salesos.org/v1/partners/<string>" \
  -H "Authorization: Bearer <token>"

Get partner users

GET
/v1/partners/{id}/users

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Path Parameters

idRequiredstring
curl -X GET "https://api.salesos.org/v1/partners/<string>/users" \
  -H "Authorization: Bearer <token>"

[
  {}
]

Add partner user

POST
/v1/partners/{id}/users

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Request Body

application/jsonRequired
userIdRequiredstring
rolestring
Value in: "ADMIN" | "MANAGER" | "VIEWER" | "MEMBER"
isPrimaryboolean

Path Parameters

idRequiredstring

Header Parameters

Idempotency-Keystring

Unique key (a UUID is ideal) that makes this write safe to retry for 24 hours: a retry with the same body replays the original response (Idempotent-Replayed: true); the same key with a different body is a 409.

Maximum length: 255
curl -X POST "https://api.salesos.org/v1/partners/<string>/users" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "userId": "string",
    "role": "ADMIN",
    "isPrimary": true
  }'

{}

Invite partner user

POST
/v1/partners/{id}/users/invite

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Request Body

application/jsonRequired
emailRequiredstring
namestring
rolestring
Value in: "ADMIN" | "MANAGER" | "VIEWER" | "MEMBER"
isPrimaryboolean

Path Parameters

idRequiredstring

Header Parameters

Idempotency-Keystring

Unique key (a UUID is ideal) that makes this write safe to retry for 24 hours: a retry with the same body replays the original response (Idempotent-Replayed: true); the same key with a different body is a 409.

Maximum length: 255
curl -X POST "https://api.salesos.org/v1/partners/<string>/users/invite" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "string",
    "name": "string",
    "role": "ADMIN",
    "isPrimary": true
  }'

Update partner user

PATCH
/v1/partners/{partnerId}/users/{partnerUserId}

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Path Parameters

partnerIdRequiredstring
partnerUserIdRequiredstring

Header Parameters

Idempotency-Keystring

Unique key (a UUID is ideal) that makes this write safe to retry for 24 hours: a retry with the same body replays the original response (Idempotent-Replayed: true); the same key with a different body is a 409.

Maximum length: 255
curl -X PATCH "https://api.salesos.org/v1/partners/<string>/users/<string>" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>"

{}

Remove partner user

DELETE
/v1/partners/{partnerId}/users/{partnerUserId}

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Path Parameters

partnerIdRequiredstring
partnerUserIdRequiredstring
curl -X DELETE "https://api.salesos.org/v1/partners/<string>/users/<string>" \
  -H "Authorization: Bearer <token>"

Get partner accounts

GET
/v1/partners/{id}/accounts

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Path Parameters

idRequiredstring
curl -X GET "https://api.salesos.org/v1/partners/<string>/accounts" \
  -H "Authorization: Bearer <token>"

[
  {}
]

Assign account

POST
/v1/partners/{id}/accounts

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Request Body

application/jsonRequired
accountIdRequiredstring
isExclusiveboolean

Path Parameters

idRequiredstring

Header Parameters

Idempotency-Keystring

Unique key (a UUID is ideal) that makes this write safe to retry for 24 hours: a retry with the same body replays the original response (Idempotent-Replayed: true); the same key with a different body is a 409.

Maximum length: 255
curl -X POST "https://api.salesos.org/v1/partners/<string>/accounts" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "accountId": "string",
    "isExclusive": true
  }'

{}

Unassign account

DELETE
/v1/partners/{partnerId}/accounts/{accountId}

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Path Parameters

partnerIdRequiredstring
accountIdRequiredstring
curl -X DELETE "https://api.salesos.org/v1/partners/<string>/accounts/<string>" \
  -H "Authorization: Bearer <token>"

Get partner registrations

GET
/v1/partners/{id}/registrations

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Path Parameters

idRequiredstring

Query Parameters

statusRequiredstring
curl -X GET "https://api.salesos.org/v1/partners/<string>/registrations?status=%3Cstring%3E" \
  -H "Authorization: Bearer <token>"

[
  {}
]

Approve registration

POST
/v1/partners/{partnerId}/registrations/{registrationId}/approve

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Request Body

application/jsonRequired

Path Parameters

partnerIdRequiredstring
registrationIdRequiredstring

Header Parameters

Idempotency-Keystring

Unique key (a UUID is ideal) that makes this write safe to retry for 24 hours: a retry with the same body replays the original response (Idempotent-Replayed: true); the same key with a different body is a 409.

Maximum length: 255
curl -X POST "https://api.salesos.org/v1/partners/<string>/registrations/<string>/approve" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'

{}

Reject registration

POST
/v1/partners/{partnerId}/registrations/{registrationId}/reject

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Request Body

application/jsonRequired

Path Parameters

partnerIdRequiredstring
registrationIdRequiredstring

Header Parameters

Idempotency-Keystring

Unique key (a UUID is ideal) that makes this write safe to retry for 24 hours: a retry with the same body replays the original response (Idempotent-Replayed: true); the same key with a different body is a 409.

Maximum length: 255
curl -X POST "https://api.salesos.org/v1/partners/<string>/registrations/<string>/reject" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'

Convert registration

POST
/v1/partners/{partnerId}/registrations/{registrationId}/convert

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Path Parameters

partnerIdRequiredstring
registrationIdRequiredstring

Header Parameters

Idempotency-Keystring

Unique key (a UUID is ideal) that makes this write safe to retry for 24 hours: a retry with the same body replays the original response (Idempotent-Replayed: true); the same key with a different body is a 409.

Maximum length: 255
curl -X POST "https://api.salesos.org/v1/partners/<string>/registrations/<string>/convert" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>"

{}

Score registration

GET
/v1/partners/{partnerId}/registrations/{registrationId}/ai/score

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Path Parameters

registrationIdRequiredstring
curl -X GET "https://api.salesos.org/v1/partners/{partnerId}/registrations/<string>/ai/score" \
  -H "Authorization: Bearer <token>"

{}

Match partners

GET
/v1/partners/ai/match-partners/{opportunityId}

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Path Parameters

opportunityIdRequiredstring

Query Parameters

limitRequiredstring
curl -X GET "https://api.salesos.org/v1/partners/ai/match-partners/<string>?limit=%3Cstring%3E" \
  -H "Authorization: Bearer <token>"

[
  {}
]

Get partner insights

GET
/v1/partners/{id}/ai/insights

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Path Parameters

idRequiredstring
curl -X GET "https://api.salesos.org/v1/partners/<string>/ai/insights" \
  -H "Authorization: Bearer <token>"

[
  {}
]

Get co selling recommendations

GET
/v1/partners/ai/co-selling

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Query Parameters

minDealSizeRequiredstring
limitRequiredstring
curl -X GET "https://api.salesos.org/v1/partners/ai/co-selling?minDealSize=%3Cstring%3E&limit=%3Cstring%3E" \
  -H "Authorization: Bearer <token>"

[
  {}
]

Process auto approvals

POST
/v1/partners/ai/auto-approve

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Header Parameters

Idempotency-Keystring

Unique key (a UUID is ideal) that makes this write safe to retry for 24 hours: a retry with the same body replays the original response (Idempotent-Replayed: true); the same key with a different body is a 409.

Maximum length: 255
curl -X POST "https://api.salesos.org/v1/partners/ai/auto-approve" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>"