Getir · OpenAPI Overlay 1.0.0

API Evangelist enhancements for the GetirFood API

11 actions 11 updates documentation extends openapi/getir-food-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Getir's API. It is a proposal applied on top of the contract, not a document Getir publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-timingx-apievangelist-preconditionsx-apievangelist-applies-tox-apievangelist-notedescriptioncontactx-apievangelist-docsx-apievangelist-status-page

Targets 11

$.info
$
$.paths['/auth/login'].post
$.paths['/food-orders/{foodOrderId}/verify'].post
$.paths['/food-orders/{foodOrderId}/verify-scheduled'].post
$.paths['/food-orders/{foodOrderId}/prepare'].post
$.paths['/food-orders/{foodOrderId}/handover'].post
$.paths['/food-orders/{foodOrderId}/deliver'].post
$.paths['/food-orders/periodic/unapproved'].post
$.paths['/changelog'].get
$.paths['/health'].get

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for the GetirFood API
  version: 1.0.0
extends: openapi/getir-food-openapi.yml
x-generated: '2026-07-31'
x-method: generated
x-source: >-
  Enhancements derived from the GetirFood integration documentation
  (https://developers.getir.com/food/documentation/giris) and from live probes of
  https://food-external-api-gateway.getirapi.com. The harvested Swagger 2.0 document at
  openapi/_original/getir-food-openapi.json is never mutated.
actions:
- target: $.info
  update:
    description: >-
      GetirFood partner integration API. Authenticate with POST /auth/login using your
      appSecretKey and restaurantSecretKey, then send the returned value as the `token` header
      on every other request. The token is valid for 1 hour. All dates and times are GMT.
    contact:
      name: GetirFood API Support
      email: getiryemekapi@getir.com
      url: https://developers.getir.com/food/documentation/giris
    x-apievangelist-docs: https://developers.getir.com/food/documentation/giris
    x-apievangelist-status-page: https://getir-food-integration.instatus.com/
    x-apievangelist-error-catalog: errors/getir-error-codes.yml
    x-apievangelist-webhooks: asyncapi/getir-food-webhooks.yml
    x-apievangelist-sandbox: sandbox/getir-sandbox.yml
    x-apievangelist-conventions: conventions/getir-conventions.yml
- target: $
  update:
    x-apievangelist-environments:
    - name: production
      host: food-external-api-gateway.getirapi.com
    - name: test
      host: food-external-api-gateway.development.getirapi.com
    securityDefinitions:
      tokenHeader:
        type: apiKey
        name: token
        in: header
        description: >-
          Opaque session token returned by POST /auth/login, valid for 1 hour. The published
          document declares no securityDefinitions and instead repeats `token` as a header
          parameter on 57 operations; this overlay names the scheme so tooling can bind it.
    x-apievangelist-rate-limits:
      default: 300 requests / 60 seconds per token, 20 second block
      strict_surface: 2 requests / 60 seconds per token, 30 second block
      exempt: /food-orders/periodic/*
      detail: rate-limits/getir-rate-limits.yml
    x-apievangelist-error-envelope:
      fields: [code, error, message, details, source]
      registry_size: 99
      format: proprietary (not RFC 9457)
- target: $.paths['/auth/login'].post
  update:
    x-apievangelist-token-ttl-seconds: 3600
    x-apievangelist-credential-issuance: >-
      Not self-service. A POS/integrator company requests an account from Getir
      (getiryemekapi@getir.com); test and live credentials are issued separately.
- target: $.paths['/food-orders/{foodOrderId}/verify'].post
  update:
    x-apievangelist-timing: >-
      An order must be answered within 30 seconds or the restaurant is called by IVR; the
      confirmation time limit is 5 minutes, after which the restaurant is auto-closed and its
      orders cancelled. At least 1 minute must elapse before calling /prepare.
    x-apievangelist-preconditions: Order status must be 400 (immediate or pre-approved scheduled order).
- target: $.paths['/food-orders/{foodOrderId}/verify-scheduled'].post
  update:
    x-apievangelist-preconditions: Order status must be 325 (scheduled order awaiting approval).
- target: $.paths['/food-orders/{foodOrderId}/prepare'].post
  update:
    x-apievangelist-timing: At least 1 minute must elapse after /verify, and before /deliver.
- target: $.paths['/food-orders/{foodOrderId}/handover'].post
  update:
    x-apievangelist-applies-to: deliveryType 1 — orders delivered by a Getir courier.
- target: $.paths['/food-orders/{foodOrderId}/deliver'].post
  update:
    x-apievangelist-applies-to: deliveryType 2 — orders delivered by the restaurant's own courier.
- target: $.paths['/food-orders/periodic/unapproved'].post
  update:
    x-apievangelist-usage: >-
      Backup path for orders that could not be handled from the webhook push. Exempt from the
      rate limiter, but the docs explicitly say not to poll it constantly.
- target: $.paths['/changelog'].get
  update:
    x-apievangelist-note: Unauthenticated. Returns sections -> versions -> dated bilingual entries.
- target: $.paths['/health'].get
  update:
    x-apievangelist-note: 'Unauthenticated. Returns {"time": epoch_ms, "status": "OK"}.'