Skip to content

Quick start

Four steps from an empty configuration file to a catalogue in sync.

  1. 1

    Issue an API key

    On the Self-Managed Integration page, create a key. Name it after the system that will use it, choose Sandbox while you build, and tick only the APIs that system needs. The key is shown once, immediately after it is created — copy it into your server's configuration then and there.

  2. 2

    Prove the credential works

    Before writing any sync code, confirm the key authenticates and check what it is allowed to reach. This is the only endpoint that needs no scope.

    cURL
    curl https://partner-portal-backend.caprover-internal.localoy.app/api/v1/open-network/v1/ping \
      -H "Authorization: Bearer $LOCALOY_API_KEY"
  3. 3

    Send your catalogue

    Post each item under your own id. Repeating the call for an item you have already sent updates it, so you can run your whole catalogue through this endpoint on a schedule without tracking what Localoy already holds.

    cURL
    curl -X POST https://partner-portal-backend.caprover-internal.localoy.app/api/v1/open-network/v1/catalog/items \
      -H "Authorization: Bearer $LOCALOY_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "externalId": "SKU-1042",
        "name": "Chicken Shawarma Platter",
        "priceCents": 45000,
        "currency": "BDT",
        "available": true,
        "stock": 24
      }'
  4. 4

    Keep it in step

    Send the small changes as they happen — a price move, a sold-out flag — with a PATCH, and read the catalogue back when you need to reconcile.

    cURL
    curl -X PATCH https://partner-portal-backend.caprover-internal.localoy.app/api/v1/open-network/v1/catalog/items/SKU-1042 \
      -H "Authorization: Bearer $LOCALOY_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{ "stock": 0, "available": false }'