---
title: "Create a signable purchase intent with a frozen quote"
method: POST
path: "/v1/subscribe/intents"
tags: ["Onboarding"]
---

# Create a signable purchase intent with a frozen quote

`POST /v1/subscribe/intents`

## Request

- Base URL: `https://api.m2msentinel.com`
- URL: `https://api.m2msentinel.com/v1/subscribe/intents`
- Auth: none required

The exact USDC amount (and, when a live ETH quote exists, the exact wei amount), duration and optional same-key renewal target are frozen into the message you sign. The intent is valid for 15 minutes. Renewals require the active same-tier paid key in x-api-key; changing tiers requires a new key.

## Request body

- object
  - `tier` 'STARTER' | 'GROWTH' | 'PRO', required
  - `userWallet` string, required: Must be the wallet that will send the payment.
  - `durationDays` 31 | 90 | 365
  - `renewExistingKey` boolean: When true, present the active same-tier paid key in x-api-key. The key expiry is extended atomically and its raw secret does not change.

## Response `200`

Intent created

- PurchaseIntent
  - `status` string
  - `intent` object
    - `id` string
    - `tier` string
    - `userWallet` string
    - `durationDays` 31 | 90 | 365: Present on paid purchase intents.
    - `renewExistingKey` boolean: Present on paid purchase intents; true when the payment extends the presented key.
    - `expiresAt` string, date-time
    - `messageToSign` string
  - `next` string[]
  - `payment` object
    - `payTo` string
    - `network` string
    - `priceUsd` number
    - `usdc` object
      - `address` string
      - `baseUnits` string
      - `decimals` integer
    - `nativeEth` object, nullable: Null when no live ETH quote was available; settle in USDC instead.

## Other responses

- `400`: Malformed input
- `401`: Missing or invalid credential, or a credential was supplied in the query string
- `429`: A plan burst limit or bounded public/intent retry limit was exceeded
- `503`: A required dependency is unavailable; the request failed closed

---

[API](https://skmtc.dev/m2msentinel/apis/m2m-sentinel-base-contract-capability-checks-before-you-sign.md) · [All operations](https://skmtc.dev/m2msentinel/apis/m2m-sentinel-base-contract-capability-checks-before-you-sign/llms.txt) · [OpenAPI document](https://skmtc.dev/m2msentinel/apis/m2m-sentinel-base-contract-capability-checks-before-you-sign/revisions/2dadd4e704fd?raw)
