---
title: "Create a white-label widget"
method: POST
path: "/v1/widgets"
tags: ["Account"]
---

# Create a white-label widget

`POST /v1/widgets`

## Request

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

Cost: 0 credits. Create an embeddable odds widget that carries YOUR branding.

The widget renders from the same feed as our own public widget, in your colours, with
your bookmaker links and no PuntersEdge credit. Embed it with the `embed` snippets in
the response; the `csp` line is what an embedding page with a Content-Security-Policy
needs to allow the frame.

Each RENDER is metered against this account — 2 credits for a racing fill, 1 for a
sports fill — but the page is cached for 60 seconds per parameter set, so the cost
follows time, not traffic: a widget on a page with ten thousand readers costs the same
as one on a page with one.

## Headers

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

## Request body

- WidgetIn
  - `label` string, required: What this widget is for — 'homepage next-to-go', 'AFL page'. Shown in GET /v1/widgets.
  - `config` object, nullable: Theme, links, allowed_origins, defaults, title, show_updated and max_fills_per_hour. Every field is optional; the response carries the normalised document that is actually stored.

## Response `201`

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
- `403`: The white-label widget is a Platform entitlement, and only the account's primary key may manage widgets.
- `409`: The account already holds its 10 active widgets.
- `422`: A config field is invalid; the message names it.
- `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)
