Wger · OpenAPI Overlay 1.0.0

API Evangelist enrichment overlay for the wger REST API

14 actions 14 updates update extends ../openapi/wger-openapi.yml
Derived by API Evangelist Built from the contracts Wger publishes. Wger did not publish this file.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-consequencex-cascadex-reversiblex-rate-limitx-agent-escalationx-anonymousx-notex-apievangelist-profile

Targets 13

$.info
$.paths['/api/v2/routine/{id}/'].delete
$.paths['/api/v2/day/{id}/'].delete
$.paths['/api/v2/slot/{id}/'].delete
$.paths['/api/v2/workoutsession/{id}/'].delete
$.paths['/api/v2/measurement-category/{id}/'].delete
$.paths['/api/v2/ingredient/'].get
$.paths['/api/v2/ingredientinfo/'].get
$.paths['/api/v2/ingredient/{id}/'].get
$.paths['/api/v2/ingredient-sync/'].get
$.paths['/api/v2/userprofile/'].get
$.paths['/api/v2/exerciseinfo/'].get
$.paths['/api/v2/workoutlog/'].post

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enrichment overlay for the wger REST API
  version: 1.0.0
extends: ../openapi/wger-openapi.yml
x-generated: '2026-08-27'
x-method: derived
x-source: >-
  Derived from openapi/wger-openapi.yml plus the artifacts in this repository
  (conventions/, errors/, rate-limits/, lifecycle/, data-model/, mcp/). Applies
  API Evangelist annotations only — it adds no operation, parameter, schema or
  response that wger does not already publish, and the original spec is never
  mutated.
actions:
  - target: $.info
    update:
      x-apievangelist-profile: https://apis.io/provider/wger
      x-artifacts:
        authentication: authentication/wger-authentication.yml
        scopes: scopes/wger-scopes.yml
        conventions: conventions/wger-conventions.yml
        errors: errors/wger-problem-types.yml
        rate-limits: rate-limits/wger-rate-limits.yml
        lifecycle: lifecycle/wger-lifecycle.yml
        data-model: data-model/wger-data-model.yml
        mcp: mcp/wger-mcp.yml
        tool-crosswalk: mcp/wger-tool-crosswalk.yml
      x-self-hosted: true
      x-version-negotiation:
        note: >-
          Every wger instance is upgraded independently. Read /api/v2/version/,
          /api/v2/min-server-version/ and /api/v2/min-app-version/ before
          assuming a capability exists.
  - target: $.info
    update:
      x-error-format:
        rfc9457: false
        envelope: >-
          Django REST Framework — {"detail": "..."} or {"<field>": ["..."]}
        catalog: errors/wger-problem-types.yml
      x-idempotency:
        supported: false
        note: No Idempotency-Key. A retried POST creates a second row.
      x-reversibility:
        grade: none
        note: >-
          No cancel, undo, restore or soft-delete anywhere in the contract.
          Every *_destroy is terminal, and four of them cascade.
  - target: $.paths['/api/v2/routine/{id}/'].delete
    update:
      x-consequence: destructive
      x-cascade: [Day, Slot, SlotEntry, Config]
      x-reversible: false
      x-agent-escalation: recommended
  - target: $.paths['/api/v2/day/{id}/'].delete
    update:
      x-consequence: destructive
      x-cascade: [Slot, SlotEntry, Config]
      x-reversible: false
      x-agent-escalation: recommended
  - target: $.paths['/api/v2/slot/{id}/'].delete
    update:
      x-consequence: destructive
      x-cascade: [SlotEntry, Config]
      x-reversible: false
      x-agent-escalation: recommended
  - target: $.paths['/api/v2/workoutsession/{id}/'].delete
    update:
      x-consequence: destructive
      x-cascade: [WorkoutLog]
      x-reversible: false
      x-agent-escalation: recommended
      x-note: deleting a session takes its logged sets with it
  - target: $.paths['/api/v2/measurement-category/{id}/'].delete
    update:
      x-consequence: destructive
      x-cascade: [Measurement]
      x-reversible: false
  - target: $.paths['/api/v2/ingredient/'].get
    update:
      x-rate-limit:
        limit: 120
        window: 1m
        scope: per-IP anonymous / per-user authenticated
        exhaustion: 429 + Retry-After
        source: https://wger.readthedocs.io/en/latest/api/api.html
      x-anonymous: true
  - target: $.paths['/api/v2/ingredientinfo/'].get
    update:
      x-rate-limit:
        limit: 120
        window: 1m
        exhaustion: 429 + Retry-After
      x-anonymous: true
  - target: $.paths['/api/v2/ingredient/{id}/'].get
    update:
      x-rate-limit:
        limit: 300
        window: 1m
        exhaustion: 429 + Retry-After
      x-anonymous: true
  - target: $.paths['/api/v2/ingredient-sync/'].get
    update:
      x-rate-limit:
        limit: 600
        window: 1m
        exhaustion: 429 + Retry-After
      x-pagination: cursor
      x-note: >-
        Cursor-paginated; the response carries no count. Follow next rather than
        choosing an offset.
  - target: $.paths['/api/v2/userprofile/'].get
    update:
      x-rate-limit:
        note: >-
          The registration path through this collection is limited to 5
          requests/min.
  - target: $.paths['/api/v2/exerciseinfo/'].get
    update:
      x-anonymous: true
      x-prefer-over: /api/v2/exercise/
      x-note: >-
        Exercise carries no name; names live on ExerciseTranslation. The info
        projection embeds translations, images, videos, muscles and equipment.
  - target: $.paths['/api/v2/workoutlog/'].post
    update:
      x-plan-linkage:
        required_for_routine_views: [routine, slot_entry, iteration]
        note: >-
          A log posted without routine/slot_entry/iteration is freestanding and
          is invisible to every routine view and routine statistic.

Work with this as data

Every overlay 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 openapi overlays

4 MCP tools reach this
  • find_overlaysBrowse and filter every overlay in the catalog.
  • 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 overlay
curl "https://apis.io/api/v1/overlays/wger-openapi-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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.