Reference / Your key and usage
GET /v1/me
Describe the calling key
| Key | Required. See Authentication. |
|---|---|
| Scope | platform.me.read |
| Price | free. How pricing works. |
Example
curl -s "https://api.compudime.com/v1/me" \
-H "Authorization: Bearer $PUBLIC_API_KEY"
The answer looks like this:
{
"requestId": "req_0123456789abcdef",
"key": {
"prefix": "cd_live_",
"mode": "live",
"kind": "genie"
},
"integration": {
"integrationId": "5f1c2d3e-4a5b-4c6d-8e7f-90a1b2c3d4e5",
"displayName": "Shelf labels",
"capabilityId": "catalog-feed",
"capabilities": [
"catalog-feed"
],
"accessLevel": "own",
"billingClass": "charged"
},
"store": {
"storeId": "corner_market",
"displayName": "Corner Market"
},
"fieldPolicy": {
"policyId": "corner_market:catalog.products.default:v1",
"version": 1,
"resources": [
{
"resource": "catalog.products.default",
"endpoints": [
"catalog.products.list",
"catalog.products.get"
],
"source": "policy",
"fields": [
"productCode",
"upc",
"unitsPerCase",
"description",
"smallDescription",
"brand",
"department",
"category",
"size",
"pack",
"price",
"priceQty",
"taxable",
"active",
"lastModifiedUtc",
"inactive",
"lastSold"
],
"defaultFields": [
"productCode",
"upc",
"description",
"brand",
"price"
]
},
{
"resource": "catalog.products.live",
"endpoints": [
"catalog.products.lookup"
],
"source": "catalog",
"fields": [
"productCode",
"description",
"price",
"activePrice",
"onHand",
"upc",
"unitsPerCase",
"smallDescription",
"brand",
"department",
"category",
"subCategory",
"size",
"pack",
"casePrice",
"packagePrice",
"packageQty",
"salePrice",
"saleActive",
"caseSalePrice",
"caseSaleActive",
"packageSalePrice",
"packageSaleQty",
"packageSaleActive",
"priceEmbedded",
"scale",
"autoTare",
"tare",
"noSale",
"inactive",
"taxable",
"foodStamp",
"wic",
"matchType",
"matchField",
"matchedCode",
"lastSold",
"lastModifiedUtc"
],
"defaultFields": [
"productCode",
"description",
"price",
"activePrice",
"onHand"
]
}
]
},
"rateLimit": {
"requestsPerMinute": 120,
"burst": 120
},
"credits": {
"storeId": "corner_market",
"planId": "starter",
"state": "active",
"cardState": "valid",
"overageEnabled": false,
"overageCapCredits": 0,
"currentPeriod": "2026-10",
"billingMode": "manual",
"usedCredits": 212,
"includedCredits": 1000,
"overageCredits": 0,
"baseCredits": 212,
"extraFieldCredits": 0,
"pendingCredits": 0,
"sandboxUsedCredits": 0,
"sandboxIncludedCredits": 500
}
}
Responses
| Status | Description | Body |
|---|---|---|
200 | Who the calling key is: its display prefix, mode (live or test) and kind (genie for cd_ keys, compuconnect for cc_ keys); its integration (capability, access level, billing class); its store; for each resource the key can read, the fields it may request and the ones an omitted fields returns; its per-key rate limit; and, for the store's own keys, the store's credits for the month, as GET /v1/usage/current reports them without the per-endpoint breakdown. A key your organization holds for a store (a developer's key under the owner's approval, for instance) never sees the store's plan or credits: credits is left out, creditsNote says its calls are billed to your organization (or to the store, when the owner chose to pay), and usageUrl links your organization's usage at https://account.compudime.com/usage. Never the key itself. When billing cannot be read the answer is still 200, with credits left out and creditsNote saying so. Free; a good first call. | MeResponse |
401 | Public API key is missing, invalid, or revoked. | Problem |
403 | The API key is not enabled for this endpoint. | Problem |
405 | The requested method is not allowed for this endpoint. | Problem |
429 | Too many requests from this API key (code rate_limited). Each key has its own request budget at the API edge, refilled continuously; it covers every authenticated endpoint, including the free ones, and is checked before anything is billed or sent to the store. Wait at least Retry-After seconds before the next request with this key, then resume; if 429 answers again, back off exponentially (double the wait each time, up to a minute or so) and add random jitter so parallel workers do not retry in step. A 429 is never charged and reserves nothing. Header Retry-After: Whole seconds to wait before retrying with this key: the time until the key's next request token at the edge (never less than 1), or 60 when the store plan's per-minute ceiling refused the call. | Problem |
500 | The API edge encountered an internal error. | Problem |
503 | A required Public API dependency is temporarily unavailable. Also answered, with code endpoint_disabled, while CompuDime has temporarily switched the endpoint off: the whole API, the endpoint's family (x-compudime-family) or this endpoint alone; the detail says which and why. It is checked before anything is validated, reserved or sent to the store, so it is never charged; it is retryable and carries Retry-After. Header Retry-After: Sent with code endpoint_disabled: whole seconds to wait before asking again. A switch has no scheduled end, so this is a polling interval (60), not a promise. | Problem |
Error bodies are problem JSON; every code is listed there.
Access level
What your integration's access level changes here.
| Level | Scope | Effect |
|---|---|---|
own | platform.me.read | The level does not change this operation: own and all return the same data. |
all | platform.me.read | The level does not change this operation: own and all return the same data. |