AAPI endpoints
The AAPI root endpoint ishttps://api.amazonalexa.com. Each operation path includes its own version prefix. Refer to the individual operation sections for the full path.
Authentication
All requests must include a Login with Amazon (LWA) OAuth 2.0 Bearer token in theAuthorization header. You can obtain a token by running alexa-ai configure. Pass tokens in the Authorization header. For details, see Access Token Retrieval REST API Reference.
CLI-to-API mapping
The following table maps each Alexa AI CLI command to the AAPI operations it calls.Request headers
Response headers
CreateAddOnUpload
Returns a pre-signed S3 URL for uploading theaddon-package ZIP.
Operation ID: createAddOnUpload
POST /v1/addons/uploads
Request body
Success response
200 OKError responses
400 INVALID_REQUEST, 401 NOT_AUTHENTICATED, 403 NOT_AUTHORIZED, 429 TOO_MANY_REQUESTS, 500 INTERNAL_SERVER_ERROR, 503 SERVICE_UNAVAILABLE
CreateAddOnPackageWithoutAddOnId
Triggers the asynchronous build pipeline for a new add-on (no existing add-on ID). Operation ID:createAddOnPackageWithoutAddOnId
POST /v1/addons/packages
Request body
Success response
202 Accepted Response header:Location: /v1/addons/{addOnId}/packages/{packageId}
Error responses
400 INVALID_REQUEST, 401 NOT_AUTHENTICATED, 403 NOT_AUTHORIZED, 404 ADDON_NOT_FOUND, 409 CONFLICT, 412 PRECONDITION_FAILED, 413 PAYLOAD_TOO_LARGE, 429 TOO_MANY_REQUESTS, 500 INTERNAL_SERVER_ERROR, 503 SERVICE_UNAVAILABLE
CreateAddOnPackage
Triggers the asynchronous build pipeline for an existing add-on. Operation ID:createAddOnPackage
POST /v1/addons/{addOnId}/packages
Path parameters
Request body
Success response
202 Accepted Response header:Location: /v1/addons/{addOnId}/packages/{packageId}
Error responses
400 INVALID_REQUEST, 401 NOT_AUTHENTICATED, 403 NOT_AUTHORIZED, 404 ADDON_NOT_FOUND, 409 CONFLICT, 412 PRECONDITION_FAILED, 413 PAYLOAD_TOO_LARGE, 429 TOO_MANY_REQUESTS, 500 INTERNAL_SERVER_ERROR, 503 SERVICE_UNAVAILABLE
GetAddOnPackageStatus
Polls the build status of a package. Operation ID:getAddOnPackageStatus
GET /v1/addons/{addOnId}/packages/{packageId}
Path parameters
Success response
200 OKError responses
400 INVALID_REQUEST, 401 NOT_AUTHENTICATED, 403 NOT_AUTHORIZED, 404 PACKAGE_NOT_FOUND, 429 TOO_MANY_REQUESTS, 500 INTERNAL_SERVER_ERROR, 503 SERVICE_UNAVAILABLE
DeployAddOnVersionToStage
Deploys a built package to the development stage. Operation ID:deployAddOnVersionToStage
POST /v1/addons/{addOnId}/deployments
Path parameters
Request body
Success response
202 Accepted Response header:Location: /v1/addons/{addOnId}/deployments/{deploymentId}
Response body is empty.
Error responses
400 INVALID_REQUEST, 400 INVALID_STAGE, 401 NOT_AUTHENTICATED, 403 NOT_AUTHORIZED, 404 ADDON_NOT_FOUND, 404 PACKAGE_NOT_FOUND, 409 INVALID_LIFECYCLE_STATE, 500 INTERNAL_SERVER_ERROR, 503 SERVICE_UNAVAILABLE
GetAddOnDeploymentStatus
Polls deployment progress. Operation ID:getAddOnDeploymentStatus
GET /v1/addons/{addOnId}/deployments/{deploymentId}
Path parameters
Success response
200 OKError responses
400 INVALID_REQUEST, 401 NOT_AUTHENTICATED, 403 NOT_AUTHORIZED, 404 ADDON_NOT_FOUND, 404 DEPLOYMENT_NOT_FOUND, 429 TOO_MANY_REQUESTS, 500 INTERNAL_SERVER_ERROR, 503 SERVICE_UNAVAILABLE
SubmitAddOnForCertification
Submits the current development version for certification. Operation ID:submitAddOnForCertification
POST /v1/addons/{addOnId}/submit
Path parameters
Request body
None.Success response
202 AcceptedError responses
400 INVALID_REQUEST, 401 NOT_AUTHENTICATED, 403 NOT_AUTHORIZED, 404 ADDON_NOT_FOUND, 409 CONFLICT, 409 INVALID_LIFECYCLE_STATE, 412 PRECONDITION_FAILED, 429 TOO_MANY_REQUESTS, 500 INTERNAL_SERVER_ERROR, 503 SERVICE_UNAVAILABLE
ListAddOns
Lists all add-ons for a vendor. Operation ID:listAddOns
GET /v1/addons
Query parameters
Success response
200 OKError responses
400 INVALID_REQUEST, 401 NOT_AUTHENTICATED, 403 NOT_AUTHORIZED, 404 ADDON_NOT_FOUND, 429 TOO_MANY_REQUESTS, 500 INTERNAL_SERVER_ERROR, 503 SERVICE_UNAVAILABLE
ExecuteAddOnTests
Submits a test suite for execution against a deployed add-on. Operation ID:executeAddOnTests
POST /v1/addons/{addOnId}/stages/{stage}/tests
Path parameters
Success response
202 AcceptedError responses
400 INVALID_REQUEST, 401 NOT_AUTHENTICATED, 403 NOT_AUTHORIZED, 404 ADDON_NOT_FOUND, 409 INVALID_LIFECYCLE_STATE, 429 TOO_MANY_REQUESTS, 500 INTERNAL_SERVER_ERROR, 503 SERVICE_UNAVAILABLE
GetAddOnTestResults
Polls for test execution results. Operation ID:getAddOnTestResults
GET /v1/addons/{addOnId}/tests/{testExecutionId}
Path parameters
Success response
200 OKError responses
400 INVALID_REQUEST, 401 NOT_AUTHENTICATED, 403 NOT_AUTHORIZED, 404 ADDON_NOT_FOUND, 404 TEST_EXECUTION_NOT_FOUND, 429 TOO_MANY_REQUESTS, 500 INTERNAL_SERVER_ERROR, 503 SERVICE_UNAVAILABLE
CreateCatalog
Creates a new catalog for a vendor. Operation ID:createCatalog
POST /v0/catalogs
Request body
Success response
201 CreatedError responses
400 INVALID_REQUEST, 401 NOT_AUTHENTICATED, 403 NOT_AUTHORIZED, 404 NOT_FOUND, 429 TOO_MANY_REQUESTS, 500 INTERNAL_SERVER_ERROR, 503 SERVICE_UNAVAILABLE
CreateContentUpload
Creates a content upload and returns pre-signed S3 URLs for multipart upload. Operation ID:createContentUpload
POST /v0/catalogs/{catalogId}/uploads
Path parameters
Request body
Success response
201 CreatedError responses
400 INVALID_REQUEST, 401 NOT_AUTHENTICATED, 403 NOT_AUTHORIZED, 404 NOT_FOUND, 429 TOO_MANY_REQUESTS, 500 INTERNAL_SERVER_ERROR, 503 SERVICE_UNAVAILABLE
CompleteContentUpload
Completes a multipart upload by providing the ETags returned from each part upload. Operation ID:completeContentUpload
POST /v0/catalogs/{catalogId}/uploads/{uploadId}
Path parameters
Request body
Success response
202 Accepted Response body is empty.Error responses
400 INVALID_REQUEST, 401 NOT_AUTHENTICATED, 403 NOT_AUTHORIZED, 404 NOT_FOUND, 429 TOO_MANY_REQUESTS, 500 INTERNAL_SERVER_ERROR, 503 SERVICE_UNAVAILABLE
GetContentUpload
Gets the processing status of a catalog content upload. Operation ID:getContentUpload
GET /v1/catalogs/{catalogId}/uploads/{uploadId}
Path parameters
Request body
None.Success response
200 OKError responses
400 INVALID_REQUEST, 401 NOT_AUTHENTICATED, 403 NOT_AUTHORIZED, 404 NOT_FOUND, 429 TOO_MANY_REQUESTS, 500 INTERNAL_SERVER_ERROR, 503 SERVICE_UNAVAILABLE
AssociateCatalogWithAddOn
Associates a catalog with an add-on. Required after creating and uploading catalog data so the add-on can access it. Operation ID:associateCatalogWithAddOn
PUT /v1/addons/{addOnId}/catalogs/{catalogId}
Path parameters
Request body
None.Success response
204 No Content Response body is empty.Error responses
400 INVALID_REQUEST, 401 NOT_AUTHENTICATED, 403 NOT_AUTHORIZED, 404 ADDON_NOT_FOUND, 404 CATALOG_NOT_FOUND, 429 TOO_MANY_REQUESTS, 500 INTERNAL_SERVER_ERROR, 503 SERVICE_UNAVAILABLE
ListAddOnMetrics
Discovers available metrics for an add-on, scoped by metric family. Use this to find metric names, supported stats, dimensions, and aggregation periods before querying data. Operation ID:listAddOnMetrics
GET /v1/addons/{addOnId}/stages/{stage}/metrics
Path parameters
Query parameters
Success response
200 OKError responses
400 INVALID_REQUEST, 401 NOT_AUTHENTICATED, 403 NOT_AUTHORIZED, 404 NOT_FOUND, 429 TOO_MANY_REQUESTS, 500 INTERNAL_SERVER_ERROR, 503 SERVICE_UNAVAILABLE
GetAddOnMetrics
Queries up to five metrics for an add-on within a time range. Returns time series data with timestamps and values. Operation ID:getAddOnMetrics
POST /v1/addons/{addOnId}/stages/{stage}/metrics/queries
Path parameters
Request body
Success response
200 OKError responses
400 INVALID_REQUEST, 400 TOO_MANY_QUERIES, 400 CATEGORY_REQUIRED, 400 STAT_MISMATCH, 400 UNSUPPORTED_AGGREGATION_PERIOD, 400 TIME_RANGE_EXCEEDED, 400 DIMENSION_NOT_APPLICABLE, 401 NOT_AUTHENTICATED, 403 NOT_AUTHORIZED, 404 NOT_FOUND, 429 TOO_MANY_REQUESTS, 500 INTERNAL_SERVER_ERROR, 503 SERVICE_UNAVAILABLE

