---
title: "Self-service billing portal link"
method: GET
path: "/v1/billing/portal"
tags: ["Account"]
---

# Self-service billing portal link

`GET /v1/billing/portal`

## Request

- Base URL: `https://api.puntersedge.online`
- URL: `https://api.puntersedge.online/v1/billing/portal`
- Auth: API key in header `X-API-Key`

Cost: 0 credits. Returns a short-lived Stripe billing portal URL for this key's
subscription: update the card, download invoices, see what the next charge will be.

THE API KEY IS THE IDENTITY. No website account or separate login is needed: the key
that holds the subscription opens its portal, so a customer who subscribed through the API
can change a failing card, pull invoices or cancel without contacting us.

The returned URL is a BEARER link: anyone holding it can manage the subscription until it
expires. It is deliberately never logged, and callers should not paste it anywhere.

## Headers

- `X-API-Key` string
- `X-RapidAPI-Proxy-Secret` string

## Response `200`

Successful Response

- unknown

## Other responses

- `401`: Missing or invalid API key. Send `X-API-Key`. See https://puntersedge.online/developers/errors
- `402`: Monthly credit allowance exhausted for this plan. Upgrade at https://puntersedge.online/api/pricing
- `422`: Validation Error
- `429`: Rate limit exceeded for this plan. Honour the `Retry-After` header (seconds) before retrying. See https://puntersedge.online/developers/rate-limits
- `500`: Unexpected server error. Safe to retry with backoff.

---

[API](https://skmtc.dev/puntersedge/apis/puntersedge-odds-api.md) · [All operations](https://skmtc.dev/puntersedge/apis/puntersedge-odds-api/llms.txt) · [OpenAPI document](https://skmtc.dev/puntersedge/apis/puntersedge-odds-api/revisions/f35b6aab1946?raw)
