Developers
AI-assistenten (MCP)
Verbinden
Eén serveradres voor elke assistent. Je logt in met je NinjaBuy-account; er is geen sleutel om te plakken.
https://www.ninjabuy.com/mcp
Claude
- Open Settings › Connectors en kies Add custom connector.
- Plak het adres hierboven en voeg het toe.
- Log in met je NinjaBuy-telefoonnummer en kies daarna Allow access.
ChatGPT
- Zet de ontwikkelaarsmodus aan in Instellingen en voeg dan een aangepaste MCP-server toe.
- Plak het adres hierboven en kies OAuth als inlogmethode.
- Log in met je NinjaBuy-telefoonnummer en kies daarna Allow access.
Cursor
Voeg de server toe onder Cursor Settings › MCP, of in ~/.cursor/mcp.json. Cursor opent de eerste keer de NinjaBuy-login in je browser.
{
"mcpServers": {
"ninjabuy": {
"url": "https://www.ninjabuy.com/mcp"
}
}
}Claude Code en andere assistenten op de opdrachtregel
claude mcp add --transport http ninjabuy https://www.ninjabuy.com/mcpMenunamen veranderen als de assistenten updaten; zoek naar “custom connector” of “custom MCP server”.
Inloggen en toegang
De assistent logt in met OAuth 2.1: hij registreert zichzelf, stuurt je naar ninjabuy.com, en jij keurt hem goed op ons eigen scherm, dat de app noemt en zegt waarheen hij je terugstuurt. Sta alleen een app toe die je net zelf wilde koppelen. Je keurt elke app één keer goed.
- Hij handelt als jouw account: de tools nemen geen account-id en zien alleen jouw bestellingen, schap en producten.
- Toegang geldt een uur en wordt zeven dagen lang verlengd; daarna vraagt de assistent je opnieuw in te loggen.
- Verwijder de connector in je assistent om hem los te koppelen.
- De tools die een marktplaats lezen (product, analyze_product, import_product, push_to_shopify) delen het venster van 30 per minuut met de API: Rate limits.
Niets hier geeft geld uit
Geen enkele tool betaalt, plaatst een zending of geeft je saldo uit. Als er iets betaald moet worden, noemt het antwoord de pagina waar je dat doet: afrekenen vanuit de winkelwagen, verzenden vanaf je magazijnpagina. push_to_shopify zet een product als concept, dus er gaat niets in de verkoop tot je het publiceert.
Tools
Elk antwoord bevat requestId (vermeld die als je ons schrijft) en warnings, dingen die het weten waard zijn maar de aanroep niet tegenhielden. Een lang antwoord wordt rond 6.000 tokens afgekapt met truncated: true; lijsten nemen dan een kleinere limit.
| Tool | Wat het doet |
|---|---|
| list_orders | Mijn NinjaBuy-bestellingen tonen |
| order | Eén NinjaBuy-bestelling |
| warehouse | Mijn NinjaBuy-magazijn |
| product | De varianten van een product lezen |
| add_to_cart | Toevoegen aan mijn NinjaBuy-winkelwagen |
| search_products | Producten zoeken |
| analyze_product | Een product analyseren |
| import_product | Een product importeren |
| push_to_shopify | Naar Shopify sturen |
| list_synced_products | Mijn gesynchroniseerde producten tonen |
| set_sync_rule | Een syncregel instellen |
list_ordersalleen-lezen
De bestellingen van het account, nieuwste eerst: status, betaalstatus, wat er nog openstaat, de artikelen en de pagina van elke bestelling. Volg cursor zolang has_more true is.
cursorstring?- Uit het vorige antwoord; laat weg voor de eerste pagina.
limitnumber?- 1 tot 25. 25 als je het weglaat.
{
"orders": [
{
"id": "j57a9x2b",
"number": 1012,
"kind": "procurement",
"total": "¥57.00",
"orderStatus": { "status": "ordered" },
"paymentStatus": { "status": "paid" },
"amountDue": null,
"itemCount": 1,
"items": [
{
"id": "P1012-1",
"title": "Heavyweight washed hoodie",
"quantity": 1,
"options": ["Black", "M"],
"status": "ordered"
}
],
"url": "https://www.ninjabuy.com/me/orders/j57a9x2b"
}
],
"cursor": "eyJvIjoyNX0",
"has_more": true,
"requestId": "5f7c2a1e-3b8d-4c61-9a0f-2e4d6b8c1a37",
"warnings": []
}orderalleen-lezen
Eén bestelling op id: de regels en prijzen, de status van elk artikel en hoeveel er aankwamen, en de zending met tracking. order is null voor een id die niet van dit account is.
idstringverplicht- Een id uit list_orders.
{
"order": {
"id": "j57c4k1m",
"number": 1019,
"kind": "shipout",
"orderStatus": { "status": "ready" },
"paymentStatus": { "status": "paid" },
"shipment": {
"state": "shipped",
"destinationCountry": "US",
"weightGrams": 176,
"trackingNumbers": ["YT2630812345678"],
"shippedAt": 1793685600000
},
"url": "https://www.ninjabuy.com/me/orders/j57c4k1m"
},
"requestId": "5f7c2a1e-3b8d-4c61-9a0f-2e4d6b8c1a37",
"warnings": []
}warehousealleen-lezen
Alles wat in ons magazijn is aangekomen: foto's, hoeveel er aankwamen, kan verzonden worden of zit in een zending, gewicht, aangegeven waarde, of het betaald is, en wanneer de gratis opslag eindigt.
Geen invoer.
{
"items": [
{
"id": "P1012-1",
"order": 1012,
"title": "Heavyweight washed hoodie",
"photos": [
{
"type": "image",
"url": "https://media.ninjabuy.com/qc/P1012-1/1.webp"
}
],
"received": 1,
"availableToShip": 1,
"inShipment": 0,
"unitWeightGrams": 176,
"declaredUnitValue": "¥38.00",
"paid": true,
"freeStorageUntil": "2026-12-02T03:20:11.000Z"
}
],
"warehouseUrl": "https://www.ninjabuy.com/me/warehouse",
"requestId": "5f7c2a1e-3b8d-4c61-9a0f-2e4d6b8c1a37",
"warnings": []
}productalleen-lezen
Leest een listing uit elke productlink (Taobao, Tmall, Weidian, 1688, de link of korte link van een andere inkoopagent, of een NinjaBuy-productpagina): titel, afbeeldingen, verkoper, en elke variant met skuId, label, CN¥-prijs en voorraad.
linkstringverplicht- Een productlink, tot 2.048 tekens.
{
"product": {
"handle": "weidian-7750970856",
"title": "重磅水洗连帽卫衣",
"seller": "Ruoyi Studio",
"variants": [
{
"skuId": "5187209554",
"label": "Black / M",
"priceMinor": 3800,
"price": "¥38.00",
"inStock": true
},
{
"skuId": "5187209555",
"label": "Black / L",
"priceMinor": 3800,
"price": "¥38.00",
"inStock": false
}
],
"url": "https://www.ninjabuy.com/products/weidian-7750970856"
},
"requestId": "5f7c2a1e-3b8d-4c61-9a0f-2e4d6b8c1a37",
"warnings": []
}add_to_cartschrijven
Zet varianten van één listing in de winkelwagen, om vooraf in te kopen en op je schap te bewaren. Er wordt niets gekocht: het antwoord is de winkelwagenpagina, waar je afrekent.
handlestringverplicht- Uit product.
lines{ skuId, quantity }[]verplicht- 1 tot 100 regels; aantal 1 tot 9.999. Een variant die al in de winkelwagen zit, wordt opgeteld.
{
"added": 1,
"cartUrl": "https://www.ninjabuy.com/cart",
"requestId": "5f7c2a1e-3b8d-4c61-9a0f-2e4d6b8c1a37",
"warnings": []
}search_productsalleen-lezen
Zoeken op trefwoord op Taobao of 1688, dezelfde zoekfunctie als op ninjabuy.com. Een geplakte link geeft dat product.
querystringverplicht- 2 tot 120 tekens, of een link.
providerstring?- taobao of 1688. taobao als je het weglaat.
pagenumber?- 0 tot 20.
{
"kind": "products",
"products": [
{
"handle": "taobao-781204556120",
"title": "Heavyweight cotton hoodie, washed",
"price": { "amount": "45.00", "currency": "CNY" },
"marketplace": "taobao",
"url": "https://www.ninjabuy.com/products/taobao-781204556120"
}
],
"page": 0,
"totalCount": 1840,
"requestId": "5f7c2a1e-3b8d-4c61-9a0f-2e4d6b8c1a37",
"warnings": []
}analyze_productalleen-lezen
Wat één verkoop van elke variant kost tot aan de deur van de koper, en de prijs die je marge op je marktplaats behoudt. Er wordt niets opgeslagen. Dezelfde cijfers als de importanalyse.
linkstringverplicht- Een productlink.
weight_gnumberverplicht- Verpakt gewicht van één stuk, in gram.
ship_tostring?- Land van twee letters. US als je het weglaat.
lanestring?- saver of fast.
marketplacestring?- ebay, shopify, amazon of tiktok.
margin_percentnumber?- De marge waarop wordt geprijsd. 30 als je het weglaat.
{
"title": "重磅水洗连帽卫衣",
"shipTo": "US",
"marketplace": "ebay",
"brandHint": null,
"variants": [
{
"sku": "5187209554",
"label": "Black / M",
"inStock": true,
"procurement": "57.00",
"parcel": "134.52",
"landedUsd": "27.71",
"suggestedPrice": "49.99",
"marginPercent": "30.16"
}
],
"requestId": "5f7c2a1e-3b8d-4c61-9a0f-2e4d6b8c1a37",
"warnings": []
}import_productschrijven
Importeert een listing met de analyse, zoals in de Imports-API. Gratis. Antwoordt met de import om door te sturen of opnieuw te prijzen.
linkstringverplicht- Een productlink of een vondstenspreadsheet.
weight_gnumberverplicht- Verpakt gewicht van één stuk, in gram.
ship_tostring?- Land van twee letters. US als je het weglaat.
lanestring?- saver of fast.
marketplacestring?- ebay, shopify, amazon of tiktok.
margin_percentnumber?- De marge waarop wordt geprijsd. 30 als je het weglaat.
{
"import": {
"id": "imp_2c9d",
"status": "ready",
"title": "重磅水洗连帽卫衣",
"variants": 6,
"inStock": 5
},
"requestId": "5f7c2a1e-3b8d-4c61-9a0f-2e4d6b8c1a37",
"warnings": []
}push_to_shopifyschrijven
Slaat een import op als product en zet het als concept in je Shopify-winkel, op voorraad op de locatie Fulfilled by NinjaBuy. Opnieuw doorsturen werkt het bij. Dezelfde regels als Naar Shopify sturen.
import_idstringverplicht- Uit import_product.
variants{ sku, price }[]?- Welke je houdt en tegen welke US$-prijs. Als je het weglaat, die op voorraad tegen de voorgestelde prijs.
titlestring?- Je titel.
shopstring?- Nodig als er meerdere winkels gekoppeld zijn.
{
"product": "prd_8f2k",
"shopify": {
"status": "draft",
"variants": 5,
"adminUrl": "https://admin.shopify.com/store/acme-goods/products/8812042"
},
"skipped": [{ "sku": "5187209555", "reason": "sold_out" }],
"requestId": "5f7c2a1e-3b8d-4c61-9a0f-2e4d6b8c1a37",
"warnings": []
}list_synced_productsalleen-lezen
Je producten met hun laatste controle, kostenwijzigingen en voorraad, zodat je ziet wat er veranderde.
statusstring?- active of paused.
changed_sincestring?- Een datum: alleen producten waarvan de kosten of voorraad sindsdien zijn veranderd.
cursorstring?- Uit het vorige antwoord; laat weg voor de eerste pagina.
limitnumber?- 1 tot 25. 25 als je het weglaat.
{
"products": [
{
"id": "prd_1x0a",
"title": "Canvas Tote",
"status": "active",
"lastCheckedAt": "2026-11-04T02:10:00Z",
"costChange": {
"from": "¥42.00",
"to": "¥48.00",
"action": "repriced",
"price": { "from": "$18.99", "to": "$20.99" }
}
}
],
"cursor": null,
"has_more": false,
"requestId": "5f7c2a1e-3b8d-4c61-9a0f-2e4d6b8c1a37",
"warnings": []
}set_sync_ruleschrijven
Wat er moet gebeuren als een verkoper een prijs verhoogt: prijs aanpassen om een marge te behouden, pauzeren, of het je alleen laten weten. Voor elk product, of één. Dezelfde velden als Syncregels.
applies_tostringverplicht- all, of een product-id.
on_cost_increasestringverplicht- prijs aanpassen, pauzeren of melden.
keep_margin_percentnumber?- Met reprice.
max_increase_percentnumber?- Met reprice: daarboven pauzeren.
{
"rule": {
"id": "rule_default",
"appliesTo": "all",
"onCostIncrease": {
"action": "reprice",
"keepMarginPercent": 40,
"maxIncreasePercent": 15
}
},
"requestId": "5f7c2a1e-3b8d-4c61-9a0f-2e4d6b8c1a37",
"warnings": []
}Wat je kunt vragen
Welke van mijn bestellingen wachten nog op een verkoper?
Twee: #1012 (de washed hoodie, gekocht op 1 nov.) en #1015 (twee canvas tassen). Beide zijn betaald en besteld bij de verkoper; geen van beide is al in het magazijn aangekomen.
Is deze hoodie het waard om op eBay te verkopen? weidian.com/item.html?itemID=7750970856, ongeveer 180 g verpakt.
Eén verkoop naar de VS kost CN¥ 191,52 tot aan de deur, ongeveer $ 27,71. Bij $ 49,99 houdt eBay ongeveer $ 7,20 en hou jij $ 15,08 over, een marge van 30%. Black / L is uitverkocht. Geen merknamen in de titel.
Goed. Zet Black / M in mijn Shopify voor $ 49,99, titel “Heavyweight Washed Hoodie”.
Klaar: het staat als concept op acme-goods.myshopify.com met 1 variant, op voorraad bij Fulfilled by NinjaBuy. Controleer de foto's en publiceer het dan in Shopify.
Houd overal 40% marge aan, maar verhoog een prijs nooit meer dan 15% in één keer.
Ingesteld voor alle producten. Een stijging boven 15% pauzeert het product in plaats daarvan, en ik zie het in list_synced_products.