New: Application API docs
Pick the API you are reading here — the Merchant API for your own store, the Application API for partner apps.
For partner applications: browse merchants and products, hand customers a checkout link, and follow the orders it creates.
Use the Application API from an AI assistant. The MCP server exposes every endpoint as a tool and signs each call for you, as your application.
https://merchant.gini.iq/mcp/applications
Add the connector. In Claude, open Customize → Connectors, click +, choose Add custom connector, and paste the URL above. Leave the OAuth fields empty.
Sign in. Claude opens a Gini page. Enter your app_id and app_secret.
Authorize. Check that access is returned to claude.ai, then click Authorize. Claude can now use the tools below.
| Field | Type | Required | Description |
|---|---|---|---|
X-App-Id
|
string | Required | Your app_id. |
X-App-Secret
|
string | Required | Your app_secret, as-is. It never leaves HTTPS and is not signed — the server does the signing. |
claude mcp add --transport http gini-applications https://merchant.gini.iq/mcp/applications \
--header "X-App-Id: <your app_id>" \
--header "X-App-Secret: <your app_secret>"
{
"mcpServers": {
"gini-applications": {
"type": "http",
"url": "https://merchant.gini.iq/mcp/applications",
"headers": {
"X-App-Id": "<your app_id>",
"X-App-Secret": "<your app_secret>"
}
}
}
}
Let Claude use these tools inside your own product: pass the server in a Messages API request and Anthropic connects to it
for you. Your app_id and app_secret go in authorization_token, joined by a colon.
curl https://api.anthropic.com/v1/messages \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: mcp-client-2025-11-20" \
-H "content-type: application/json" \
-d '{
"model": "claude-opus-5",
"max_tokens": 16000,
"mcp_servers": [
{
"type": "url",
"url": "https://merchant.gini.iq/mcp/applications",
"name": "gini",
"authorization_token": "<your app_id>:<your app_secret>"
}
],
"tools": [
{
"type": "mcp_toolset",
"mcp_server_name": "gini",
"configs": { "cancel-order": { "enabled": false } }
}
],
"messages": [
{ "role": "user", "content": "Find an iPhone 15 under 1,500,000 IQD and make me a cash-on-delivery checkout token." }
]
}'
| Field | Type | Required | Description |
|---|---|---|---|
anthropic-beta
|
header | Required | mcp-client-2025-11-20 — the MCP connector is in beta. |
mcp_servers[].url
|
string | Required | This server's URL. |
mcp_servers[].name
|
string | Required | Any name; the toolset refers to the server by it. |
mcp_servers[].authorization_token
|
string | Required | <app_id>:<app_secret>. Sent to this server as a bearer token. |
tools[].mcp_toolset
|
object | Required | Must name the same server in mcp_server_name, or the request is rejected. |
tools[].configs
|
object | Optional | Per-tool switches. The example turns cancel-order off, since no person approves each call here. |
| Tool | Calls | What it does |
|---|---|---|
list-merchants |
GET /merchants |
Your merchants, searchable, optionally nearest-first. |
search-products |
GET /products |
Product search and browse. Takes category ids as a list — the tool sends the CSV. |
get-product |
GET /products/{slug} |
One product, by slug. |
list-categories |
GET /categories |
Category tree with nested subcategories. |
list-sub-categories |
GET /sub-categories |
Flat, paginated subcategories. |
list-reels |
GET /reels |
Shuffled reel feed. |
create-checkout-token |
POST /checkout-tokens |
Seal a basket into a single-use checkout token. |
list-orders |
GET /orders |
Orders created through your application. |
get-order |
GET /orders/{id} |
One order. |
cancel-order |
POST /orders/{id}/cancel |
Cancel a pending order. Marked destructive — assistants ask before calling it. |
list-reject-reasons |
GET /reject-reasons |
Reasons cancel-order accepts. |
list-states |
GET /states |
States and districts, for checkout addresses. |