Administration

API Reference

Enterprise

Integrate your organization's data with external tools, analytics platforms, and custom applications using the Enkelt.ai REST API.

Base URL

https://enkelt.ai/api/public/v1

All API requests should be made to this base URL. HTTPS is required.

Quick Overview

The Enkelt.ai API provides programmatic access to your organization's data. Use it to build custom integrations, sync data with external systems, or create automated workflows.

Bearer Auth

Authenticate with API keys using the Authorization header.

Rate Limited

Requests are rate-limited per tier. Enterprise gets 1,000 req/min.

JSON Format

All requests and responses use JSON. UTF-8 encoding required.

Authentication

All API requests require authentication using a Bearer token. Generate API keys from the Compliance > API Keys section in your dashboard.

Authorization Header

HTTP Header
Authorization: Bearer sk_live_your_api_key_here

Example Request

cURL
curl -X GET "https://enkelt.ai/api/public/v1/players" \
  -H "Authorization: Bearer sk_live_your_api_key" \
  -H "Content-Type: application/json"

Keep Your API Key Secure

Never expose your API key in client-side code, public repositories, or logs. Treat it like a password. If compromised, revoke it immediately and generate a new one.

Rate Limiting

API requests are rate-limited to ensure fair usage and system stability. Limits are applied per API key and reset on a rolling window basis.

Free
Requests / Minute
10
Requests / Day
100
Basic
Requests / Minute
60
Requests / Day
1,000
Pro
Requests / Minute
300
Requests / Day
10,000
Enterprise
Requests / Minute
1,000
Requests / Day
100,000

Rate Limit Headers

Every response includes headers showing your current rate limit status:

X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 987
X-RateLimit-Reset: 1703275200

Available Endpoints

The API provides access to the following resources. All endpoints require authentication and respect the permissions assigned to your API key.

Players

GET
/playersList all players in your organization
GET
/players/:idGet a specific player by ID
POSTplayers:write
/playersCreate a new player
PATCHplayers:write
/players/:idUpdate an existing player

Role Validation

The role field must be a valid role for the team's game. If no team is assigned, roles are validated against the "Other" game roles.

LoL: Top, Jungle, Mid, ADC, Support, Coach, Analyst, Substitute
Valorant: Duelist, Initiator, Controller, Sentinel, Flex, IGL, Coach, Analyst, Substitute
CS2: Entry Fragger, AWPer, Rifler, Support, Lurker, IGL, Coach, Analyst, Substitute
Other: Player, Captain, Coach, Analyst, Manager, Substitute

Teams & Schedule

GET
/teamsList all teams in your organization
GET
/rosterGet roster information
GET
/scheduleGet upcoming schedule and matches

Prospects

GET
/prospectsList all prospects in your pipeline
GET
/prospects/:idGet a specific prospect
POSTprospects:write
/prospectsAdd a new prospect
PATCHprospects:write
/prospects/:idUpdate prospect details

Contracts

GET
/contractsList all contracts
GET
/contracts/:idGet contract details
GET
/contracts/expiringGet contracts expiring soon

Response Format

All API responses follow a consistent JSON structure. Successful responses include the data and metadata, while errors include error codes and messages.

Success Response

200 OK
{
  "success": true,
  "data": {
    "id": "player_abc123",
    "ign": "TenZ",
    "realName": "Tyson Ngo",
    "game": "valorant",
    "role": "duelist",
    "country": "CA",
    "createdAt": "2024-01-15T10:30:00Z"
  },
  "meta": {
    "count": 1,
    "requestId": "req_xyz789",
    "timestamp": "2024-01-15T10:30:00Z"
  }
}

Error Response

4xx / 5xx
{
  "success": false,
  "error": {
    "code": "RATE_LIMIT_EXCEEDED",
    "message": "Rate limit exceeded",
    "status": 429
  }
}

Error Codes

When an error occurs, the API returns an appropriate HTTP status code and a JSON body with details about the error.

INVALID_API_KEY401

The API key is missing or malformed

KEY_REVOKED403

The API key has been revoked

KEY_EXPIRED403

The API key has expired

INSUFFICIENT_PERMISSIONS403

The API key lacks required permissions for this endpoint

VALIDATION_ERROR400

Request body is missing required fields or contains invalid values

INVALID_PARAMETER400

A query parameter has an invalid value

INVALID_ROLE400

The role is not valid for the team's game. See valid roles per game

RATE_LIMIT_EXCEEDED429

Too many requests. Wait and retry

NOT_FOUND404

The requested resource was not found

INTERNAL_ERROR500

An unexpected server error occurred

Permissions & Scopes

API keys can be assigned specific permissions to limit what data they can access. Always use the minimum permissions required for your integration.

players:read

View player profiles, stats, and basic information

players:write

Create and update player profiles

prospects:read

View prospects in your recruitment pipeline

prospects:write

Add and update prospects

contracts:read

View contract details and expiration dates

teams:read

View teams and team details

roster:read

View roster information and player assignments

schedule:read

View upcoming schedule, matches, and events

Code Examples

Here are examples of how to use the API in popular programming languages.

JavaScript / Node.js

JavaScript / Node.js
const response = await fetch('https://enkelt.ai/api/public/v1/players', {
  headers: {
    'Authorization': 'Bearer sk_live_your_api_key',
    'Content-Type': 'application/json'
  }
});

const { data } = await response.json();
console.log(data); // Array of players

Python

Python
import requests

response = requests.get(
    'https://enkelt.ai/api/public/v1/players',
    headers={
        'Authorization': 'Bearer sk_live_your_api_key',
        'Content-Type': 'application/json'
    }
)

data = response.json()
print(data['data'])  # List of players

Best Practices

  • Use environment variables to store your API key, never hardcode it
  • Implement exponential backoff when you receive rate limit errors (429)
  • Cache responses when possible to reduce API calls
  • Use the minimum required permissions for your API key
  • Rotate API keys periodically for better security
  • Monitor your API usage in the dashboard to avoid hitting limits

Need Help?

Check the API Keys dashboard for usage analytics and logs. If you're experiencing issues, contact our support team with your request ID from the error response.