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."
}
datais the record the write created or changed, ornullwhen there isn't one, such as after a delete.messageis a short line saying what happened. The Osello app shows it as its confirmation.detailed_messageappears 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.codeandmetaappear 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.
