API & Integrations
Show game performance, upcoming competitions and the events you have registered for.
Connect your account
- Sign in to your Cobra Helix account and open key management. Regular accounts can manage their own key.
- Generate a personal read-only key and copy it when shown. If a key is already active, use your saved copy or coordinate replacement before revoking it.
- Connect the key to your trusted dashboard. Send it in the
Authorization: Bearer YOUR_KEYheader from your server.
Keep keys encrypted on the server. Do not place them in URLs, public pages, browser code, source control or shared documents. Revoke a key on the source site to stop future API reads; data already cached by a dashboard may remain until its private cache expires.
Generate or manage my key →Available calls
Append a route below to this base URL:
https://cobrahelix.com/wp-json/cobra-user/v1Expand a call to see its parameters, request and response. Examples use fictional data and may omit fields; they are not your account data or a live quote.
GET/mePersonal key
My profile
Account identity and read-only scope.
Parameters · None
Example request
curl --request GET \
--url 'https://cobrahelix.com/wp-json/cobra-user/v1/me' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_KEY'Example response excerpt · HTTP 200
{
"id": 42,
"username": "example_user",
"display_name": "Example User",
"profile_url": "https://cobrahelix.com/profile/example_user",
"scope": "dashboard:read",
"updated_at": "2026-11-05T12:00:00Z"
}GET/me/game-statsPersonal key
My game stats
Claims, per-game best score, rank and separately classified rewards.
Parameters · None
Example request
curl --request GET \
--url 'https://cobrahelix.com/wp-json/cobra-user/v1/me/game-stats' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_KEY'Example response excerpt · HTTP 200
{
"summary": {
"recorded_claims": 12,
"games_with_claims": 1,
"global_rank": 20,
"confirmed_mlx": "5000",
"pending_mlx": "100",
"paid_competition_wins": 1
},
"games": [
{
"game": "Pong",
"recorded_claims": 12,
"best_recorded_score": 2000
}
],
"updated_at": "2026-11-05T12:00:00Z"
}GET/schedulePublic · no key
Upcoming schedule
Published upcoming or in-progress competitions with UTC times and registration deadline.
Parameters · page: integer 1–10000; per_page: integer 1–50.
Example request
curl --request GET \
--url 'https://cobrahelix.com/wp-json/cobra-user/v1/schedule?page=1&per_page=6' \
--header 'Accept: application/json'Example response excerpt · HTTP 200
{
"items": [
{
"id": 123,
"title": "Example competition",
"url": "https://cobrahelix.com/competition/example/",
"game": {
"name": "Pong",
"slug": "pong"
},
"starts_at": "2026-11-05T12:00:00Z",
"ends_at": "2026-11-05T12:30:00Z",
"timezone": "UTC",
"status": "scheduled",
"registration_closes_at": "2026-11-05T11:00:00Z",
"registration_open": true
}
],
"pagination": {
"page": 1,
"per_page": 6,
"total": 1,
"total_pages": 1
},
"updated_at": "2026-11-05T12:00:00Z"
}GET/me/registrationsPersonal key
My registrations
Only this account’s competition registrations.
Parameters · page: integer 1–10000; per_page: integer 1–50. scope: upcoming or all.
Example request
curl --request GET \
--url 'https://cobrahelix.com/wp-json/cobra-user/v1/me/registrations?page=1&per_page=6&scope=upcoming' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_KEY'Example response excerpt · HTTP 200
{
"items": [
{
"event": {
"id": 123,
"title": "Example competition",
"url": "https://cobrahelix.com/competition/example/",
"game": {
"name": "Pong",
"slug": "pong"
},
"starts_at": "2026-11-05T12:00:00Z",
"ends_at": "2026-11-05T12:30:00Z",
"timezone": "UTC",
"status": "scheduled",
"registration_closes_at": "2026-11-05T11:00:00Z",
"registration_open": true
},
"registration_status": "registered",
"status_label": "Registered",
"registered_at": "2026-11-04T12:00:00Z"
}
],
"pagination": {
"page": 1,
"per_page": 6,
"total": 1,
"total_pages": 1
},
"updated_at": "2026-11-05T12:00:00Z"
}Parameters and limits
page: integer 1–10000; per_page: integer 1–50. Schedule defaults to 10 items. Registrations default to scope=upcoming; scope=all includes past registrations. Personal keys have a soft limit of 120 requests per minute.
Amounts such as MLX and USD cents may be decimal strings. Preserve their precision instead of converting large values to floating-point numbers. Use the returned pagination totals. Times shown in examples are ISO 8601 UTC; display dates in the user’s timezone.
What the data means
Recorded claims are not every gameplay session. Scores are comparable within each game only. Confirmed and pending MLX remain separate. This API cannot play games, register for competitions or send payments.
Response handling
| HTTP | Meaning |
|---|---|
200 | Successful read. An empty items array can be a valid result. |
400 | Invalid or out-of-range parameters. |
401 | Missing, invalid or revoked personal key. |
429 | Too many requests. Wait before retrying. |
503 | Data or a required source service is temporarily unavailable. Do not replace this with zero. |
Use the HTTP status for error handling. Error bodies vary by route. Keep cached personal data private and short-lived; handle missing values and empty lists.
Optional PHP client
The API works with any language that can make HTTPS requests. A WordPress PHP reference client and README are also available as a convenience.
Download PHP client and README ↓