CompuDime API docs

Reference / Your key and usage

GET /v1/me

Describe the calling key

KeyRequired. See Authentication.
Scopeplatform.me.read
Pricefree. 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

StatusDescriptionBody
200Who 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
401Public API key is missing, invalid, or revoked.Problem
403The API key is not enabled for this endpoint.Problem
405The requested method is not allowed for this endpoint.Problem
429Too 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
500The API edge encountered an internal error.Problem
503A 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.

LevelScopeEffect
ownplatform.me.readThe level does not change this operation: own and all return the same data.
allplatform.me.readThe level does not change this operation: own and all return the same data.