API Reference
The Keme Care REST API lets you integrate player support directly into your game client, backend services, and internal tooling. All endpoints return application/json and follow standard REST conventions: resource-oriented URLs, HTTP verbs for actions, and predictable error shapes.
https://api.kemegames.com/v1HTTPS only · TLS 1.2+JWT bearer tokens, API key provisioning, and session management.
Manage gaming studio organizations, members, and billing settings.
Register and configure game titles, SDK keys, and support channels.
Retrieve player profiles, activity history, and linked accounts.
Create, update, assign, and resolve support tickets at scale.
Post and retrieve messages within a ticket thread, including AI replies.
Upload and serve screenshots, logs, and binary files within tickets.
Query aggregated support metrics, CSAT scores, and resolution trends.
Subscribe to real-time event streams for tickets, players, and automation.
Authentication
Every request to the Keme API must carry a valid bearer token in the Authorization header. Tokens are issued during the OAuth 2.0 authorization code flow or generated as long-lived API keys from the Keme dashboard.
1GET /v1/tickets HTTP/1.12Host: api.kemegames.com3Authorization: Bearer keme_live_sk_••••••••••••••••
Tokens are scoped to an organization and carry fine-grained permissions (e.g. tickets:read, players:write). See the Authentication guide for the full token lifecycle, refresh flow, and permission reference.
Versioning
The current stable API version is v1, embedded in the base URL path. Keme follows a date-based deprecation policy: a version remains supported for a minimum of 12 months after the next major version is announced.
- Breaking changes (field removals, behaviour changes) are never shipped within a version.
- Additive changes (new fields, new endpoints) may be shipped at any time within a version.
- Deprecation notices appear in response headers as
Deprecation: trueandSunset: <date>. - Subscribe to the changelog to receive advance notice of breaking changes.
Rate Limiting
API requests are rate-limited per organization at 1,000 requests per minute across all keys. Limits are enforced using a sliding-window counter and are applied per IP for unauthenticated endpoints.
Every response includes rate-limit headers so you can track consumption and back off gracefully:
1HTTP/1.1 200 OK2X-RateLimit-Limit: 10003X-RateLimit-Remaining: 8474X-RateLimit-Reset: 17500008605X-RateLimit-Window: 60
X-RateLimit-Limit— maximum requests allowed in the current window.X-RateLimit-Remaining— requests remaining before the limit is hit.X-RateLimit-Reset— Unix timestamp (UTC) when the window resets.X-RateLimit-Window— window duration in seconds (always 60).
When the limit is exceeded the API returns 429 Too Many Requests. Implement exponential back-off with jitter and read X-RateLimit-Reset to determine the earliest safe retry time. Enterprise plans support higher limits — contact support@kemegames.com to request an increase.
Pagination
All collection endpoints use offset-based pagination via two query parameters: limit (default: 20, max: 100) and offset (default: 0). Every paginated response wraps the result array in a standard envelope.
1{2 "total": 142,3 "limit": 20,4 "offset": 0,5 "data": [ ... ]6}
Use total to calculate the number of pages: Math.ceil(total / limit). Advance the cursor by incrementing offset by limit on each successive request.
1curl "https://api.kemegames.com/v1/tickets?limit=20&offset=40" \2 -H "Authorization: Bearer $KEME_API_KEY"
Error Handling
All errors return a consistent JSON envelope. Parse the code field for programmatic handling; use message for human-readable logging; inspect errors[] for field-level validation failures.
1{2 "status": 422,3 "code": "unprocessable_entity",4 "message": "Validation failed for the request body.",5 "request_id": "req_01HXYZ9ABC12DEFGH",6 "errors": [7 {8 "field": "subject",9 "message": "subject is required and must be between 3 and 200 characters."10 },11 {12 "field": "priority",13 "message": "priority must be one of: low, medium, high, critical."14 }15 ]16}
The request_id is present on every response (success and error). Include it when contacting Keme support to speed up incident investigation.
| HTTP | Code | Description |
|---|---|---|
| 400 | bad_request | Malformed request body or missing required fields. |
| 401 | unauthorized | Missing or invalid bearer token. |
| 403 | forbidden | Valid token but insufficient permissions for this resource. |
| 404 | not_found | The requested resource does not exist. |
| 409 | conflict | A resource with the same unique key already exists. |
| 422 | unprocessable_entity | Validation failed — see the errors array for details. |
| 429 | rate_limited | Request rate exceeded. Retry after X-RateLimit-Reset. |
| 500 | internal_error | Unexpected server error. Contact support if it persists. |
| 503 | service_unavailable | Temporary outage. Retry with exponential back-off. |
SDKs
Official Keme SDKs are available for all major game platforms and runtimes. Each SDK wraps the REST API and handles authentication, token refresh, retry logic with exponential back-off, and offline queueing automatically — so your game code only deals with business logic.
- All SDKs are open-source and MIT-licensed — contributions welcome on GitHub.
- Each SDK ships with a built-in AI reply widget that surfaces Keme's AI-generated responses directly in-game.
- In-game sessions automatically attach device metadata, platform, and game version to every ticket for faster triage.
- Offline ticket creation is queued locally and flushed when connectivity is restored.