---
title: "POST /personalized/checkout"
method: POST
path: "/personalized/checkout"
tags: ["personalized"]
---

# POST /personalized/checkout

`POST /personalized/checkout`

## Request

- Base URL: `https://keyshortcuts.net/api`
- URL: `https://keyshortcuts.net/api/personalized/checkout`
- Auth: none declared

## Request body

- PersonalizedCheckoutRequest
  - `kind` 'custom-stack' | 'switcher-pack', required
  - `stack` object, required
  - `fromPlatform` 'windows' | 'macos' | 'linux'
  - `entryPath` string: Query-free entry page for aggregate attribution
  - `attribution` TrafficLabels
    - `utm_source` string
    - `utm_medium` string
    - `utm_campaign` string
    - `referrerHost` string

## Response `200`

Hosted Stripe URL for an immutable, stored stack snapshot.

- object
  - `url` string, required

## Other responses

- `400`: Invalid stack or no reviewed switcher coverage.
- `503`: Payments or fulfillment storage unavailable.

---

[API](https://skmtc.dev/keyshortcuts/apis/keyshortcuts-public-api.md) · [All operations](https://skmtc.dev/keyshortcuts/apis/keyshortcuts-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/keyshortcuts/apis/keyshortcuts-public-api/revisions/372a3a71fc80?raw)
