Kurly · Arazzo Workflow

Kurly fulfillment outbound order flow

Version 1.0.0

Map a sales-channel product to a Kurly SKU, verify stock, place a bulk outbound order against Kurly's centre, read the fulfillment plan and reconcile the order. Grounded in the operations captured in openapi/.

1 workflow 2 source APIs 1 provider
View Spec View on GitHub CompanyTechnologyLogisticsFulfillmentSupply ChainDeliveryE-CommerceGroceryShippingOrder ManagementInventoryTrackingSouth KoreaArazzoWorkflows

Provider

kurly

Workflows

placeFulfillmentOrder
Map a product, check stock, order fulfillment in bulk, and read the plan back.
Bulk register caps at 20 orders per call and reports failures per item rather than failing the batch, so the response body must be reconciled item by item.
8 steps inputs: clientId, pageNumber, pageSize, secretKey
1
issueAccessToken
2
mapSalesChannelProduct
Map the shipper's sales-channel product identifier onto a Kurly SKU.
3
confirmMapping
Read the mapping back before ordering against it.
4
checkInventory
Verify on-hand stock before promising it to a customer.
5
createOrdersBulk
Register up to 20 outbound orders. Failures come back per item with code and message — retry only the failed entries. V1 order APIs were removed in docs v1.3.6; V2 is the only supported path.
6
readOperationPlans
Read how and when Kurly intends to fulfil the orders. A POST despite being a read.
7
reconcileOrders
Page through registered orders. Query-parameter style since docs v1.3.0; the response is grouped into order, orderer, receiver, outbound and delivery.
8
reviewLedger
Review per-SKU inbound/outbound movement history over a date range.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Kurly fulfillment outbound order flow
  version: 1.0.0
  description: >-
    Map a sales-channel product to a Kurly SKU, verify stock, place a bulk outbound order against
    Kurly's centre, read the fulfillment plan and reconcile the order. Grounded in the operations
    captured in openapi/.
sourceDescriptions:
- name: authenticationApi
  url: ../openapi/kurly-authentication-api-openapi.yml
  type: openapi
- name: defaultApi
  url: ../openapi/kurly-default-api-openapi.yml
  type: openapi
workflows:
- workflowId: placeFulfillmentOrder
  summary: Map a product, check stock, order fulfillment in bulk, and read the plan back.
  description: >-
    Bulk register caps at 20 orders per call and reports failures per item rather than failing the
    batch, so the response body must be reconciled item by item.
  inputs:
    type: object
    required: [clientId, secretKey]
    properties:
      clientId: {type: string}
      secretKey: {type: string}
      pageNumber: {type: integer, default: 1}
      pageSize: {type: integer, default: 50}
  steps:
  - stepId: issueAccessToken
    operationId: issueToken
    requestBody:
      contentType: application/json
      payload:
        clientId: $inputs.clientId
        secretKey: $inputs.secretKey
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      accessToken: $response.body#/accessToken
  - stepId: mapSalesChannelProduct
    description: Map the shipper's sales-channel product identifier onto a Kurly SKU.
    operationId: saveSalesChannelMapping
    parameters:
    - name: Authorization
      in: header
      value: Bearer $steps.issueAccessToken.outputs.accessToken
    successCriteria:
    - condition: $statusCode == 200
  - stepId: confirmMapping
    description: Read the mapping back before ordering against it.
    operationId: findSalesChannelMappingList
    parameters:
    - name: Authorization
      in: header
      value: Bearer $steps.issueAccessToken.outputs.accessToken
    successCriteria:
    - condition: $statusCode == 200
  - stepId: checkInventory
    description: Verify on-hand stock before promising it to a customer.
    operationId: findInventories
    parameters:
    - name: Authorization
      in: header
      value: Bearer $steps.issueAccessToken.outputs.accessToken
    successCriteria:
    - condition: $statusCode == 200
  - stepId: createOrdersBulk
    description: >-
      Register up to 20 outbound orders. Failures come back per item with code and message — retry
      only the failed entries. V1 order APIs were removed in docs v1.3.6; V2 is the only supported path.
    operationId: createOrdersBulkV2
    parameters:
    - name: Authorization
      in: header
      value: Bearer $steps.issueAccessToken.outputs.accessToken
    successCriteria:
    - condition: $statusCode == 200
  - stepId: readOperationPlans
    description: Read how and when Kurly intends to fulfil the orders. A POST despite being a read.
    operationId: findOperationPlansBulk
    parameters:
    - name: Authorization
      in: header
      value: Bearer $steps.issueAccessToken.outputs.accessToken
    successCriteria:
    - condition: $statusCode == 200
  - stepId: reconcileOrders
    description: >-
      Page through registered orders. Query-parameter style since docs v1.3.0; the response is grouped
      into order, orderer, receiver, outbound and delivery.
    operationId: findOrders
    parameters:
    - name: Authorization
      in: header
      value: Bearer $steps.issueAccessToken.outputs.accessToken
    - name: pageNumber
      in: query
      value: $inputs.pageNumber
    - name: pageSize
      in: query
      value: $inputs.pageSize
    successCriteria:
    - condition: $statusCode == 200
  - stepId: reviewLedger
    description: Review per-SKU inbound/outbound movement history over a date range.
    operationId: findLedgers
    parameters:
    - name: Authorization
      in: header
      value: Bearer $steps.issueAccessToken.outputs.accessToken
    successCriteria:
    - condition: $statusCode == 200

Work with this as data

Every workflow 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 arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow 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 workflow
curl "https://apis.io/api/v1/arazzo/kurly-fulfillment-order-flow"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?limit=25"

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

Get an API key

Free tier, no email required.

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