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: success: false message: License not found patch: summary: Update an accessWidget license description: | Updates the details of the specified accessWidget license for the specified account. Any parameters not provided will be left unchanged. Use GET /accounts/{accountId}/access-widget-licenses and filter by domain to get the licenseId for a specific domain. planSKU is the type of plan for the license where: 1 = Standard, 2 = Advanced Plus, 3 = Enterprise, 5 = Advanced, 21 = Micro, 22 = Growth, 23 = Scale Note: If you pass null for a specific field in `settings` (for example `leadColor: null`), that field set to the default value. 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 requestBody: description: The license object to update. required: true content: application/json: schema: $ref: "#/components/schemas/UpdateLicense" examples: LicenseUpdateRequestExample: $ref: "#/components/examples/LicenseUpdateRequestExample" responses: "200": description: License updated content: application/json: schema: type: object properties: success: type: boolean message: type: string data: $ref: "#/components/schemas/LicenseCreateOrUpdateResponse" examples: LicenseCreateOrUpdateResponseExample: $ref: "#/components/examples/LicenseCreateOrUpdateResponseExample" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/UnauthorizedError" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFound" "409": $ref: "#/components/responses/ConflictError" /accounts/{accountId}/access-widget-licenses: get: summary: Get accessWidget licenses description: | Gets all the accessWidget licenses for the specified account. 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 - $ref: "#/components/parameters/ExpandSettingsParam" - name: nextToken in: query schema: type: string description: Token used in pagination to retrieve the next set of results. Make the call again using the returned token to retrieve the next results. example: 63fe209a096fed10ca0c08a2 default: null - name: limit in: query schema: type: integer format: int32 description: The number of results to return. example: 3 default: 10 maximum: 150 - name: status in: query schema: enum: - active - trial - expired - grace description: Filter the results by license status. example: active - name: domain in: query schema: type: string description: Filter the results by domain. example: example.com responses: "200": description: The list of licenses found. content: application/json: schema: type: object properties: success: type: boolean message: type: string data: type: object properties: total: type: integer description: The total number of licenses without any filters. licenses: type: array maximum: 150 minimum: 1 items: $ref: "#/components/schemas/License" nextToken: type: string nullable: true examples: LicenseExample: $ref: "#/components/examples/ManyLicensesExample" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/UnauthorizedError" "403": $ref: "#/components/responses/ForbiddenError" "404": description: No licenses were found content: application/json: schema: $ref: "#/components/responses/NotFound" examples: notFoundExample: value: success: false message: Licenses not found post: summary: Create an accessWidget license description: | Creates a new accessWidget license for the specified account. 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. planSKU is the type of plan for the license where: 1 = Standard, 2 = Advanced Plus, 3 = Enterprise, 5 = Advanced, 21 = Micro, 22 = Growth, 23 = Scale 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 requestBody: description: License object to create. required: true content: application/json: schema: $ref: "#/components/schemas/CreateLicense" examples: LicenseRequestExample: $ref: "#/components/examples/LicenseRequestExample" responses: "201": description: License created content: application/json: schema: type: object properties: success: type: boolean message: type: string data: $ref: "#/components/schemas/LicenseCreateOrUpdateResponse" examples: LicenseCreateOrUpdateResponseExample: $ref: "#/components/examples/LicenseCreateOrUpdateResponseExample" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/UnauthorizedError" "403": $ref: "#/components/responses/ForbiddenError" "404": description: Account not found content: application/json: schema: $ref: "#/components/responses/NotFound" examples: notFoundExample: value: success: false message: Account not found data: [] "409": $ref: "#/components/responses/ConflictError" /accounts/{accountId}/access-widget-licenses/batch-create: post: summary: Create multiple accessWidget licenses description: | Creates multiple accessWidget licenses for the specified account. The maximum number of licenses that can be created in a single request is 150. 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. planSKU is the type of plan for the license where: 1 = Standard, 2 = Advanced Plus, 3 = Enterprise, 5 = Advanced, 21 = Micro, 22 = Growth, 23 = Scale 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: Idempotency-Key in: header schema: type: string description: A unique key to ensure the request is processed only once. example: 53fe209b096f2d10ba0c08a4 requestBody: description: License objects to be created. required: true content: application/json: schema: type: object properties: licenses: type: array maximum: 150 minimum: 1 items: $ref: "#/components/schemas/CreateLicense" examples: BatchLicenseCreateRequestExample: $ref: "#/components/examples/BatchLicenseCreateRequestExample" responses: "202": description: Licenses are being created content: application/json: schema: type: object properties: success: type: boolean data: type: object properties: batchId: type: string status: type: string enum: - processing - completed operation: type: string enum: - create - update getBatchStatusURL: type: string examples: BatchLicenseCreateResponseExample: $ref: "#/components/examples/BatchLicenseCreateResponseExample" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/UnauthorizedError" "403": $ref: "#/components/responses/ForbiddenError" "404": description: Account not found content: application/json: schema: $ref: "#/components/responses/NotFound" examples: notFoundExample: value: success: false message: Account not found data: [] /accounts/{accountId}/access-widget-licenses/batch-update: post: summary: Update multiple accessWidget licenses description: | Updates multiple existing accessWidget licenses for the specified account. The maximum number of licenses that can be updated in a single request is 150. 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: Idempotency-Key in: header schema: type: string description: A unique key to ensure the request is processed only once. example: 53fe209b096f2d10ba0c08a4 requestBody: description: License objects to be updated required: true content: application/json: schema: type: object properties: licenses: type: array maximum: 150 minimum: 1 items: $ref: "#/components/schemas/UpdateLicense" examples: BatchLicenseUpdateRequestExample: $ref: "#/components/examples/BatchLicenseUpdateRequestExample" responses: "202": description: Licenses are being updated content: application/json: schema: type: object properties: success: type: boolean data: type: object properties: batchId: type: string status: type: string enum: - processing - completed operation: type: string enum: - create - update getBatchStatusURL: type: string examples: BatchLicenseCreateResponseExample: $ref: "#/components/examples/BatchLicenseUpdateResponseExample" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/UnauthorizedError" "403": $ref: "#/components/responses/ForbiddenError" "404": description: Account not found content: application/json: schema: $ref: "#/components/responses/NotFound" examples: notFoundExample: value: success: false message: Account not found data: [] /accounts/{accountId}/access-widget-licenses/batch/{batchId}: get: summary: Get batch operation status description: | Gets the status of a batch operation for creating or updating accessWidget licenses. Use the batchId from the response of either POST /accounts/{accountId}/access-widget-licenses/batch-create or POST /accounts/{accountId}/access-widget-licenses/batch-update. 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: batchId in: query required: true schema: type: string description: The ID of the batch operation. example: 6655ffdaaf3c1a7b866ad60b responses: "200": description: Batch operation found content: application/json: schema: type: object properties: success: type: boolean data: $ref: "#/components/schemas/GetBatchStatus" examples: GetBatchStatusCompletedExample: $ref: "#/components/examples/GetBatchStatusCompletedExample" "202": description: Batch operation is being processed content: application/json: schema: type: object properties: success: type: boolean data: $ref: "#/components/schemas/GetBatchStatus" examples: GetBatchStatusCompletedExample: $ref: "#/components/examples/GetBatchStatusProcessingExample" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/UnauthorizedError" "403": $ref: "#/components/responses/ForbiddenError" "404": description: Batch operation not found content: application/json: schema: $ref: "#/components/responses/NotFound" examples: notFoundExample: value: success: false message: Batch operation not found