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.

Base URLhttps://api.kemegames.com/v1HTTPS only · TLS 1.2+
AuthenticationRequired

JWT bearer tokens, API key provisioning, and session management.

Organizations

Manage gaming studio organizations, members, and billing settings.

Applications

Register and configure game titles, SDK keys, and support channels.

Players

Retrieve player profiles, activity history, and linked accounts.

Tickets

Create, update, assign, and resolve support tickets at scale.

Messages

Post and retrieve messages within a ticket thread, including AI replies.

Attachments

Upload and serve screenshots, logs, and binary files within tickets.

AnalyticsAI

Query aggregated support metrics, CSAT scores, and resolution trends.

Webhooks

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.

Authorization header
1GET /v1/tickets HTTP/1.1
2Host: api.kemegames.com
3Authorization: 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: true and Sunset: <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:

Rate-limit response headers
1HTTP/1.1 200 OK
2X-RateLimit-Limit: 1000
3X-RateLimit-Remaining: 847
4X-RateLimit-Reset: 1750000860
5X-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.

Paginated response
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.

Fetching page 3 of tickets
1curl "https://api.kemegames.com/v1/tickets?limit=20&offset=40" \
2 -H "Authorization: Bearer $KEME_API_KEY"
Tip:For real-time feeds (e.g. new tickets arriving while you page), prefer the Webhooks API over polling a paginated endpoint — you will receive events instantly without burning rate-limit budget.

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.

Error response envelope
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.

HTTPCodeDescription
400bad_requestMalformed request body or missing required fields.
401unauthorizedMissing or invalid bearer token.
403forbiddenValid token but insufficient permissions for this resource.
404not_foundThe requested resource does not exist.
409conflictA resource with the same unique key already exists.
422unprocessable_entityValidation failed — see the errors array for details.
429rate_limitedRequest rate exceeded. Retry after X-RateLimit-Reset.
500internal_errorUnexpected server error. Contact support if it persists.
503service_unavailableTemporary 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.

KoAndroid (Kotlin)SwiOS (Swift)C#Unity (C#)C+Unreal Engine (C++)JSJavaScript / Node.js
  • 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.
Tip:Try every endpoint interactively in the API Explorer — no code required. Authenticate with your live or sandbox API key and inspect real request/response payloads alongside the schema reference.
Last updated: June 15, 2026Edit this page