Noms Usage API

Your **account's** usage against its quota for the current window — the total across every key you hold, which is what enforcement compares against. Poll it to see where you stand before hitting the limit.

Operations 1

GET /v1/usage Get your usage and quota #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/noms:noms-usage-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

noms-usage-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Noms Usage API
  summary: 'A REST API for nutritional data: foods, brands, nutrients and food groups.'
  description: '**Noms** is a REST API for nutritional data: **foods**, **brands**, **nutrients**

    and **food groups**.'
  contact:
    name: Noms
    url: https://noms.sh/
    email: support@noms.sh
  license:
    name: Proprietary — © Noms, all rights reserved
  version: v1
  x-logo:
    url: /wordmark.svg
    backgroundColor: '#ffffff'
    altText: Noms
    href: https://noms.sh
servers:
- url: https://api.noms.sh
  description: Production
tags:
- name: Usage
  description: Your **account's** usage against its quota for the current window — the total across every key you hold, which is what enforcement compares against. Poll it to see where you stand before hitting the limit.
  x-displayName: Usage
paths:
  /v1/usage:
    get:
      tags:
      - Usage
      summary: Get your usage and quota
      description: 'Return the calling account''s current-window usage against its quota.


        Reports the **account** total — the sum across every API key you own, which

        is the number quota enforcement actually compares against. Holding

        several keys does not raise the allowance; they share one. The same numbers

        back the `RateLimit-*` headers on every metered response, so this endpoint and

        a `429` can never disagree.


        An account with no requests yet in the window reports `request_count: 0`.

        This read is itself exempt from metering, so calling it does not consume

        quota — it stays reachable even while you are over cap.'
      operationId: usageUsage
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UsageResponse'
        '401':
          description: Authentication is missing or invalid.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: /problems/unauthorized
                title: Unauthorized
                status: 401
                detail: Valid authentication is required to access this resource.
                doc_url: https://api.noms.sh/docs#tag/unauthorized
        '503':
          description: The service is temporarily unable to handle the request; retry shortly.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: /problems/service-unavailable
                title: Service unavailable
                status: 503
                detail: The service is briefly unavailable; retry shortly.
                doc_url: https://api.noms.sh/docs#tag/service-unavailable
      security:
      - ApiKey: []
components:
  schemas:
    UsageData:
      properties:
        tier:
          $ref: '#/components/schemas/Tier'
          description: The account's access tier.
        quota_window:
          $ref: '#/components/schemas/QuotaWindow'
          description: 'The window the quota is measured over: `daily` (a rolling 24 hours) for the free tier, `monthly` (your billing period) for paid.'
        request_quota:
          type: integer
          title: Request Quota
          description: The maximum number of requests allowed in the window, across every API key on your account. Normally your tier's allowance; if support has granted your account a custom one, this reports that instead — it is always the number actually enforced.
        request_count:
          type: integer
          title: Request Count
          description: Requests counted against the account in the current window so far, summed across all your keys. Reading this endpoint does not count.
        remaining:
          type: integer
          title: Remaining
          description: Requests left in the current window (`request_quota - request_count`, floored at 0).
        period_end:
          type: string
          format: date-time
          title: Period End
          description: When allowance next frees up (ISO 8601, UTC). On the rolling free window this is the top of the next hour, as the oldest counted hour falls out of the trailing 24; on a paid tier it is the next billing-period boundary.
      type: object
      required:
      - tier
      - quota_window
      - request_quota
      - request_count
      - remaining
      - period_end
      title: UsageData
      description: The calling **account's** usage against its quota for the current window.
    UsageResponse:
      properties:
        data:
          $ref: '#/components/schemas/UsageData'
      type: object
      required:
      - data
      title: UsageResponse
      examples:
      - data:
          period_end: '2026-06-17T10:00:00Z'
          quota_window: daily
          remaining: 208
          request_count: 42
          request_quota: 250
          tier: taster
    Tier:
      type: string
      enum:
      - taster
      - sous_chef
      - head_chef
      title: Tier
      description: 'The API access tier assigned to this **account**.


        One of ``taster`` (free), ``sous_chef`` (paid), or ``head_chef`` (paid).'
    QuotaWindow:
      type: string
      enum:
      - daily
      - monthly
      title: QuotaWindow
      description: 'The window over which the **account''s** request quota is measured.


        ``daily`` is a rolling 24-hour window. ``monthly`` is the account''s billing

        period, starting from its renewal date.'
    Problem:
      properties:
        title:
          type: string
          title: Problem title
          description: Short, human-readable summary of the problem type.
        type:
          type: string
          title: Problem type
          description: Stable problem-type URI under `/problems/<slug>`. Relative, so it resolves against the host that served the response. The slug is never renamed — branch on this, not on `title` or `detail`.
        status:
          type: integer
          title: Status code
          description: The HTTP status code, repeated in the body.
        detail:
          anyOf:
          - type: string
          - type: 'null'
          title: Problem detail
          description: 'Human-readable explanation of *this* occurrence. Free text: it may name concrete values and may change without notice.'
        doc_url:
          type: string
          title: Documentation URL
          description: Deep link to this problem's entry in these docs, stamped per request against the host that served it. Present on every problem body.
      type: object
      required:
      - type
      - title
      - status
      title: Problem
      description: 'An **RFC 9457** problem document, served as `application/problem+json`. `type` is a stable, never-renamed URI you can branch on; the other core members are for humans.


        Individual problems add **extension members** on top of these — `retry_after` on a `429`, `supported_columns` on an invalid sort, `errors` on a validation failure. They are documented on the problem itself, under Problems, and a client should ignore any member it does not recognise rather than reject the body.'
  securitySchemes:
    ApiKey:
      type: apiKey
      description: Programmatic access key for the `/v1` resource endpoints. Send it as the `X-API-Key` header (`noms_sk_<env>_...`). Create one in your dashboard under **API Keys → Create key**; the raw key is shown once and never stored. Your account's tier governs which data you can read, and every key you own draws on the same request allowance.
      in: header
      name: X-API-Key
x-tagGroups:
- name: Resources
  tags:
  - foods
  - brands
  - nutrients
  - foodGroups
- name: Usage
  tags:
  - usage
  - market
- name: Problems
  tags:
  - invalid-cursor
  - invalid-filter
  - invalid-sort
  - invalid-include
  - invalid-fields
  - invalid-page-size
  - unknown-query-param
  - not-found
  - unauthorized
  - maintenance
  - quota-exceeded
  - rate-limited
  - enumeration-forbidden
  - result-depth-exceeded
  - market-not-selected
  - unknown-market
  - market-not-applicable
  - market-account-required
  - key-revoked
  - key-limit-reached
  - forbidden
  - service-unavailable
  - search-timeout
  - search-unavailable
  - api-version-removed
  - validation-error
  - internal-server-error
x-provenance:
  method: harvested
  publisher: Noms
  source: https://api.noms.sh/openapi.json
  note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
    stamped by stamp-openapi-provenance.py (roadmap#793)