Dexyd DevelopersAPI, webhooks, and AI assistants

Contests

Track your challenges in your own dashboards.

Submissions

Bring entries closer to your operational tracking.

Expo

Connect visible projects to commercial follow-up.

Base

Start with REST v1

Versioned public endpoints live under the same domain as the app and return predictable JSON responses.

Base URL
https://www.dexyd.com/api/v1
Authentication
Authorization: Bearer <developer key>

The x-dexyd-api-key header is also accepted.

Format
application/json

Exports can also return text/csv.

Pagination
limit and offset

limit is clamped between 1 and 100.

Request
curl "https://www.dexyd.com/api/v1/competitions?limit=10" \
  -H "Authorization: Bearer dxyd_test_..." \
  -H "Accept: application/json"
Response
{
  "data": [],
  "pagination": {
    "limit": 10,
    "offset": 0,
    "total": 0
  }
}
Authentication

Create a key and send it with every request

Authenticated REST calls use a developer key created in the Dexyd console. Send the key from your server and limit it to the scopes the integration needs.

Create a key
Open the developer console in Dexyd, choose the test or live environment, name the key, then copy it when it is created.
Recommended header
Authorization: Bearer <developer key>

Use this header for server calls to REST and MCP endpoints.

Alternative header
x-dexyd-api-key: <developer key>

Accepted for integrations that cannot use Authorization.

Security
Never place a live key in a browser, mobile app, or public repository; proxy calls through your backend.
Rotation
Revoke an exposed key from the console, then create a new key with the same useful scopes.
Headers
Authorization: Bearer dxyd_live_...
x-dexyd-api-key: dxyd_live_...
Access

Scopes and environments

Test keys are intended for public reads. Live keys and sensitive scopes depend on the plan enabled in the developer console.

public:read
Read available public resources.
competitions:read
List public contests or organizer-owned contests with organizer=me.
submissions:read
Read submissions for a contest. Non-owners only see approved submissions.
expo:read
Read public Expo products or creator-owned products with mine=true.
exports:read
Export organizer contests as JSON or CSV.
media:import, agent:mcp, drafts:write
Advanced scopes for media imports, MCP and confirmable drafts.
Endpoints

Available REST reference

Each row shows the method, path, expected scope and parameters that affect the response.

GET/api/v1/competitions

Lists public contests or organizer-owned contests.

public:read + competitions:read
  • Query: organizer=me, status, category, limit, offset.
  • Response: data[] and pagination.
GET/api/v1/submissions

Lists submissions for a contest.

submissions:read
  • Required query: competition_id.
  • Optional query: limit, offset.
  • Response: submissions with status, media, votes and dates.
GET/api/v1/expo-products

Lists visible Expo products or creator-owned products.

public:read + expo:read
  • Query: mine=true, q, category, limit, offset.
  • Response: products with category, stage, availability and media.
GET/api/v1/exports/competitions

Exports organizer contests.

exports:read
  • Query: format=json or format=csv.
  • Response: JSON or dexyd-competitions.csv.
Errors

Errors, limits and headers

Errors keep a stable shape so integrations can decide what to retry, correct or escalate.

400
Missing or invalid parameter.
401
Missing, invalid, expired or revoked key.
402
Plan is insufficient for live or advanced access.
403
Scope is insufficient for the requested action.
404
Resource not found.
429
Minute or daily limit exceeded.
503
Developer storage is not configured yet.
  • Authenticated responses include X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset.