Raw GraphQL and REST
Editions: Open Source · Free Cloud · Pro · Workers
There is no first-party Python / PHP / Java / Ruby / C# Admin SDK. Use HTTP + GraphQL (preferred) or the REST shim where exposed. First-party SDKs exist only for JS, Go, and Flutter (not pub.dev).
Common setup
- Publish schema in Console.
- Copy project GraphQL endpoint +
ak_…(or user JWT). POSTJSON{ "query": "...", "variables": { } }withAuthorization: Bearer <token>.
Prefer operation names from API Explorer introspection — they follow Engine naming, not ad-hoc REST paths.
PHP (equity path)
<?php
$endpoint = getenv('APITO_GRAPHQL_ENDPOINT');
$token = getenv('APITO_API_KEY');
$query = <<<'GQL'
query ListPosts($limit: Int) {
# replace with your published search/list field
searchPost(limit: $limit) { id data { title } }
}
GQL;
$payload = json_encode([
'query' => $query,
'variables' => ['limit' => 10],
]);
$ch = curl_init($endpoint);
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'Authorization: Bearer ' . $token,
],
CURLOPT_POSTFIELDS => $payload,
CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch);
Adjust the selection set to your models. Same pattern works in Python requests, Java OkHttp, etc.
REST
If your Engine build exposes REST/OpenAPI for models, call those routes with the same project token. Feature coverage can lag GraphQL — verify in API Explorer.
Do not
- Claim an unsupported language SDK.
- Point raw app clients at
/system/graphql.
Next
- System vs secured
- JS SDK (if you can switch)
- Troubleshooting