# Barogo (바로고) — Gorela Order Agency API > Barogo is a South Korean last-mile delivery platform, founded 2014 in Seoul. It runs a > nationwide two-wheeler dispatch network for food and goods, and brokers delivery between > merchants and delivery agencies. Its developer-facing product is **Gorela (고릴라)** — a > delivery-brokerage platform whose API connects an "order agency" (a POS, marketplace or > commerce platform that receives the customer's order) to the delivery agencies that assign > riders. One order can fan out into N deliveries; order state and delivery state are tracked > separately, and an order only closes when every child delivery is terminal. Generated by API Evangelist from Barogo's published developer reference. Barogo publishes no llms.txt of its own; this file was generated 2026-08-06 from https://developer.gorelas.com/api-docs-md/ (reference last updated 2026-06-23). ## What an agent should know first - Auth is a static API key as an HTTP bearer token: `Authorization: Bearer {API_Key}`. There is no OAuth, no OIDC, no scopes and no refresh. Keys are issued from the 연동 관리 console after a signed partner agreement — there is no self-serve path. - Base URLs: production `https://api-interlocker.gorelas.com`, staging `https://staging-api-interlocker.gorelas.com`. Test/live separation is by HOST, not by key. - Success envelope `{"statusCode": 200, "data": {...}}`; error envelope `{"statusCode": 400, "error": {"category","errorCode","message"}}`. Not RFC 9457. - Some rejections come back as HTTP 200 with `data.isSuccess: false` and a `reason` enum. Branch on `isSuccess`, not on the status code. - HTTP 207 means partial success on a fan-out read — read the `errors[]` array. - There is NO idempotency key. Re-submitting an order with the same `orderAgencyOrderId` returns 409 DUPLICATED_ID rather than replaying. After a timeout, reconcile with `getOrder` instead of retrying. Wait at least 10s before any retry; client timeout should be >= 12s. - Don't poll. The reference warns that indiscriminate polling of the order list can get a partner's requests restricted. Callbacks are the intended progress channel. - Units: timestamps are epoch milliseconds at GMT+00:00; distances are metres; coordinates are WGS84 to 6+ decimal places; money is KRW integers. ## APIs - [Gorela Order Agency API](https://developer.gorelas.com/api-doc/request): 21 REST operations covering fare quoting, order intake, order read/update/cancel, store mapping, store deposits, delivery-agency status and delivery zones. - [Gorela Callback (Webhook) API](https://developer.gorelas.com/api-doc/callback): 20 callbacks Gorela POSTs to the partner's own endpoints. 3-second response deadline; 3 retries at 2s / 18s / 50s; answer 404 for callbacks you have not implemented. ## Specs (derived by API Evangelist — Barogo publishes none) - [OpenAPI 3.1 — request API](https://raw.githubusercontent.com/api-evangelist/barogo/refs/heads/main/openapi/barogo-gorela-openapi.yml) - [OpenAPI 3.1 — callbacks as webhooks](https://raw.githubusercontent.com/api-evangelist/barogo/refs/heads/main/openapi/barogo-gorela-callbacks-openapi.yml) ## Core operations - `checkDeliveryPossible` — POST /api/delivery-possible — fixed-fare quote and serviceability. Call this BEFORE accepting an order; the docs make it mandatory. - `createOrder` — POST /api/orders — accept an order (fixed fare, address- or store-based, or ACCEPTED_ORDER mode). Read `pickupExpectedAt` from the response and show it to the merchant. - `checkFlexibleDeliveryPossible` / `createFlexibleOrder` — the flexible-fare variants, where the partner sets the fare and riders opt in. - `listOrders` / `getOrder` — GET /api/orders and /api/orders/{orderAgencyOrderId}. - `cancelOrder` — PUT /api/orders/{orderAgencyOrderId}/status/cancel. Can be refused, and a cancellation fee may apply depending on delivery progress. - `updateOrderPickupWishAt`, `updateOrderDropInfo`, `updateOrderPaymentInfo`, `updateOrderMemoInfo`, `updateOrderPhoneInfo` — each has its own state window. - `updateFlexibleOrderDeliveryPrice` — raise the fare on an unassigned flexible order. - `markOrderPrepareComplete` — tell the rider the goods are ready (address-based orders). - `listStores`, `createStoreMapping`, `pauseStoreMapping`, `getStoreMapping` — store mapping. - `getStoreDepositInfo` — prepaid balance and virtual account per delivery agency. - `getDeliveryAgencyConditions` — current dispatch conditions across delivery agencies. - `getStoreAreas` — deliverable, excluded and surcharge zones for a store. ## Key callbacks - `onOrderStatusChanged` (POST /order/status) — required. Order completed or cancelled. - `onDeliveryStatusChanged` (POST /delivery/status) — assignment, reassignment, arrival at pickup, pickup complete. - `onDeliveryPickupExpectedAtChanged` (POST /delivery/pickup-expected-at) — required; the merchant must see the revised pickup time. - `onDeliveryChargeChanged`, `onDeliveryDropInfoChanged`, `onDeliveryDropNear`, `onDeliveryAccepted`, `onDeliveryCardPayments`, `onDeliveryCashReceipts`, `onStoreDeliveryDisabled` / `onStoreDeliveryEnabled`, `onStoreDepositCharged`, and the store / order-agency area create-update-delete events. ## Repo artifacts - [Error catalog (25 codes)](https://raw.githubusercontent.com/api-evangelist/barogo/refs/heads/main/errors/barogo-problem-types.yml) - [Authentication profile](https://raw.githubusercontent.com/api-evangelist/barogo/refs/heads/main/authentication/barogo-authentication.yml) - [API conventions](https://raw.githubusercontent.com/api-evangelist/barogo/refs/heads/main/conventions/barogo-conventions.yml) - [Webhook catalog](https://raw.githubusercontent.com/api-evangelist/barogo/refs/heads/main/asyncapi/barogo-gorela-webhooks.yml) - [Data model](https://raw.githubusercontent.com/api-evangelist/barogo/refs/heads/main/data-model/barogo-data-model.yml) - [Sandbox / environments](https://raw.githubusercontent.com/api-evangelist/barogo/refs/heads/main/sandbox/barogo-sandbox.yml) - [Lifecycle](https://raw.githubusercontent.com/api-evangelist/barogo/refs/heads/main/lifecycle/barogo-lifecycle.yml) - [MCP server + tool crosswalk](https://raw.githubusercontent.com/api-evangelist/barogo/refs/heads/main/mcp/barogo-mcp.yml) - [Examples (81, verbatim from the docs)](https://raw.githubusercontent.com/api-evangelist/barogo/refs/heads/main/examples/barogo-gorela-examples.yml) - [Agent skills](https://raw.githubusercontent.com/api-evangelist/barogo/refs/heads/main/skills/_index.yml) ## Agent surface Barogo publishes a first-party MCP server, `gorela-developer-mcp-server` (npm, stdio, MIT, BAROGO R&D). It has exactly one tool, `fetchGorelaApiDoc`, which retrieves markdown pages from the developer site. It executes no API operation and holds no key — an agent can read about Gorela through it, but cannot place, query or cancel an order. There is no hosted/remote MCP endpoint and no A2A agent card on any Barogo or Gorela host. ## Docs - [Gorela developer site](https://developer.gorelas.com/) - [Integration guide + full reference (markdown)](https://developer.gorelas.com/api-docs-md/index.md) - [Common conventions](https://developer.gorelas.com/api-doc/common) - [연동 관리 — register and issue an API key](https://developer.gorelas.com/linkage) - [Gorela control room (admin)](https://admin.gorelas.com) - [Barogo corporate site](https://www.barogo.com/) - Integration support: tech_poc@barogo.com — partnerships: partners@barogo.com