> ## Documentation Index
> Fetch the complete documentation index at: https://docs.omnicommerce.sg/llms.txt
> Use this file to discover all available pages before exploring further.

# Quickstart

> Build on OmniCommerce marketplace-PIM rails with REST, MCP, CLI, and webhooks.

Use REST, MCP, CLI, and webhooks to create enriched catalog data, evaluate agentic readiness, sync commercial fields, and monitor AI Shelf Share.

## Prerequisites

1. An OmniCommerce organization
2. An API key from organization settings (`omni_sk_...`)
3. Base URL `https://omnicommerce.sg` (or your local/dev host)

## Authenticate

```http theme={null}
Authorization: Bearer $OMNI_API_KEY
Content-Type: application/json
```

API keys are bound to a single organization. You do **not** need to send `organizationId` for API-key requests.

Session-authenticated browser calls must include `organizationId` in the query or body.

Full details: [Authentication](/authentication).

## Core workflow

```mermaid theme={null}
flowchart LR
  A[Create / upsert product] --> B[Enrich / evaluate]
  B --> C[Publish / sync]
  C --> D[Monitor AI Shelf Share]
  D --> E[Webhooks / jobs]
```

### 1. Create or upsert a product

```bash theme={null}
curl -X POST "https://omnicommerce.sg/api/v1/products" \
  -H "Authorization: Bearer $OMNI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "sku": "SKU-100",
    "title": "Sample product",
    "price": 29.9,
    "currency": "SGD"
  }'
```

### 2. Poll async jobs

Many write paths return a job ID. Poll:

```http theme={null}
GET /api/v1/jobs/{jobId}
```

Cancel with:

```http theme={null}
POST /api/v1/jobs/{jobId}/cancel
```

### 3. Publish and sync

```http theme={null}
POST /api/v1/products/{productId}/publish
POST /api/v1/sync
```

## API products

| Product          | What it does                                                | Start here                                                               |
| ---------------- | ----------------------------------------------------------- | ------------------------------------------------------------------------ |
| Products         | Create/upsert, variants, bulk import, publish               | [API](/api-reference) · [Bulk import guide](/guides/bulk-product-import) |
| Orders           | List workspace orders; create/patch agentic orders          | [Orders guide](/guides/orders)                                           |
| Promotions       | Central promos, product assignment, marketplace sync        | [Promotions guide](/guides/promotions)                                   |
| Price books      | Channel list-price markup without changing canonical prices | [Price books guide](/guides/price-books)                                 |
| Looks            | AI-styled product sets and preview jobs                     | [API reference](/api-reference)                                          |
| Evaluate         | Score SKU readiness for agentic commerce                    | `POST /api/v1/evaluate`                                                  |
| Ghost mannequin  | Remove mannequins from product photos                       | [Guide](/guides/ghost-mannequin)                                         |
| Agentic checkout | Merchant-fulfilled checkout sessions                        | `POST /api/v1/checkout-sessions`                                         |
| UCP              | Universal Commerce Protocol shopping                        | `POST /ucp/v1/checkout-sessions`                                         |
| Monitor          | AI Shelf Share monitoring and replay                        | `POST /api/v1/monitor`                                                   |
| Webhooks         | Product, sync, and visibility events                        | `GET/POST /api/v1/webhooks`                                              |

## MCP tools

Public catalog discovery tools for tool-calling agents:

* `omni_search_catalog`
* `omni_match_intent`
* `omni_discover_geo`

Seller evaluate/sync/monitor stay on authenticated REST. See [MCP](/guides/mcp).

## CLI

```bash theme={null}
yarn omni evaluate --product-id PRODUCT_ID
```

## Next steps

<CardGroup cols={2}>
  <Card title="Interactive API reference" icon="terminal" href="/api-reference">
    Try endpoints with the Mintlify playground.
  </Card>

  <Card title="Orders guide" icon="receipt" href="/guides/orders">
    Filters, agentic create, and pricing fields.
  </Card>

  <Card title="MCP reference" icon="network-wired" href="/guides/mcp">
    JSON-RPC methods and tool contracts.
  </Card>

  <Card title="Authentication" icon="key" href="/authentication">
    Scopes, OAuth, and session rules.
  </Card>
</CardGroup>
