openapi: 3.0.0
info:
title: Partners API License
version: 1.0.1
description: |
This API allows partners to manage access widget licenses for their accounts.
The API requires an API key to authenticate the account and access the endpoints.
The API key must be included in the `x-api-key` header of the request.
The API key is unique for each account and can be found in the Customer Portal in Account Settings - Subscriptions API/CSV access.
The account must be enabled as a partner account to access the endpoints.
Each account has a unique accountId which can be found in the Customer Portal in Account Settings - Account and user details.
termsOfService: https://accessibe.com/terms-of-service
contact:
name: API Support
url: https://support.accessibe.com/hc/en-us
email: support@accessibe.com
servers:
- url: /api/v1/partners
components:
parameters:
ExpandSettingsParam:
name: expand[]
in: query
required: false
schema:
type: string
enum: [settings]
description: "Expands extra fields in the response. If present, includes `maxImagesReached`, `maxImagesLimit`, and the `settings` object (which related to customization settings). `maxImagesReached` indicates the maximum allowed images is exceeded."
securitySchemes:
X-API-Key:
type: apiKey
in: header
name: X-API-Key
description: API key generated for the account
schemas:
License:
type: object
properties:
id:
type: string
date:
type: string
format: date-time
relatedAccountId:
type: string
domain:
type: string
status:
enum:
- active
- grace
- expired
- trial
price:
type: number
licenseType:
type: string
plan:
$ref: "#/components/schemas/Plan"
relatedBillingId:
type: string
nullable: true
statementDate:
type: string
format: date-time
dateTrialExpires:
type: string
format: date-time
datePlanExpires:
type: string
format: date-time
nullable: true
datePlanFirstActivated:
type: string
format: date-time
nullable: true
lastSubscriptionPaymentId:
type: string
nullable: true
enableGoogleAnalytics:
type: boolean
enableRemediationReport:
type: boolean
monthly:
type: boolean
autoRenew:
type: boolean
contactName:
type: string
nullable: true
contactEmail:
type: string
nullable: true
contactPhone:
type: string
nullable: true
contactCountry:
type: string
nullable: true
settings:
$ref: "#/components/schemas/LicenseSettings"
description: Widget settings object
maxImagesReached:
type: boolean
readOnly: true
description: Indicates if the maximum allowed images have been reached for this license
maxImagesLimit:
type: number
readOnly: true
description: Shows the maximum images limit for this license
Plan:
type: object
nullable: true
properties:
name:
type: string
planSKU:
type: number
CreateLicense:
type: object
required:
- domain
- planSKU
properties:
domain:
type: string
example: "example.com"
description: "Domain name for which the license is being created"
planSKU:
type: number
enum: [1, 2, 3, 5, 21, 22, 23]
example: 1
description: "Plan SKU for the license"
contactName:
type: string
example: "John Doe"
description: "Full name of the contact for this license"
contactEmail:
type: string
example: "johndoe@accessibe.com"
description: "Contact email address for this license"
contactPhone:
type: string
example: "5551234567"
description: "Contact phone number for this license"
contactCountryCode:
type: string
example: "US"
description: "Contact country code for this license"
discountEnabled:
description: "Set to true to enable discounts for the account. Set to false to get commissions instead of discounts. The parameter activate below must be set to true"
type: boolean
default: true
monthly:
type: boolean
description: "For monthly subscription can pass it as true, else it will be yearly"
default: false
activate:
type: boolean
description: "Activate the license, need to have in the account allowActivationByApi set to true"
default: false
longTrial:
type: boolean
description: "Assign a long trial period for 30 days, need to have in the account allowLongTrialByApi set to true"
default: false
settings:
$ref: "#/components/schemas/CreateSettings"
nullable: true
description: |
Widget settings. All fields inside `settings` are optional.
If any field is `null`, that specific field set to the default setting.
If `default` is `true` within this object, **all** fields revert to default regardless of other values.
UpdateLicense:
type: object
required:
- domain
properties:
domain:
type: string
description: "domain of an exiting license"
example: example.com
newDomain:
type: string
description: "New domain for the license, you can update only if you have the allowTransferByApi set to true"
example: test.com
planSKU:
type: number
enum: [1, 2, 3, 5, 21, 22, 23]
example: 1
description: "Plan SKU for the license."
contactName:
type: string
description: "New full name of contact for the license"
example: John Doe
contactEmail:
type: string
description: "New contact email for the license"
example: johndoe@accessibe.com
contactPhone:
type: string
description: "New contact phone for the license"
example: 5551234567
contactCountryCode:
type: string
description: "New contact country code for the license"
example: US
discountEnabled:
description: "Set to true to enable discounts for the account. Set to false to get commissions instead of discounts. The parameter activate below must be set to true."
type: boolean
default: true
monthly:
type: boolean
description: "For monthly subscription can pass it as true, else it will be yearly"
default: false
activate:
type: boolean
description: "Activate the license, need to have in the account allowActivationByApi set to true"
default: false
disable:
type: boolean
description: "Disable the license, need to have in the account allowDisableByApi set to true"
default: false
settings:
$ref: "#/components/schemas/UpdateSettings"
nullable: true
description: |
Widget settings. All fields inside `settings` are optional.
If any field is `null`, that specific field set to the default setting.
If `default` is `true` within this object, all fields revert to default regardless of other values.
GetBatchStatus:
type: object
properties:
batchId:
type: string
hasErrors:
type: boolean
operation:
type: string
enum:
- create
- update
status:
type: string
enum:
- processing
- completed
successLicenses:
type: array
items:
type: object
properties:
domain:
type: string
getLicenseURL:
type: string
licenseId:
type: string
failedLicenses:
type: array
items:
type: object
properties:
domain:
type: string
message:
type: string
total:
type: integer
description: The total number given in the request
totalFailures:
type: integer
totalSuccesses:
type: integer
LicenseCreateOrUpdateResponse:
type: object
properties:
id:
type: string
date:
type: string
format: date-time
relatedAccountId:
type: string
domain:
type: string
status:
enum:
- active
- grace
- expired
- trial
price:
type: number
licenseType:
type: string
plan:
$ref: "#/components/schemas/Plan"
relatedBillingId:
type: string
nullable: true
statementDate:
type: string
format: date-time
dateTrialExpires:
type: string
format: date-time
datePlanExpires:
type: string
format: date-time
nullable: true
datePlanFirstActivated:
type: string
format: date-time
nullable: true
lastSubscriptionPaymentId:
type: string
nullable: true
enableGoogleAnalytics:
type: boolean
enableRemediationReport:
type: boolean
monthly:
type: boolean
autoRenew:
type: boolean
contactName:
type: string
nullable: true
contactEmail:
type: string
nullable: true
contactPhone:
type: string
nullable: true
contactCountry:
type: string
nullable: true
LicenseSettings:
type: object
properties:
leadColor:
type: string
pattern: "^#([a-f0-9A-F]{6})$"
nullable: true
language:
type: string
enum: [
"en",
"es",
"fr",
"de",
"pl",
"it",
"pt",
"nl",
"hu",
"no",
"sl",
"sk",
"sv",
"cs",
"tr",
"ja",
"tw",
"zh",
"he",
"ru",
"ar",
"fi",
"uk",
"ro",
"ga",
"el",
"sr",
"bs",
"hr",
"lb",
"sq",
"da"
]
minLength: 2
maxLength: 2
nullable: true
position:
type: string
enum: [ "left", "right" ]
nullable: true
triggerColor:
type: string
pattern: "^#([a-f0-9A-F]{6})$"
nullable: true
triggerPositionX:
type: string
enum: [ "left", "right" ]
nullable: true
triggerPositionY:
type: string
enum: [ "top", "center", "bottom" ]
nullable: true
triggerSize:
type: string
enum: [ "small", "medium", "big" ]
nullable: true
triggerRadius:
type: string
enum: [ "50%","0", "10px", "5px" ]
nullable: true
hideTrigger:
type: boolean
nullable: true
triggerOffsetX:
type: number
nullable: true
triggerOffsetY:
type: number
nullable: true
triggerIcon:
type: string
enum: [ "checkmark", "display", "display2", "display3", "help", "people", "people2", "settings", "settings2", "wheels", "wheels2" ]
nullable: true
hideMobile:
type: boolean
nullable: true
mobile:
type: object
nullable: true
properties:
triggerPositionX:
type: string
enum: [ "left", "right" ]
nullable: true
triggerPositionY:
type: string
enum: [ "top", "center", "bottom" ]
nullable: true
triggerSize:
type: string
enum: [ "small", "medium", "big" ]
nullable: true
triggerRadius:
type: string
enum: [ "50%","0", "10px", "5px" ]
nullable: true
triggerOffsetX:
type: number
nullable: true
triggerOffsetY:
type: number
nullable: true
statementLink:
type: string
nullable: true
format: url
footerHtml:
type: string
nullable: true
CreateSettings:
type: object
properties:
leadColor:
type: string
pattern: "^#([a-f0-9A-F]{6})$"
description: "Primary color of the widget in hex format."
language:
type: string
enum: [
"en",
"es",
"fr",
"de",
"pl",
"it",
"pt",
"nl",
"hu",
"no",
"sl",
"sk",
"sv",
"cs",
"tr",
"ja",
"tw",
"zh",
"he",
"ru",
"ar",
"fi",
"uk",
"ro",
"ga",
"el",
"sr",
"bs",
"hr",
"lb",
"sq",
"da"
]
minLength: 2
maxLength: 2
description: "Language code (ISO 639-1 format)."
position:
type: string
enum: [ "left", "right" ]
triggerColor:
type: string
pattern: "^#([a-f0-9A-F]{6})$"
triggerPositionX:
type: string
enum: [ "left", "right" ]
triggerPositionY:
type: string
enum: [ "top", "center", "bottom" ]
triggerSize:
type: string
enum: [ "small", "medium", "big" ]
triggerRadius:
type: string
enum: [ "50%","0", "10px", "5px" ]
hideTrigger:
type: boolean
triggerOffsetX:
type: number
triggerOffsetY:
type: number
triggerIcon:
type: string
enum: [ "checkmark", "display", "display2", "display3", "help", "people", "people2", "settings", "settings2", "wheels", "wheels2" ]
hideMobile:
type: boolean
mobile:
type: object
properties:
triggerPositionX:
type: string
enum: [ "left", "right" ]
triggerPositionY:
type: string
enum: [ "top", "center", "bottom" ]
triggerSize:
type: string
enum: [ "small", "medium", "big" ]
triggerRadius:
type: string
enum: [ "50%","0", "10px", "5px" ]
triggerOffsetX:
type: number
triggerOffsetY:
type: number
statementLink:
type: string
footerHtml:
type: string
UpdateSettings:
type: object
properties:
default:
type: boolean
nullable: true
description: "If true, all customization settings revert to their system defaults, regardless of other fields."
leadColor:
type: string
pattern: "^#([a-f0-9A-F]{6})$"
nullable: true
language:
type: string
enum: [
"en",
"es",
"fr",
"de",
"pl",
"it",
"pt",
"nl",
"hu",
"no",
"sl",
"sk",
"sv",
"cs",
"tr",
"ja",
"tw",
"zh",
"he",
"ru",
"ar",
"fi",
"uk",
"ro",
"ga",
"el",
"sr",
"bs",
"hr",
"lb",
"sq",
"da"
]
minLength: 2
maxLength: 2
nullable: true
position:
type: string
enum: [ "left", "right" ]
nullable: true
triggerColor:
type: string
pattern: "^#([a-f0-9A-F]{6})$"
nullable: true
triggerPositionX:
type: string
enum: [ "left", "right" ]
nullable: true
triggerPositionY:
type: string
enum: [ "top", "center", "bottom" ]
nullable: true
triggerSize:
type: string
enum: [ "small", "medium", "big" ]
nullable: true
triggerRadius:
type: string
enum: [ "50%","0", "10px", "5px" ]
nullable: true
hideTrigger:
type: boolean
nullable: true
triggerOffsetX:
type: number
nullable: true
triggerOffsetY:
type: number
nullable: true
triggerIcon:
type: string
enum: [ "checkmark", "display", "display2", "display3", "help", "people", "people2", "settings", "settings2", "wheels", "wheels2" ]
nullable: true
hideMobile:
type: boolean
nullable: true
mobile:
type: object
nullable: true
properties:
triggerPositionX:
type: string
enum: [ "left", "right" ]
nullable: true
triggerPositionY:
type: string
enum: [ "top", "center", "bottom" ]
nullable: true
triggerSize:
type: string
enum: [ "small", "medium", "big" ]
nullable: true
triggerRadius:
type: string
enum: [ "50%","0", "10px", "5px" ]
nullable: true
triggerOffsetX:
type: number
nullable: true
triggerOffsetY:
type: number
nullable: true
statementLink:
type: string
nullable: true
format: url
footerHtml:
type: string
nullable: true
responses:
NotFound:
description: License not found
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
message:
type: string
BadRequestError:
description: The request is invalid. Any field could potentially be the cause.
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: false
message:
type: string
example: planSKU can only be 1, 2, 3, 5, 21, 22, 23
UnauthorizedError:
description: Missing or invalid API key
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: false
message:
type: string
example: Missing x-api-key in headers
ForbiddenError:
description: Account does not have access to do this operation
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: false
message:
type: string
enum:
- Could not find a partner account with the provided API key
- Account does not have access to partners API
ConflictError:
description: Domain already being used
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: false
message:
type: string
enum:
- Domain already being used
- Domain already exists in account
examples:
SingleLicenseExample:
value:
success: true
data:
- id: 6655ffdaaf3c1a7b866ad60b
date: 2023-12-01T00:00:00Z
relatedAccountId: 6655ffde924acc9586252c9e
domain: example.com
status: active
price: 100
licenseType: offline
plan:
name: Standard
planSKU: 1
relatedBillingId: 6655ffc7ff28ed0683f30ca3
statementDate: 2023-12-01T00:00:00Z
dateTrialExpires: 2024-01-01T00:00:00Z
datePlanExpires: 2024-12-01T00:00:00Z
datePlanFirstActivated: 2023-12-01T00:00:00Z
lastSubscriptionPaymentId: 6655ffce1a84015a561e119b
enableGoogleAnalytics: true
enableRemediationReport: true
monthly: false
autoRenew: true
contactName: John Doe
contactEmail: john.doe@example.com
contactPhone: 5551234567
contactCountry: "United States"
settings:
leadColor: "#146FF8"
language: "en"
position: "right"
triggerColor: "#146FF8"
triggerPositionX: "right"
triggerPositionY: "bottom"
triggerSize: "medium"
triggerRadius: "50%"
hideTrigger: false
triggerOffsetX: 20
triggerOffsetY: 20
triggerIcon: "people"
hideMobile: false
mobile:
triggerPositionX: "right"
triggerPositionY: "bottom"
triggerSize: "small"
triggerRadius: "50%"
triggerOffsetX: 10
triggerOffsetY: 10
statementLink: ""
footerHtml: ""
maxImagesReached: false
maxImagesLimit: 5000
ManyLicensesExample:
value:
success: true
data:
total: 1
nextToken: 6140cdf15d3df50b78eeadd5
licenses:
- id: 6655ffdaaf3c1a7b866ad60b
date: 2023-12-01T00:00:00Z
relatedAccountId: 6655ffde924acc9586252c9e
domain: example.com
status: active
price: 100
licenseType: offline
plan:
name: Standard
planSKU: 1
relatedBillingId: 6655ffc7ff28ed0683f30ca3
statementDate: 2023-12-01T00:00:00Z
dateTrialExpires: 2024-01-01T00:00:00Z
datePlanExpires: 2024-12-01T00:00:00Z
datePlanFirstActivated: 2023-12-01T00:00:00Z
lastSubscriptionPaymentId: 6655ffce1a84015a561e119b
enableGoogleAnalytics: true
enableRemediationReport: true
monthly: false
autoRenew: true
contactName: John Doe
contactEmail: john.doe@example.com
contactPhone: 5551234567
contactCountry: "United States"
settings:
leadColor: "#146FF8"
language: "en"
position: "right"
triggerColor: "#146FF8"
triggerPositionX: "right"
triggerPositionY: "bottom"
triggerSize: "medium"
triggerRadius: "50%"
hideTrigger: false
triggerOffsetX: 20
triggerOffsetY: 20
triggerIcon: "people"
hideMobile: false
mobile:
triggerPositionX: "right"
triggerPositionY: "bottom"
triggerSize: "small"
triggerRadius: "50%"
triggerOffsetX: 10
triggerOffsetY: 10
statementLink: ""
footerHtml: ""
maxImagesReached: false
maxImagesLimit: 5000
LicenseRequestExample:
value:
domain: example.com
planSKU: 1
contactName: John Doe
contactEmail: john.doe@accessibe.com
contactPhone: "5551234567"
contactCountryCode: "US"
settings:
default: false
leadColor: "#146FF8"
LicenseUpdateRequestExample:
value:
domain: example.com
planSKU: 1
contactName: John Doe
contactEmail: john.doe@accessibe.com
contactPhone: "5551234567"
contactCountryCode: "US"
settings:
default: false
leadColor: "#146FF8"
language: "en"
position: "right"
triggerColor: "#146FF8"
triggerPositionX: "right"
triggerPositionY: "bottom"
triggerSize: "medium"
triggerRadius: "50%"
hideTrigger: false
triggerOffsetX: 20
triggerOffsetY: 20
triggerIcon: "people"
hideMobile: false
mobile:
triggerPositionX: "right"
triggerPositionY: "bottom"
triggerSize: "small"
triggerRadius: "50%"
triggerOffsetX: 10
triggerOffsetY: 10
statementLink: ""
footerHtml: ""
LicenseCreateOrUpdateResponseExample:
value:
success: true
data:
id: "6655ffdaaf3c1a7b866ad60b"
date: "2023-12-01T00:00:00Z"
relatedAccountId: "6655ffde924acc9586252c9e"
domain: "example.com"
status: "active"
price: 100
licenseType: "offline"
plan:
name: "Standard"
planSKU: 1
relatedBillingId: "6655ffc7ff28ed0683f30ca3"
statementDate: "2023-12-01T00:00:00Z"
dateTrialExpires: "2024-01-01T00:00:00Z"
datePlanExpires: "2024-12-01T00:00:00Z"
datePlanFirstActivated: "2023-12-01T00:00:00Z"
lastSubscriptionPaymentId: "6655ffce1a84015a561e119b"
enableGoogleAnalytics: true
enableRemediationReport: true
monthly: false
autoRenew: true
contactName: "John Doe"
contactEmail: "john.doe@example.com"
contactPhone: "5551234567"
contactCountry: "United States"
BatchLicenseCreateRequestExample:
value:
licenses:
- domain: example1.com
planSKU: 1
contactName: John Doe
contactEmail: john.doe@example1.com
contactPhone: "5551234567"
contactCountryCode: "US"
- domain: example2.com
planSKU: 2
contactName: Jane Doe
contactEmail: jane.doe@example2.com
contactPhone: "5557654321"
contactCountryCode: "US"
BatchLicenseCreateResponseExample:
value:
success: true
data:
batchId: 6655ffdaaf3c1a7b866ad60b
status: processing
operation: create
getBatchStatusURL: https://dashboard.accessibe.com/api/v1/partners/accounts/6655ffde924acc9586252c9e/access-widget-licenses/batch/6655ffdaaf3c1a7b866ad60b
BatchLicenseUpdateRequestExample:
value:
licenses:
- domain: example1.com
newDomain: test1.com
planSKU: 1
contactName: John Doe
contactEmail: johndoe@accessibe.com
contactPhone: "5551234567"
contactCountryCode: "US"
discountEnabled: true
monthly: false
activate: true
settings:
default: false
position: "right"
- domain: example2.com
newDomain: test2.com
planSKU: 2
contactName: Jane Doe
contactEmail: janedoe@accessibe.com
contactPhone: "5557654321"
contactCountryCode: "US"
BatchLicenseUpdateResponseExample:
value:
success: true
data:
batchId: 6655ffdaaf3c1a7b866ad60b
status: processing
operation: update
getBatchStatusURL: https://dashboard.accessibe.com/api/v1/partners/accounts/6655ffde924acc9586252c9e/access-widget-licenses/batch/6655ffdaaf3c1a7b866ad60b
GetBatchStatusCompletedExample:
value:
success: true
data:
batchId: 6655ffdaaf3c1a7b866ad60b
hasErrors: false
operation: create
status: completed
successLicenses:
[
{
domain: example1.com,
getLicenseURL: https://dashboard.accessibe.com/api/v1/partners/accounts/6655ffde924acc9586252c9e/access-widget-licenses/6655ffdaaf3c1a7b866ad60b,
licenseId: 6655ffdaaf3c1a7b866ad60b,
},
{
domain: example2.com,
getLicenseURL: https://dashboard.accessibe.com/api/v1/partners/accounts/6655ffde924acc9586252c9e/access-widget-licenses/6655ffdaaf3c1a7b866ad60c,
licenseId: 6655ffdaaf3c1a7b866ad60c,
},
]
failedLicenses: []
total: 2
totalFailures: 0
totalSuccesses: 2
GetBatchStatusProcessingExample:
value:
success: true
data:
batchId: 6655ffdaaf3c1a7b866ad60b
hasErrors: false
operation: update
status: processing
successLicenses: []
failedLicenses: []
total: 2
totalFailures: 0
totalSuccesses: 0
paths:
/accounts/{accountId}/access-widget-licenses/{licenseId}:
get:
summary: Get an accessWidget license
description: |
Gets the details of the specified accessWidget license for the specified account ID.
Use GET /accounts/{accountId}/access-widget-licenses and filter by domain to get the licenseId for a specific domain.
This endpoint requires the `x-api-key` header for authentication. The key must match the API key associated with the specified account. The account must also be a partner account.
security:
- X-API-Key: []
parameters:
- name: accountId
in: path
required: true
schema:
type: string
description: The ID of the account. You can check your ID [here](https://dashboard.accessibe.com/app/account).
example: 6655ffde924acc9586252c9e
- name: licenseId
in: path
required: true
schema:
type: string
description: The ID of the license.
example: 6655ffdaaf3c1a7b866ad60b
- $ref: "#/components/parameters/ExpandSettingsParam"
responses:
"200":
description: License found
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
message:
type: string
data:
$ref: "#/components/schemas/License"
examples:
LicenseExample:
$ref: "#/components/examples/SingleLicenseExample"
"400":
$ref: "#/components/responses/BadRequestError"
"401":
$ref: "#/components/responses/UnauthorizedError"
"403":
$ref: "#/components/responses/ForbiddenError"
"404":
description: License not found
content:
application/json:
schema:
$ref: "#/components/responses/NotFound"
examples:
notFoundExample:
value:
# --- truncated at 32 KB (49 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/accessibe/refs/heads/main/openapi/accessibe-partners-openapi-original.yml
ⓘ
Where this information came from
This is an independent, third-party profile of accessiBe Partners API License, published by
API Evangelist. We do not operate, host, resell, or
support these APIs, and we are not affiliated with or endorsed by the company unless stated above.
Everything here is built from publicly available information — the company's own site,
developer portal, documentation, public repositories, and the specifications it publishes for public use.
Nothing is obtained by breaching a system, defeating an access control, or using credentials.
The Kin Score and Agent Readiness rating are independently calculated assessments of a company's
public API artifacts, scored against a published rubric. They are not certifications,
endorsements, security assessments, or audits.
Corrections, re-scores, and removal are free — no partnership or purchase required, and
you do not need to justify the request. A removed company is recorded as unrated, never scored
zero for having asked. Acknowledgement within one business day; removal within two.
info@apievangelist.com
·
Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and
you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.