DocsConnect by API & MCP

Connect by API or MCP

Create a key and reach your stores from a script, a spreadsheet, or an AI assistant. A key can see and do exactly what you can.

Store admins

You can reach the platform without opening the portal at all — from a script that pulls a nightly report, a spreadsheet that checks stock, or an AI assistant that answers questions about your orders. It works two ways over one key: a plain REST API, and an MCP endpoint that assistants like Claude connect to as a set of tools.

The one rule that makes this safe to hand out: a key acts as you. It sees the same stores, the same orders and the same reports you see when you sign in, and nothing more. Give a key to a teammate's script and it still only reaches what *you* can — so create one per use, name it for what it does, and revoke it the moment you no longer need it.

  1. 1

    Open your security page

    Portal → Password & security

    Scroll to API & MCP keys. If you don't see the create form, key creation is limited to store admins and staff — ask an admin to make one for the store.

  2. 2

    Create a key

    Give it a name, choose an expiry, and decide whether it may place orders (the write scope). Leave write off for a key that only reads.

  3. 3

    Copy the secret now

    The key is shown once, the moment it's created. Copy it straight into wherever it will live. If you lose it, revoke it and make another — it can't be shown again.

What a key can do

You want to…Ask for
Check an order's status and trackingget_order, or GET /api/v1/orders/{id}
Pull order historylist_orders, or GET /api/v1/orders
See stock on handinventory_levels, or GET /api/v1/inventory
Run a spend reportsales_report, or GET /api/v1/reports/sales
Place an order on accountplace_order, or POST /api/v1/orders
See which stores you can reachwhoami and list_sites
Every read is scoped to what you can see; reporting is for store and regional admins.

Use it over REST

Send your key as a bearer token on every request: Authorization: Bearer bcn_live_…. The base is /api/v1, and GET /api/v1 returns a map of every endpoint with no key needed, so a new integration can find its way.

For example, to list a store's open orders you would call GET /api/v1/orders?site=your-store-slug&status=placed. To read stock, GET /api/v1/inventory?site=your-store-slug. Responses are JSON, and a store is named by its slug or its id wherever a site is asked for. Leave site off /api/v1/orders to span every store you can see at once, and call GET /api/v1/sites to list them.

Use it with an AI assistant (MCP)

MCP is the standard that lets an AI assistant use outside tools. This platform speaks it: connect a client to the endpoint https://storefront.baconco.com/api/mcp and the assistant can answer questions like “which orders are awaiting approval on the spring popup?” or “what's low on stock?” — seeing only what you can see.

Use that platform address — the same host as your portal, not a single store's web address. It's tied to you, not to one store, so a single connection reaches every store you run; ask “which of my stores has orders waiting?” and the assistant spans them all at once (it can list them for you). Connect once and you're done, however many stores you have or add later.

There are two ways to connect. The easy one is sign-in (OAuth): paste the address into the client's *Add custom connector* box and it walks you through a Bacon sign-in and a screen listing what it's asking for — approve, and you're connected, with nothing to copy. The other is a key: hand the client an API key as an Authorization header, which suits a script or the command line where there's no sign-in.

Either way the app acts as you. On the consent screen it's granted read unless it specifically asks to place orders, and you can disconnect any app later from this page under Connected apps.

  1. 1

    Claude desktop or web — sign in (recommended)

    Claude → Settings → Connectors

    Choose Add custom connector, name it, paste https://storefront.baconco.com/api/mcp, and click Connect. Claude opens the Bacon sign-in and consent screen; approve it, then switch the connector on from the tools menu in a chat. No key to copy.

  2. 2

    Claude Code — with a key

    Prefer the command line? Run claude mcp add --transport http bacon-storefront https://storefront.baconco.com/api/mcp --header "Authorization: Bearer bcn_live_…", then type /mcp to confirm it connects.

  1. 1

    Turn on developer mode

    ChatGPT → Settings → Apps & Connectors → Advanced

    Enable Developer mode. On Business, Enterprise or Edu accounts an admin may need to allow custom connectors first. Available on Plus, Pro, Business, Enterprise and Edu.

  2. 2

    Create the connector

    ChatGPT → Settings → Apps & Connectors → Create

    Give it a name and description, set the server URL to https://storefront.baconco.com/api/mcp, and choose OAuth for authentication. Save and connect — ChatGPT sends you through the Bacon sign-in and consent screen, and asks you to confirm before it ever places an order.

Placing orders

A key with the write scope can place an order on a store you administer, billed to an account — a purchase order, a payroll deduction, or an organization account. Card payment isn't available over the API, because a card is entered in the browser and never reaches a script.

You give the store, a shipping address, the items (each by the odoo_product_id that inventory_levels returns, and a quantity) and the account tender. The order then runs through the store's ordinary pricing and approval rules and lands like any other — you can't name your own price, and an order that needs approval waits for it exactly as it would from the storefront.

Who can create a key?
Store admins, organization admins and Bacon staff. Regional admins and general users can't yet — for now, an admin creates keys for the store.
Can a key do more than I can?
Never. A key is bound to you: it inherits your roles on every store and loses them the moment yours change. It's a way in as yourself, not a way around your own access.
How do I turn a key off?
Revoke it on the same security page. It stops working immediately. If a key was set to expire, it also stops on its own on that date.
What happens if a store is closed?
You can still read its past orders (history outlives a store), but you can't place a new order on a store that isn't open.
Connect by API or MCP · Storefront Docs