Skip to content

Getting Started

This guide walks you through obtaining credentials, making your first authenticated call, and confirming a working integration with the Sell-Po API.

1. Prerequisites

Before you begin, make sure you have:

  • An HTTP client capable of sending JSON requests (curl, Postman, or any modern programming language).
  • An understanding of OAuth-style API key authentication.
  • A way to store secrets safely on your side (environment variable, secret manager, etc.).

2. Obtain an API key

API key issuance

The public self-service portal for API key issuance is currently being prepared as part of the Sell-Po API Marketplace initiative. Until the portal launches, please request keys directly through the official Sell-Po team.

When the marketplace launches, the issuance flow will be:

  1. Sign up at sell-po.co.kr and verify your email.
  2. Navigate to Settings -> API Keys in the dashboard.
  3. Generate a new key, copy the value, and store it in a secret manager.
  4. Bind the key to a workspace (Free / Pro / Enterprise tier governs rate limits).

Treat keys as secrets

API keys grant access to your workspace data. Never commit them to version control, embed them in client-side code, or paste them into shared chats.

3. Authentication header

All authenticated requests must include the API key in a request header:

X-Naver-Client-Id: <your-client-id>
X-Naver-Client-Secret: <your-client-secret>

The exact header set depends on which marketplace integration you call. See each endpoint in API Reference for the precise header contract.

4. Your first call (curl)

The Naver shopping search endpoint is a good smoke test because it requires only marketplace credentials and returns a deterministic shape.

curl -sS -X GET \
  -H "X-Naver-Client-Id: $NAVER_CLIENT_ID" \
  -H "X-Naver-Client-Secret: $NAVER_CLIENT_SECRET" \
  "https://api.sell-po.co.kr/api/naver/search?query=blender&display=10"

A successful response looks like:

{
  "success": true,
  "data": {
    "items": [
      { "title": "...", "lprice": "...", "mallName": "..." }
    ]
  }
}

5. Your first call (Python)

import os
import httpx

async def first_call() -> dict:
    headers = {
        "X-Naver-Client-Id": os.environ["NAVER_CLIENT_ID"],
        "X-Naver-Client-Secret": os.environ["NAVER_CLIENT_SECRET"],
    }
    timeout = httpx.Timeout(connect=5.0, read=30.0, write=5.0, pool=5.0)
    async with httpx.AsyncClient(timeout=timeout) as client:
        resp = await client.get(
            "https://api.sell-po.co.kr/api/naver/search",
            params={"query": "blender", "display": 10},
            headers=headers,
        )
        resp.raise_for_status()
        return resp.json()

Key points:

  • Always set explicit timeouts (the Sell-Po backend itself uses connect=5s, read=30s).
  • Re-raise non-2xx responses; the response body always carries success: false plus an error code on failure.
  • Cache responses on your side for 5 minutes when the upstream search query is repeated; Sell-Po itself uses a 3-tier cache (memory -> Redis -> Postgres) to keep upstream load predictable.

6. Rate limits

Each workspace has tier-based rate limits enforced at the gateway layer. When you exceed a limit, the API returns HTTP 429 with a Retry-After header. Implement exponential backoff with jitter on the client side.

7. Next steps

  • Browse API Reference for the full set of public endpoints.
  • Read the Guides for five practical use cases.
  • Review Architecture to understand how Sell-Po is built and operated.