PartnerPortal.io API

To use the PartnerPortal.io API, you will need a valid access token. To obtain this, please use the provided Client ID and Client Secret, going through the standard OAuth 2.0 flow.

/company/{companyId}/resources/{resourceId}/quiz

Authorizations:
OAuth2
path Parameters
resourceId
required
string
companyId
required
string

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "context": {
    },
  • "status": 0
}

/company/{companyId}/resources/{resourceId}/quiz

Authorizations:
OAuth2
path Parameters
resourceId
required
string
companyId
required
string
Request Body schema: application/json
null or number
Array of objects
passingPercent
number

Responses

Request samples

Content type
application/json
{
  • "maxAttempts": { },
  • "questions": [
    ],
  • "passingPercent": 0
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "context": {
    },
  • "status": 0
}

/company/{companyId}/partners/{partnerOrganizationId}/termsAcceptances/{termsAcceptanceId}

Authorizations:
OAuth2
path Parameters
partnerOrganizationId
required
string
termsAcceptanceId
required
string
companyId
required
string

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "context": {
    },
  • "status": 0
}

/company/{companyId}/leads

Authorizations:
OAuth2
path Parameters
companyId
required
string
query Parameters
customFieldValue
string
email
string
limit
string
skip
string
customFieldId
string

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "context": {
    },
  • "status": 0
}

/company/{companyId}/leads

Authorizations:
OAuth2
path Parameters
companyId
required
string
Request Body schema: application/json
lastName
required
string
null or string
null or string
object or null
null or string
null or string
null or string

The lead's Type as the portal labels it. Whether it is required is decided by the portal's Type lead field (the platform lead option) and enforced by each entry point, not here, the same way the other built-in fields work. A lead has no platform when the portal has made the field optional or inactive.

string or null
firstName
required
string
null or string
null or string
null or number
null or string

Responses

Request samples

Content type
application/json
{
  • "lastName": "string",
  • "agentId": { },
  • "notes": { },
  • "customFields": { },
  • "companyName": { },
  • "partnerOrganizationId": { },
  • "platform": { },
  • "closeDate": "2019-08-24T14:15:22Z",
  • "firstName": "string",
  • "phone": { },
  • "websiteUrl": { },
  • "value": { },
  • "email": { }
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "context": {
    },
  • "status": 0
}

/company/{companyId}/bulk/{type}

Authorizations:
OAuth2
path Parameters
type
required
string
companyId
required
string

/company/{companyId}/account/{accountId}/roles

Authorizations:
OAuth2
path Parameters
accountId
required
string
companyId
required
string

/company/{companyId}/account/{accountId}/roles

Authorizations:
OAuth2
path Parameters
accountId
required
string
companyId
required
string

/company/{companyId}/partners/{partnerOrganizationId}/users

Authorizations:
OAuth2
path Parameters
partnerOrganizationId
required
string
companyId
required
string
query Parameters
status
string
email
string
type
string

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "context": {
    },
  • "status": 0
}

/company/{companyId}/partners/{partnerOrganizationId}/users

Authorizations:
OAuth2
path Parameters
partnerOrganizationId
required
string
companyId
required
string
Request Body schema: application/json
firstName
required
string
lastName
required
string
phone
string
email
required
string

Responses

Request samples

Content type
application/json
{
  • "firstName": "string",
  • "lastName": "string",
  • "phone": "string",
  • "email": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "context": {
    },
  • "status": 0
}

/company/{companyId}/partners/{partnerOrganizationId}/termsAcceptances

Authorizations:
OAuth2
path Parameters
partnerOrganizationId
required
string
companyId
required
string

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "context": {
    },
  • "status": 0
}

/company/{companyId}/assets/slots/{slotId}/complete

Authorizations:
OAuth2
path Parameters
slotId
required
string
companyId
required
string

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "context": {
    },
  • "status": 0
}

/company/{companyId}/assets/slots

Authorizations:
OAuth2
path Parameters
companyId
required
string
Request Body schema: application/json
fileName
required
string
purpose
required
string
Enum: "attachment" "image"

Responses

Request samples

Content type
application/json
{
  • "fileName": "string",
  • "purpose": "attachment"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "context": {
    },
  • "status": 0
}

/company/{companyId}/partners/{partnerOrganizationId}

Authorizations:
OAuth2
path Parameters
partnerOrganizationId
required
string
companyId
required
string

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "context": {
    },
  • "status": 0
}

/company/{companyId}/announcements

Authorizations:
OAuth2
path Parameters
companyId
required
string
query Parameters
status
string

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "context": {
    },
  • "status": 0
}

/company/{companyId}/announcements

Authorizations:
OAuth2
path Parameters
companyId
required
string
Request Body schema: application/json
pinned
boolean
visibility
string
Enum: "all" "none" "select-partner-groups" "select-partners"
selectedPartnerOrganizationIds
Array of strings
display
boolean
pinnedRank
number
title
required
string
body
required
string

Body HTML conventions (plan D9). The server cleans every body on save and keeps: formatting, headings, lists, tables, links, images with absolute http(s) sources, the allowed style properties, and iframes from the supported video hosts. Anything else is dropped silently, which is why every write returns the stored body. The two editor inserts are plain anchors: a button is <a class="btn btn-primary" href="..."> (or btn-outline-primary), an in-app link is <a href="/leads/register" data-ppio-internal-link="true">.

visibleToTeam
boolean
sendNotifications
boolean
excerpt
string
thumbnailAssetId
string
selectedPartnerGroupIds
Array of strings
showOnAnnouncementsPage
boolean
status
string
Enum: "draft" "published"

Responses

Request samples

Content type
application/json
{
  • "pinned": true,
  • "visibility": "all",
  • "selectedPartnerOrganizationIds": [
    ],
  • "display": true,
  • "pinnedRank": 0,
  • "title": "string",
  • "body": "string",
  • "visibleToTeam": true,
  • "sendNotifications": true,
  • "excerpt": "string",
  • "thumbnailAssetId": "string",
  • "selectedPartnerGroupIds": [
    ],
  • "showOnAnnouncementsPage": true,
  • "status": "draft"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "context": {
    },
  • "status": 0
}

/company/{companyId}/announcements/{announcementId}

Authorizations:
OAuth2
path Parameters
announcementId
required
string
companyId
required
string

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "context": {
    },
  • "status": 0
}

/company/{companyId}/announcements/{announcementId}

Authorizations:
OAuth2
path Parameters
announcementId
required
string
companyId
required
string

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "context": {
    },
  • "status": 0
}

/company/{companyId}/announcements/{announcementId}

Authorizations:
OAuth2
path Parameters
announcementId
required
string
companyId
required
string
Request Body schema: application/json
pinned
boolean
visibility
string
Enum: "all" "none" "select-partner-groups" "select-partners"
selectedPartnerOrganizationIds
Array of strings
display
boolean
pinnedRank
number
title
string
body
string

Body HTML conventions (plan D9). The server cleans every body on save and keeps: formatting, headings, lists, tables, links, images with absolute http(s) sources, the allowed style properties, and iframes from the supported video hosts. Anything else is dropped silently, which is why every write returns the stored body. The two editor inserts are plain anchors: a button is <a class="btn btn-primary" href="..."> (or btn-outline-primary), an in-app link is <a href="/leads/register" data-ppio-internal-link="true">.

visibleToTeam
boolean
sendNotifications
boolean
excerpt
string
null or string
selectedPartnerGroupIds
Array of strings
showOnAnnouncementsPage
boolean
status
string
Enum: "draft" "published"

Responses

Request samples

Content type
application/json
{
  • "pinned": true,
  • "visibility": "all",
  • "selectedPartnerOrganizationIds": [
    ],
  • "display": true,
  • "pinnedRank": 0,
  • "title": "string",
  • "body": "string",
  • "visibleToTeam": true,
  • "sendNotifications": true,
  • "excerpt": "string",
  • "thumbnailAssetId": { },
  • "selectedPartnerGroupIds": [
    ],
  • "showOnAnnouncementsPage": true,
  • "status": "draft"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "context": {
    },
  • "status": 0
}

/company/{companyId}/schema/{object}

Authorizations:
OAuth2
path Parameters
object
required
string
companyId
required
string

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "context": {
    },
  • "status": 0
}

/company/{companyId}/categories/{categoryId}

Authorizations:
OAuth2
path Parameters
categoryId
required
string
companyId
required
string

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "context": {
    },
  • "status": 0
}

/company/{companyId}/categories/{categoryId}

Authorizations:
OAuth2
path Parameters
categoryId
required
string
companyId
required
string

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "context": {
    },
  • "status": 0
}

/company/{companyId}/categories/{categoryId}

Authorizations:
OAuth2
path Parameters
categoryId
required
string
companyId
required
string
Request Body schema: application/json
pinned
boolean
welcomeMessage
string

Body HTML conventions (plan D9). The server cleans every body on save and keeps: formatting, headings, lists, tables, links, images with absolute http(s) sources, the allowed style properties, and iframes from the supported video hosts. Anything else is dropped silently, which is why every write returns the stored body. The two editor inserts are plain anchors: a button is <a class="btn btn-primary" href="..."> (or btn-outline-primary), an in-app link is <a href="/leads/register" data-ppio-internal-link="true">.

pinnedRank
number
groupIds
Array of strings
name
string
description
string
completionMessage
string

Body HTML conventions (plan D9). The server cleans every body on save and keeps: formatting, headings, lists, tables, links, images with absolute http(s) sources, the allowed style properties, and iframes from the supported video hosts. Anything else is dropped silently, which is why every write returns the stored body. The two editor inserts are plain anchors: a button is <a class="btn btn-primary" href="..."> (or btn-outline-primary), an in-app link is <a href="/leads/register" data-ppio-internal-link="true">.

partnerOrganizationIds
Array of strings

Responses

Request samples

Content type
application/json
{
  • "pinned": true,
  • "welcomeMessage": "string",
  • "pinnedRank": 0,
  • "groupIds": [
    ],
  • "name": "string",
  • "description": "string",
  • "completionMessage": "string",
  • "partnerOrganizationIds": [
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "context": {
    },
  • "status": 0
}

/company/{companyId}/leads/{leadId}/comments

Authorizations:
OAuth2
path Parameters
leadId
required
string
companyId
required
string
Request Body schema: application/json
message
required
string

Responses

Request samples

Content type
application/json
{
  • "message": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "context": {
    },
  • "status": 0
}

/company/{companyId}/leads/{leadId}

Authorizations:
OAuth2
path Parameters
leadId
required
string
companyId
required
string

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "context": {
    },
  • "status": 0
}

/company/{companyId}/leads/{leadId}

Authorizations:
OAuth2
path Parameters
leadId
required
string
companyId
required
string
Request Body schema: application/json
lastName
string
null or string
null or string
object or null
null or string
null or string
null or string
null or string

The lead's Type as the portal labels it. Whether it is required is decided by the portal's Type lead field (the platform lead option) and enforced by each entry point, not here, the same way the other built-in fields work. A lead has no platform when the portal has made the field optional or inactive.

string or null
firstName
string
null or string
null or string
null or number
null or string

Responses

Request samples

Content type
application/json
{
  • "lastName": "string",
  • "agentId": { },
  • "notes": { },
  • "customFields": { },
  • "companyName": { },
  • "phaseId": { },
  • "partnerOrganizationId": { },
  • "platform": { },
  • "closeDate": "2019-08-24T14:15:22Z",
  • "firstName": "string",
  • "phone": { },
  • "websiteUrl": { },
  • "value": { },
  • "email": { }
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "context": {
    },
  • "status": 0
}

/company/{companyId}/categories/{categoryId}/lessons/order

Authorizations:
OAuth2
path Parameters
categoryId
required
string
companyId
required
string
Request Body schema: application/json
resourceIds
required
Array of strings

Responses

Request samples

Content type
application/json
{
  • "resourceIds": [
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "context": {
    },
  • "status": 0
}

/company/{companyId}/partners

Authorizations:
OAuth2
path Parameters
companyId
required
string
query Parameters
domain
string
email
string

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "context": {
    },
  • "status": 0
}

/company/{companyId}/partners

Authorizations:
OAuth2
path Parameters
companyId
required
string
Request Body schema: application/json
firstName
required
string
lastName
required
string
phone
string
companyName
required
string
domain
required
string
paypalEmail
string
email
required
string

Responses

Request samples

Content type
application/json
{
  • "firstName": "string",
  • "lastName": "string",
  • "phone": "string",
  • "companyName": "string",
  • "domain": "string",
  • "paypalEmail": "string",
  • "email": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "context": {
    },
  • "status": 0
}

/company/{companyId}/partner/{partnerOrganizationId}/schema/{object}

Authorizations:
OAuth2
path Parameters
partnerOrganizationId
required
string
object
required
string
companyId
required
string

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "context": {
    },
  • "status": 0
}

/company/{companyId}/resources/{resourceId}

Authorizations:
OAuth2
path Parameters
resourceId
required
string
companyId
required
string

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "context": {
    },
  • "status": 0
}

/company/{companyId}/resources/{resourceId}

Authorizations:
OAuth2
path Parameters
resourceId
required
string
companyId
required
string

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "context": {
    },
  • "status": 0
}

/company/{companyId}/resources/{resourceId}

Authorizations:
OAuth2
path Parameters
resourceId
required
string
companyId
required
string
Request Body schema: application/json
categoryIds
Array of strings
pinned
boolean
pinnedRank
number
name
string
attachmentIds
Array of strings
body
string

Body HTML conventions (plan D9). The server cleans every body on save and keeps: formatting, headings, lists, tables, links, images with absolute http(s) sources, the allowed style properties, and iframes from the supported video hosts. Anything else is dropped silently, which is why every write returns the stored body. The two editor inserts are plain anchors: a button is <a class="btn btn-primary" href="..."> (or btn-outline-primary), an in-app link is <a href="/leads/register" data-ppio-internal-link="true">.

excerpt
string
null or string

Responses

Request samples

Content type
application/json
{
  • "categoryIds": [
    ],
  • "pinned": true,
  • "pinnedRank": 0,
  • "name": "string",
  • "attachmentIds": [
    ],
  • "body": "string",
  • "excerpt": "string",
  • "thumbnailAssetId": { }
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "context": {
    },
  • "status": 0
}

/bulk-create-jobs/{bulkCreateJobId}

Authorizations:
OAuth2
path Parameters
bulkCreateJobId
required
string

/company/{companyId}/resources

Authorizations:
OAuth2
path Parameters
companyId
required
string
query Parameters
search
string
categoryId
string

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "context": {
    },
  • "status": 0
}

/company/{companyId}/resources

Authorizations:
OAuth2
path Parameters
companyId
required
string
Request Body schema: application/json
object

The definition sent with a new quiz lesson: questions are required.

categoryIds
required
Array of strings
pinned
boolean
pinnedRank
number
name
required
string
attachmentIds
Array of strings
type
string
Enum: "post" "quiz"
body
string

Body HTML conventions (plan D9). The server cleans every body on save and keeps: formatting, headings, lists, tables, links, images with absolute http(s) sources, the allowed style properties, and iframes from the supported video hosts. Anything else is dropped silently, which is why every write returns the stored body. The two editor inserts are plain anchors: a button is <a class="btn btn-primary" href="..."> (or btn-outline-primary), an in-app link is <a href="/leads/register" data-ppio-internal-link="true">.

excerpt
string
thumbnailAssetId
string

Responses

Request samples

Content type
application/json
{
  • "quiz": {
    },
  • "categoryIds": [
    ],
  • "pinned": true,
  • "pinnedRank": 0,
  • "name": "string",
  • "attachmentIds": [
    ],
  • "type": "post",
  • "body": "string",
  • "excerpt": "string",
  • "thumbnailAssetId": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "context": {
    },
  • "status": 0
}

/company/{companyId}/categories

Authorizations:
OAuth2
path Parameters
companyId
required
string
query Parameters
type
string

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "context": {
    },
  • "status": 0
}

/company/{companyId}/categories

Authorizations:
OAuth2
path Parameters
companyId
required
string
Request Body schema: application/json
pinned
boolean
welcomeMessage
string

Body HTML conventions (plan D9). The server cleans every body on save and keeps: formatting, headings, lists, tables, links, images with absolute http(s) sources, the allowed style properties, and iframes from the supported video hosts. Anything else is dropped silently, which is why every write returns the stored body. The two editor inserts are plain anchors: a button is <a class="btn btn-primary" href="..."> (or btn-outline-primary), an in-app link is <a href="/leads/register" data-ppio-internal-link="true">.

pinnedRank
number
groupIds
Array of strings
name
required
string
description
string
completionMessage
string

Body HTML conventions (plan D9). The server cleans every body on save and keeps: formatting, headings, lists, tables, links, images with absolute http(s) sources, the allowed style properties, and iframes from the supported video hosts. Anything else is dropped silently, which is why every write returns the stored body. The two editor inserts are plain anchors: a button is <a class="btn btn-primary" href="..."> (or btn-outline-primary), an in-app link is <a href="/leads/register" data-ppio-internal-link="true">.

partnerOrganizationIds
Array of strings
type
string
Enum: "course" "standard"

Responses

Request samples

Content type
application/json
{
  • "pinned": true,
  • "welcomeMessage": "string",
  • "pinnedRank": 0,
  • "groupIds": [
    ],
  • "name": "string",
  • "description": "string",
  • "completionMessage": "string",
  • "partnerOrganizationIds": [
    ],
  • "type": "course"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "context": {
    },
  • "status": 0
}