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.
X-API-Key
0 credits
curl -X POST 'https://api.puntersedge.online/v1/widgets' \
-H 'X-API-Key: YOUR_KEY' \
-H 'Content-Type: application/json' \
-d '{"label": "LABEL", "config": {}}'
| Name | In | Type | Required | Description |
|---|---|---|---|---|
label |
body | string | yes | What this widget is for — 'homepage next-to-go', 'AFL page'. Shown in GET /v1/widgets. |
config |
body | object | no | 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. |
Status codes: 201, 401, 402, 403, 409, 422, 429, 500. Response bodies are JSON; the full schema is in /openapi.json.
201 application/json
— this call costs 0 credits.
Field names and types are as the API returns them; values are a real sample, trimmed to a few items.
{
"widget_id": "wgt_3f9a1c74e20b6d58",
"label": "Form guide sidebar",
"config": {
"bookmakers": [
"sportsbet",
"tab",
"ladbrokes_au"
],
"defaults": {
"country": "AU",
"sports": [
"afl",
"nrl"
]
},
"theme": "light"
},
"embed": {
"racing": "<iframe src=\"https://puntersedge.online/widget/v1/wgt_3f9a1c74e20b6d58/racing\" width=\"100%\" height=\"500\" frameborder=\"0\" loading=\"lazy\" title=\"Next to go\"></iframe>",
"sports": {
"afl": "<iframe src=\"https://puntersedge.online/widget/v1/wgt_3f9a1c74e20b6d58/afl\" width=\"100%\" height=\"500\" frameborder=\"0\" loading=\"lazy\" title=\"afl\"></iframe>",
"nrl": "<iframe src=\"https://puntersedge.online/widget/v1/wgt_3f9a1c74e20b6d58/nrl\" width=\"100%\" height=\"500\" frameborder=\"0\" loading=\"lazy\" title=\"nrl\"></iframe>"
}
},
"csp": "frame-src https://puntersedge.online"
}
GET /v1/account — Your account: email, plan, password, billing and consent statusPOST /v1/account/marketing — Turn promotional emails on or off for your accountPOST /v1/account/password — Set or change your account passwordGET /v1/billing/overage — Overage: state, rate and ceilingPOST /v1/billing/overage — Switch overage on or offGET /v1/billing/portal — Self-service billing portal linkPOST /v1/billing/portal — Billing portal link (console; confirms your password)GET /v1/billing/upgrade-link — A signed link to your prorated upgrade pageThe free tier needs no credit card, and the sandbox endpoints need no key at all.
Get a free API key Quickstart