REST API reference
Generated from our source-controlled contract for the implemented external API.
A deliberately small external API
The operations below are the currently implemented scoped integration surface. Download OpenAPI JSON for tooling. Dashboard sessions, public hosted-checkout capabilities and provider webhooks are separate authentication surfaces, not interchangeable API-key endpoints.
Formats and ownership
Product/order IDs are UUIDs. Money is represented as integer minor-unit strings in stored catalog/order records, not floating-point decimals. List responses are arrays with a current limit of 50. Prices and policy calculations stay server-side.
/api/v1/integration/pingCheck sandbox API access
Returns merchant identifier, environment and key scopes. The endpoint does not require a specific scope beyond a valid active sandbox key.
Authentication: server-side sandbox bearer key · Scope: any active key scope
{
"merchantId": "11111111-1111-4111-8111-111111111111",
"scopes": [
"checkout:links"
],
"environment": "SANDBOX",
"liveEnabled": false
}Errors: 400 invalid input · 401 invalid key · 403 access/scope · 404 owned product not found · 429 rate limit.
/api/v1/integration/productsList your products
Returns up to 50 tenant-owned catalog identities: id, publicCode, status, currency and version. Product content and prices are managed in the dashboard; this endpoint does not return them.
Authentication: server-side sandbox bearer key · Scope: catalog:read
[
{
"id": "11111111-1111-4111-8111-111111111111",
"publicCode": "AbCdEfGh1234",
"status": "PUBLISHED",
"currency": "USD",
"version": 1
}
]Errors: 400 invalid input · 401 invalid key · 403 access/scope · 404 owned product not found · 429 rate limit.
/api/v1/integration/ordersList your orders
Returns up to 50 tenant-owned sandbox orders with integer minor-unit amount strings.
Authentication: server-side sandbox bearer key · Scope: orders:read
[
{
"id": "22222222-2222-4222-8222-222222222222",
"productId": "11111111-1111-4111-8111-111111111111",
"state": "PAID",
"currency": "USD",
"amountMinor": "1000",
"refundedMinor": "0",
"createdAt": "2026-10-17T12:00:00.000Z"
}
]Errors: 400 invalid input · 401 invalid key · 403 access/scope · 404 owned product not found · 429 rate limit.
/api/v1/integration/checkout-linksGet reusable hosted product links
Product must be published and belong to the API key's merchant. Returns productUrl and checkoutUrl. This returns a reusable link, not a short-lived session and does not charge or lock a price.
Authentication: server-side sandbox bearer key · Scope: checkout:links
{
"productId": "YOUR_PRODUCT_UUID"
}{
"productId": "11111111-1111-4111-8111-111111111111",
"productUrl": "https://merchant.unalaunch.com/p/AbCdEfGh1234",
"checkoutUrl": "https://merchant.unalaunch.com/checkout/11111111-1111-4111-8111-111111111111",
"environment": "SANDBOX",
"note": "The hosted checkout calculates the price and creates the order. No charge was initiated."
}Errors: 400 invalid input · 401 invalid key · 403 access/scope · 404 owned product not found · 429 rate limit.
Your product. One request.
Generate an example locally. This tool never sends requests or asks for your API key.
curl --fail-with-body https://api.unalaunch.com/api/v1/integration/checkout-links \
-H "Authorization: Bearer $UNA_SANDBOX_KEY" \
-H 'Content-Type: application/json' \
--data '{"productId":"YOUR_PRODUCT_UUID"}'