jeCheckDevelopers
Get an API key

Account

Identify the token: the acting user, the company, the plan and the effective permissions. Call GET /me first to check that a key works.

GETGet the current identity

GET /me

Returns the user the token acts as (for a company key — its service user), the company, the token kind and scopes, and the list of permissions with the locations where each one applies (null — all locations).

Token scoperead
Permission Any employee; results follow the token's visibility
MCP toolaccount_me · read-only

Responses

StatusDescription
200OK
401unauthorized — Missing, invalid, revoked or expired token
403forbidden · insufficient_scope · plan_required — Plan without API access
429rate_limited — Too many requests — retry after Retry-After seconds
Request
curl 'https://app.jecheck.io/api/ext/v1/me' \
  -H 'Authorization: Bearer $JECHECK_TOKEN'
const res = await fetch('https://app.jecheck.io/api/ext/v1/me', {
  method: 'GET',
  headers: {
    Authorization: `Bearer ${process.env.JECHECK_TOKEN}`,
  },
});
const { data } = await res.json();
import os, requests

res = requests.get(
    "https://app.jecheck.io/api/ext/v1/me",
    headers={"Authorization": f"Bearer {os.environ['JECHECK_TOKEN']}"},
)
res.raise_for_status()
data = res.json()["data"]
$client = new GuzzleHttp\Client(['base_uri' => 'https://app.jecheck.io/api/ext/v1/']);

$res = $client->request('GET', 'me', [
    'headers' => ['Authorization' => 'Bearer ' . getenv('JECHECK_TOKEN')],
]);
$data = json_decode($res->getBody(), true)['data'];
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "account_me",
        "arguments": {}
    }
}
Response 200
{
  "data": {
    "user": {
      "id": 1042,
      "uuid": "9b7c3f8e-2d1a-4b6e-9f00-1c2d3e4f5a6b",
      "name": "API: Data warehouse",
      "email": "[email protected]",
      "is_admin": false,
      "is_service": true,
      "locale": "en"
    },
    "company": {
      "id": 761,
      "name": "Coffee Lab",
      "country": "KZ",
      "locale": "ru",
      "timezone": "Asia/Almaty",
      "plan": "enterprise"
    },
    "token": {
      "kind": "key",
      "name": "Data warehouse",
      "prefix": "jck_live_a1B2c3",
      "scopes": [
        "read",
        "write"
      ],
      "expires_at": null
    },
    "permissions": {
      "analytics.view": null,
      "audits.view": [
        12,
        14
      ],
      "tasks.view_all": null
    },
    "locations": [
      {
        "id": 12,
        "name": "Abay Ave"
      },
      {
        "id": 14,
        "name": "Dostyk Plaza"
      }
    ]
  }
}

GETGet the company profile

GET /company

Company settings that matter for integrations: name, country, language of reports, time zone, plan and its paid features, number of locations.

Token scoperead
Permission Any employee; results follow the token's visibility
MCP toolaccount_company · read-only

Responses

StatusDescription
200OK
401unauthorized — Missing, invalid, revoked or expired token
403forbidden · insufficient_scope · plan_required — Plan without API access
429rate_limited — Too many requests — retry after Retry-After seconds
Request
curl 'https://app.jecheck.io/api/ext/v1/company' \
  -H 'Authorization: Bearer $JECHECK_TOKEN'
const res = await fetch('https://app.jecheck.io/api/ext/v1/company', {
  method: 'GET',
  headers: {
    Authorization: `Bearer ${process.env.JECHECK_TOKEN}`,
  },
});
const { data } = await res.json();
import os, requests

res = requests.get(
    "https://app.jecheck.io/api/ext/v1/company",
    headers={"Authorization": f"Bearer {os.environ['JECHECK_TOKEN']}"},
)
res.raise_for_status()
data = res.json()["data"]
$client = new GuzzleHttp\Client(['base_uri' => 'https://app.jecheck.io/api/ext/v1/']);

$res = $client->request('GET', 'company', [
    'headers' => ['Authorization' => 'Bearer ' . getenv('JECHECK_TOKEN')],
]);
$data = json_decode($res->getBody(), true)['data'];
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "account_company",
        "arguments": {}
    }
}
Response 200
{
  "data": {
    "id": 761,
    "name": "Coffee Lab",
    "country": "KZ",
    "locale": "ru",
    "timezone": "Asia/Almaty",
    "plan": {
      "key": "enterprise",
      "until": null,
      "features": [
        "automation",
        "ai",
        "testing",
        "haccp",
        "api"
      ]
    },
    "locations_count": 14,
    "created_at": "2024-03-02T09:15:00+05:00"
  }
}