Using the Osello API

Where to find Osello's API documentation, what the API covers, and how developers authenticate requests to build integrations.

Last updated: Oct 9, 2026 at 12:40AM

Osello has a full JSON API for developers and agencies who want to build on top of the platform. The complete, interactive reference lives at osello.com/api-docs.

What the API can do

The Osello app itself runs on this API, so most of what you can do in the app, a program can do too:

  • Products — create, read, and update your products, variants, images, and metafields.
  • Listings — read your listings and variants, edit their field values, and submit them to a marketplace.
  • Marketplaces — browse each marketplace's categories, fields, and the options each field accepts.
  • Offers, inventory, and pricing — manage inventory locations and stock levels, and read the offers each marketplace receives.
  • Orders — list marketplace orders, accept them, fulfill them with tracking, and handle returns.

The reference covers the endpoints we support for outside integrations. Some app features — AI
prompts, spreadsheet imports and exports, and account administration — aren't part of it; if you
need one of those in an integration, get in touch.

Where the documentation lives

Everything is documented at osello.com/api-docs:

  • Browse every endpoint with its parameters, example requests, and example responses.
  • Download the full OpenAPI specification, which works with code generators and API clients.

How authentication works

Create an API key yourself under Manage Account -> API keys, then send it in the Secret-Key header:

Secret-Key: sk_your_key_here

Keys are tied to an Osello user account, so API requests can see and change the same stores that user manages.

See Create and manage API keys for the steps, and for how to revoke a key.

How responses look

Reads (GET) return the record, or a page of records under data with pagination under meta.

Every write (POST, PUT, PATCH and DELETE) that succeeds returns the same shape:

{
  "data": {"id": "ol_47UjU8i", "setup_state": "in_progress"},
  "message": "Listing created.",
  "detailed_message": "The listing's variants and field values are still being built in the background. Wait until its `setup_state` is `ready` before filling in or changing any field values."
}
  • data is the record the write created or changed, or null when there isn't one, such as after a delete.
  • message is a short line saying what happened. The Osello app shows it as its confirmation.
  • detailed_message appears only when there is more to know: work still running in the background, what to wait for before your next request, and the ID to follow it by. Bulk actions name the bulk action to follow; pulls and pushes name the sync.
  • code and meta appear on a few writes that report a specific outcome, such as the next image waiting for approval.

Good to know

  • The API speaks JSON over HTTPS against app.osello.com.
  • Records are identified by short prefixed IDs returned by the API — use them when reading or updating specific products, listings, or orders.
  • Not a developer? You may not need the API at all: spreadsheet imports and exports cover most bulk-editing needs without writing any code.
  • Using an AI assistant such as Claude? Connect it to Osello's MCP server instead: it calls the same API for you, signed in as you. See Connect AI assistants to Osello.

Where to go next

Did this answer your question?

A real person from Osello will dig in and get back to you.