tiendanube-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@tiendanube-mcp Show me which products have less than 5 units in stock"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Tiendanube MCP Server β manage your Tiendanube / Nuvemshop store with Claude, Codex, OpenCode and any AI agent
πͺπΈ Leer en espaΓ±ol Β· Website Β· Tool reference Β· Prompt recipes
tiendanube-mcp is a free, open-source Model Context Protocol (MCP) server that connects AI assistants to the Tiendanube (Nuvemshop in Brazil) API. Ask in plain language β "which products have less than 5 units left?", "raise all prices in the Summer category by 12%", "which orders are paid but not shipped?" β and your AI does the work through 198 tools covering 39 API resources: products, variants, stock, orders, customers, coupons, shipping, payments, webhooks and more, plus guided workflows such as building combos with images.
Works with Claude Code, Claude Desktop, OpenAI Codex, Gemini CLI, Cursor, Google Antigravity, VS Code (Copilot), OpenCode, Windsurf, Cline and any client that speaks MCP over stdio or HTTP. An AI agent can install and configure it by itself, even if you have never touched an API key.
AI agents, read this first. If you were asked to install this server, do the whole setup yourself following guides/AGENT_INSTALL.md; do not hand steps back to the user. If it is already connected, use its tools for every store task and never a browser or the admin panel: start with the
tiendanube_start_heretool.
Not affiliated with Tiendanube or Nuvemshop. Independent community project. Tiendanube and Nuvemshop are trademarks of their owners.
Quick start (about 5 minutes)
The easiest way: let your AI agent do everything. Open your AI agent (Claude Code, Codex, Gemini CLI, Cursor, Antigravity, ...) and paste this single line:
Install the Tiendanube MCP server by following https://raw.githubusercontent.com/fedeclavero/tiendanube-mcp/main/guides/AGENT_INSTALL.mdThe agent asks your permission once to handle your keys, guides you click by click to create the app (ticking every permission), saves the keys, configures your AI app, verifies the connection and tells you when to restart it. You do not edit any file. Credentials background: guides/GETTING_CREDENTIALS.md.
Then ask something:
"Show me my store info and the 10 most recent orders."
Related MCP server: MCP Shopline
Manual install
Requirement: Node.js 18+. Everything runs straight from GitHub; no global install needed.
# 1. save your keys once (Brazil / Nuvemshop: add --region nuvemshop)
npx -y github:fedeclavero/tiendanube-mcp configure --store-id 123456 --token YOUR_ACCESS_TOKEN
# 2. register it in every supported AI app found on this computer
npx -y github:fedeclavero/tiendanube-mcp install --client all
# 3. check everything; it prints exactly what to fix if something is wrong
npx -y github:fedeclavero/tiendanube-mcp doctorThen fully close and reopen your AI app. With a partner app (OAuth) instead of a token: npx -y github:fedeclavero/tiendanube-mcp login --client-id APP_ID --client-secret SECRET.
| App | Notes |
| Claude Code | uses |
| Claude Desktop | |
| OpenAI Codex (CLI / IDE / app) |
|
| Gemini CLI | |
| Cursor, Windsurf | |
| VS Code (GitHub Copilot agent mode) | |
| OpenCode | |
| Google Antigravity | config path from Google's codelab; stdio fields follow the common format |
| Cline (VS Code) | path inferred from the extension layout |
| any other stdio client | prints a snippet to paste |
all configures every app it finds; separate several with commas. clients lists what is detected. The command merges without touching your other servers, keeps a timestamped backup and is safe to repeat. The keys live in ~/.config/tiendanube-mcp/credentials.json (Windows: %APPDATA%\tiendanube-mcp\), private to your user, so client configs contain no secrets.
Generic stdio config for any other MCP client:
{ "mcpServers": { "tiendanube": { "command": "npx", "args": ["-y", "github:fedeclavero/tiendanube-mcp"] } } }ChatGPT connectors only accept a remote HTTPS server (no local programs): see "Clients that cannot run a local program" in guides/AGENT_INSTALL.md. Codex does run local servers, use --client codex.
First run is slower (npm downloads and builds the project, ~30 s). The
configurecommand above already warms it up.
Environment variables (optional)
The saved credentials file is enough. Environment variables override it when set.
Variable | Required | Description |
| Numeric store ID (the | |
| Store access token | |
|
| |
|
| |
|
| |
| Default | |
| Only for the OAuth helper tool | |
|
| |
| HTTP mode only: required secret (a random one is generated and printed if unset) | |
| Folder for the credentials file (default |
What can you ask?
Instead of clicking through the admin panel or exporting spreadsheets, you say the job and the AI picks the tools.
You say | The AI uses |
"List products with stock below 5, cheapest first" |
|
"Set the stock of SKU |
|
"Build two combos with products I already sell, with a nice image each" |
|
"Apply 10% off to the whole 'Verano' category" |
|
"Which paid orders from this week haven't shipped?" |
|
"Mark order #1042 as dispatched with tracking code XYZ" |
|
"Create a 15% coupon |
|
"Who abandoned a cart in the last 3 days? Send them a coupon" |
|
"Subscribe my backend to |
|
More than 20 copy-paste prompts in guides/RECIPES.md.
What's covered
Domain | Tools | Includes |
Store & media | 2 | Store info, languages, plan, media quota |
Catalog | 43 | Products, variants, stock, images, categories, kits, B2B price tables |
Orders & fulfillment | 31 | Orders, draft orders, fulfillment orders + tracking, carts, abandoned checkouts |
Customers | 5 | Full CRUD |
Coupons & promotions | 11 | Coupons, automatic promotions, discount callbacks |
Logistics | 23 | Locations & inventory levels, shipping carriers/options, business rules |
Payments & billing | 25 | Payment providers/options, transactions, disputes, external invoices, app billing |
Content | 15 | Pages, blog, email templates, scripts |
Extensibility | 35 | Metafields, custom fields, custom objects, webhooks (36 events) |
Guide & workflows | 8 |
|
Full list with routes and required scopes: guides/TOOLS.md. Also ships documentation resources (tiendanube://docs/*, tiendanube://guide/*).
Omnipotence and Plug & Play (Full Permissions)
Full permissions by design (Omnipotence) β The core philosophy of this MCP is to give the AI total power to operate your store without artificial roadblocks or missing-permission errors. During setup, ALL permissions must be requested and granted (complete read and write across the board): products, variants, inventory, orders, customers, coupons, promotions, shipping, content, and webhooks.
100% Autonomous Plug & Play setup β The merchant simply provides their access credentials (Store ID and Access Token / App Secret). If the user does not know how to obtain them, the AI agent guides them click by click; and if the user cannot or does not understand how to do it, the AI agent itself takes the initiative using browser automation tools (agent-browser, Playwright, or browser navigation) to enter the Tiendanube admin/developer portal, create the application, and actively tick every single required read and write permission checkbox. The merchant only logs in if prompted, and the connection is ready instantly.
Honest annotations and safety guardrails β Each tool declares if it is destructive so well-designed AI clients ask for confirmation before massive changes or deletes, without hampering general autonomous execution.
Self-diagnosing β If an existing app was created with partial scopes, the
doctorcommand lists exactly what is missing to achieve full operational power.Your data stays yours β Credentials live in a private user-level file on your machine (
~/.config/tiendanube-mcp/credentials.json, 600 permissions) and are sent exclusively to Tiendanube's official API. No telemetry, no third-party servers.Rate-limit aware β Follows leaky-bucket headers and handles 429 retries transparently.
(Technical note: if someone explicitly requires look-only access,
configure --read-onlyis available, but complete read and write access is the recommended and default standard).
Honest limitations
Endpoints follow the official API reference; some request bodies (promotions, transactions, disputes, billing, custom objects, business rules) are passed as free-form JSON, so the AI should consult the reference for exact fields. Found a mismatch? Open an issue.
Payment Provider and Shipping Carrier endpoints are meant for partner apps and may require approval from Tiendanube's platform team.
Access tokens can't list their own scopes; use the 403 messages to find what's missing.
Not published on npm yet β install from GitHub as shown above.
Alternatives
Tiendanube also offers an official remote Admin MCP (see Tiendanube's help center for what it covers today). Community servers exist too (ropu/MCP-tienda_nube, AlexandreProenca/nuvemshop-mcp-server). This project is aimed at people who want a self-hosted, scope-controlled server with broad API coverage (including unstable resources) that they can read, fork and run locally.
FAQ
What is an MCP server? A small program that lets an AI assistant call tools in another system. Here, the tools are the Tiendanube API operations.
Does it work with Nuvemshop (Brazil)? Yes. Set TIENDANUBE_API_DOMAIN=https://api.nuvemshop.com.br.
Do I need to know how to code? No. Paste the one-line install prompt into your AI agent; it handles the keys and the configuration for you. Credentials: guides/GETTING_CREDENTIALS.md.
Can the AI delete my products by mistake? The tools can delete, and they are flagged destructive so well-behaved clients ask for confirmation; the agent rules also tell the AI to announce bulk changes first. If you prefer, switch to read-only with configure --read-only. Keep a backup of your catalog before bulk operations.
How much does it cost? The server is free (MIT). You pay only for the AI service you already use. Tiendanube API access depends on your plan.
Which token scopes do I need? Tick all of them when you create the app, so you never have to redo it (scopes only apply to new tokens). See the matrix in guides/GETTING_CREDENTIALS.md.
Is there an HTTP/remote mode? Yes: TRANSPORT=http serves stateless streamable HTTP on 127.0.0.1 and always requires a token (MCP_AUTH_TOKEN). It exists for clients that cannot run local programs, such as ChatGPT connectors, through an HTTPS tunnel.
Develop
git clone https://github.com/fedeclavero/tiendanube-mcp.git
cd tiendanube-mcp && npm install # also builds
npm test # offline tests: mocked API, installer in temp dirs
npm run docs # regenerate guides/TOOLS.mdArchitecture: each tool is a declarative EndpointDef in src/tools/, turned into an MCP tool (Zod schema, annotations, error mapping) by registry.ts. See CONTRIBUTING.md.
Support the project
If this saves you hours of copy-pasting prices or checking orders, a β on GitHub helps other Tiendanube merchants and developers find it. Bug reports and recipes you'd like to share are even better.
MIT Β© fedeclavero
Available Tools
191 toolstiendanube_abandoned_checkouts_apply_couponAbandoned Checkouts Apply CouponA
Attach a coupon to an abandoned checkout (recovery campaigns). HTTP: POST /checkouts/{id}/coupon Required scope: write_orders API version: 2025-03
Inputs: id (required), coupon_id (required), additional_fields.
tiendanube_abandoned_checkouts_getAbandoned Checkouts GetARead-onlyIdempotent
Get one abandoned checkout. HTTP: GET /checkouts/{id} Required scope: read_orders API version: 2025-03
Inputs: id (required), fields, response_format.
tiendanube_abandoned_checkouts_listAbandoned Checkouts ListARead-onlyIdempotent
List abandoned checkouts (abandoned > 6 hours ago, up to 30 days back). HTTP: GET /checkouts Required scope: read_orders API version: 2025-03 Returns {count, page, per_page, total?, has_more, next_page?, items[]}.
Inputs: page, fields, per_page, since_id, +5 more.
tiendanube_billing_charges_createBilling Charges CreateA
Create a one-off or usage charge for an app service. HTTP: POST /services/{service_id}/charges Required scope: write_charges API version: 2025-03
Inputs: charge (required), service_id (required).
tiendanube_billing_plans_createBilling Plans CreateB
Create an app billing plan. HTTP: POST /plans Required scope: write_plans API version: 2025-03
Inputs: plan (required).
tiendanube_billing_plans_deleteBilling Plans DeleteADestructiveIdempotent
Delete an app billing plan. HTTP: DELETE /plans/{plan_id} Required scope: write_plans API version: 2025-03
Inputs: plan_id (required).
tiendanube_billing_plans_updateBilling Plans UpdateAIdempotent
Update an app billing plan. HTTP: PATCH /plans/{plan_id} Required scope: write_plans API version: 2025-03
Inputs: plan (required), plan_id (required).
tiendanube_billing_subscriptions_getBilling Subscriptions GetARead-onlyIdempotent
Get the store's subscription(s) for an app service. HTTP: GET /concepts/app-cost/services/{service_id}/subscriptions Required scope: read_subscriptions API version: 2025-03
Inputs: service_id (required), fields, response_format.
tiendanube_billing_subscriptions_updateBilling Subscriptions UpdateBIdempotent
Update the store's subscription for an app service. HTTP: PATCH /concepts/app-cost/services/{service_id}/subscriptions Required scope: write_subscriptions API version: 2025-03
Inputs: service_id (required), subscription (required).
tiendanube_blog_posts_listBlog Posts ListARead-onlyIdempotent
List posts of a blog. HTTP: GET /blogs/{blog_id}/posts Required scope: read_content API version: 2025-03 Returns {count, page, per_page, total?, has_more, next_page?, items[]}.
Inputs: blog_id (required), page, fields, per_page, +1 more.
tiendanube_blogs_listBlogs ListARead-onlyIdempotent
List blogs of the store. HTTP: GET /blogs Required scope: read_content API version: 2025-03 Returns {count, page, per_page, total?, has_more, next_page?, items[]}.
Inputs: page, fields, per_page, response_format.
tiendanube_business_rules_upsertBusiness Rules UpsertAIdempotent
Create or replace conditional business rules that filter payment methods, carriers, locations or cart behaviour at checkout. HTTP: PUT /business_rules/integrations/{domain} Required scope: write_shipping (domain shipping) | read_payment_options (payments) | write_locations (location) | write_orders (cart) API version: 2025-03
Inputs: rules (required), domain (required).
tiendanube_carts_delete_couponCarts Delete CouponBDestructiveIdempotent
Remove a coupon applied to an active cart. HTTP: DELETE /carts/{id}/coupons/{coupon_id} Required scope: write_orders API version: 2025-03
Inputs: id (required), coupon_id (required).
tiendanube_carts_delete_line_itemCarts Delete Line ItemBDestructiveIdempotent
Remove one line item from an active cart. HTTP: DELETE /carts/{id}/line-items/{line_item_id} Required scope: write_orders API version: 2025-03
Inputs: id (required), line_item_id (required).
tiendanube_carts_getCarts GetARead-onlyIdempotent
Get the state and contents of an active cart. HTTP: GET /carts/{id} Required scope: read_orders API version: 2025-03
Inputs: id (required), fields, response_format.
tiendanube_categories_createCategories CreateA
Create a category (set parent for nesting). HTTP: POST /categories Required scope: write_products API version: 2025-03
Inputs: name (required), handle, parent, seo_title, +4 more.
tiendanube_categories_deleteCategories DeleteBDestructiveIdempotent
Delete a category. HTTP: DELETE /categories/{id} Required scope: write_products API version: 2025-03
Inputs: id (required).
tiendanube_categories_getCategories GetARead-onlyIdempotent
Get one category. HTTP: GET /categories/{id} Required scope: read_products API version: 2025-03
Inputs: id (required), fields, response_format.
tiendanube_categories_listCategories ListARead-onlyIdempotent
List categories. HTTP: GET /categories Required scope: read_products API version: 2025-03 Returns {count, page, per_page, total?, has_more, next_page?, items[]}.
Inputs: page, fields, handle, language, +8 more.
tiendanube_categories_updateCategories UpdateAIdempotent
Update a category. HTTP: PUT /categories/{id} Required scope: write_products API version: 2025-03
Inputs: id (required), name, handle, parent, +5 more.
tiendanube_coupons_createCoupons CreateB
Create a discount coupon. HTTP: POST /coupons Required scope: write_coupons API version: 2025-03
Inputs: code (required), type (required), valid, value, +11 more.
tiendanube_coupons_deleteCoupons DeleteADestructiveIdempotent
Delete a coupon. HTTP: DELETE /coupons/{id} Required scope: write_coupons API version: 2025-03
Inputs: id (required).
tiendanube_coupons_getCoupons GetBRead-onlyIdempotent
Get one coupon. HTTP: GET /coupons/{id} Required scope: read_coupons API version: 2025-03
Inputs: id (required), fields, response_format.
tiendanube_coupons_listCoupons ListARead-onlyIdempotent
List coupons. HTTP: GET /coupons Required scope: read_coupons API version: 2025-03 Returns {count, page, per_page, total?, has_more, next_page?, items[]}.
Inputs: code, page, type, valid, +14 more.
tiendanube_coupons_updateCoupons UpdateAIdempotent
Update a coupon. HTTP: PUT /coupons/{id} Required scope: write_coupons API version: 2025-03
Inputs: id (required), code, type, valid, +12 more.
tiendanube_customers_createCustomers CreateB
Create a customer. HTTP: POST /customers Required scope: write_customers API version: 2025-03
Inputs: name (required), email (required), note, extra, +6 more.
tiendanube_customers_deleteCustomers DeleteADestructiveIdempotent
Delete a customer. Only possible if the customer has no orders. HTTP: DELETE /customers/{id} Required scope: write_customers API version: 2025-03
Inputs: id (required).
tiendanube_customers_getCustomers GetARead-onlyIdempotent
Get one customer. HTTP: GET /customers/{id} Required scope: read_customers API version: 2025-03
Inputs: id (required), fields, response_format.
tiendanube_customers_listCustomers ListARead-onlyIdempotent
List customers. HTTP: GET /customers Required scope: read_customers API version: 2025-03 Returns {count, page, per_page, total?, has_more, next_page?, items[]}.
Inputs: q, page, email, fields, +9 more.
tiendanube_customers_updateCustomers UpdateBIdempotent
Update a customer. HTTP: PUT /customers/{id} Required scope: write_customers API version: 2025-03
Inputs: id (required), name, note, email, +7 more.
tiendanube_custom_field_capabilities_addCustom Field Capabilities AddA
Add a capability to a custom field definition (unstable API). HTTP: POST /{entity}/custom-fields/{namespace}/{slug}/capabilities Required scope: read_products/write_products API version: unstable
Inputs: slug (required), entity (required), namespace (required), capability (required).
tiendanube_custom_field_capabilities_listCustom Field Capabilities ListARead-onlyIdempotent
List capabilities of a custom field definition (unstable API). HTTP: GET /{entity}/custom-fields/{namespace}/{slug}/capabilities Required scope: read_products/write_products API version: unstable
Inputs: slug (required), entity (required), namespace (required), response_format.
tiendanube_custom_field_capabilities_removeCustom Field Capabilities RemoveADestructiveIdempotent
Remove a capability from a custom field definition (unstable API). HTTP: DELETE /{entity}/custom-fields/{namespace}/{slug}/capabilities Required scope: read_products/write_products API version: unstable
Inputs: slug (required), entity (required), namespace (required), capability.
tiendanube_custom_field_defs_createCustom Field Defs CreateA
Create a custom field definition (unstable API). HTTP: POST /{entity}/custom-fields Required scope: read_products/write_products API version: unstable
Inputs: entity (required), definition (required).
tiendanube_custom_field_defs_deleteCustom Field Defs DeleteADestructiveIdempotent
Delete a custom field definition (unstable API). HTTP: DELETE /{entity}/custom-fields/{namespace}/{slug} Required scope: read_products/write_products API version: unstable
Inputs: slug (required), entity (required), namespace (required).
tiendanube_custom_field_defs_getCustom Field Defs GetARead-onlyIdempotent
Get a custom field definition by namespace/slug (unstable API). HTTP: GET /{entity}/custom-fields/{namespace}/{slug} Required scope: read_products/write_products API version: unstable
Inputs: slug (required), entity (required), namespace (required), fields, +1 more.
tiendanube_custom_field_defs_listCustom Field Defs ListARead-onlyIdempotent
List custom field definitions (unstable API). HTTP: GET /{entity}/custom-fields Required scope: read_products/write_products API version: unstable Returns {count, page, per_page, total?, has_more, next_page?, items[]}.
Inputs: entity (required), page, fields, per_page, +1 more.
tiendanube_custom_fields_createCustom Fields CreateA
Define a custom field for an entity. HTTP: POST /{entity}/custom-fields Required scope: read_products/write_products (categories, products, products/variants) | read_customers/write_customers (customers) | read_orders/write_orders (orders) API version: 2025-03
Inputs: name (required), entity (required), value_type (required), values, +3 more.
tiendanube_custom_fields_deleteCustom Fields DeleteADestructiveIdempotent
Delete a custom field definition (and its values). HTTP: DELETE /{entity}/custom-fields/{custom_field_id} Required scope: read_products/write_products (categories, products, products/variants) | read_customers/write_customers (customers) | read_orders/write_orders (orders) API version: 2025-03
Inputs: entity (required), custom_field_id (required).
tiendanube_custom_fields_getCustom Fields GetARead-onlyIdempotent
Get one custom field definition. HTTP: GET /{entity}/custom-fields/{custom_field_id} Required scope: read_products/write_products (categories, products, products/variants) | read_customers/write_customers (customers) | read_orders/write_orders (orders) API version: 2025-03
Inputs: entity (required), custom_field_id (required), fields, response_format.
tiendanube_custom_fields_get_by_entity_idCustom Fields Get By Entity IdARead-onlyIdempotent
Get the custom field values of one entity instance (e.g. one product). HTTP: GET /{entity}/{entity_id}/custom-fields Required scope: read_products/write_products (categories, products, products/variants) | read_customers/write_customers (customers) | read_orders/write_orders (orders) API version: 2025-03
Inputs: entity (required), entity_id (required), fields, response_format.
tiendanube_custom_fields_listCustom Fields ListBRead-onlyIdempotent
List custom field definitions of an entity. HTTP: GET /{entity}/custom-fields Required scope: read_products/write_products (categories, products, products/variants) | read_customers/write_customers (customers) | read_orders/write_orders (orders) API version: 2025-03 Returns {count, page, per_page, total?, has_more, next_page?, items[]}.
Inputs: entity (required), page, fields, per_page, +1 more.
tiendanube_custom_fields_list_ownersCustom Fields List OwnersARead-onlyIdempotent
List entity instances that have a value for a custom field. HTTP: GET /{entity}/custom-fields/{custom_field_id}/owners Required scope: read_products/write_products (categories, products, products/variants) | read_customers/write_customers (customers) | read_orders/write_orders (orders) API version: 2025-03 Returns {count, page, per_page, total?, has_more, next_page?, items[]}.
Inputs: entity (required), custom_field_id (required), page, fields, +2 more.
tiendanube_custom_fields_set_valuesCustom Fields Set ValuesBIdempotent
Set custom field values on one entity instance. HTTP: PUT /{entity}/{entity_id}/custom-fields/values Required scope: read_products/write_products (categories, products, products/variants) | read_customers/write_customers (customers) | read_orders/write_orders (orders) API version: 2025-03
Inputs: entity (required), values (required), entity_id (required).
tiendanube_custom_fields_updateCustom Fields UpdateAIdempotent
Update a custom field definition. HTTP: PUT /{entity}/custom-fields/{custom_field_id} Required scope: read_products/write_products (categories, products, products/variants) | read_customers/write_customers (customers) | read_orders/write_orders (orders) API version: 2025-03
Inputs: entity (required), custom_field_id (required), name, values, +3 more.
tiendanube_custom_object_entries_createCustom Object Entries CreateA
Create an entry in a custom object (unstable API). HTTP: POST /custom-objects/{namespace}/{slug}/entries Required scope: read_products/write_products API version: unstable
Inputs: slug (required), entry (required), namespace (required).
tiendanube_custom_object_entries_deleteCustom Object Entries DeleteADestructiveIdempotent
Delete a custom object entry (unstable API). HTTP: DELETE /custom-objects/{namespace}/{slug}/entries/{entrySlug} Required scope: read_products/write_products API version: unstable
Inputs: slug (required), entrySlug (required), namespace (required).
tiendanube_custom_object_entries_getCustom Object Entries GetARead-onlyIdempotent
Get one custom object entry (unstable API). HTTP: GET /custom-objects/{namespace}/{slug}/entries/{entrySlug} Required scope: read_products/write_products API version: unstable
Inputs: slug (required), entrySlug (required), namespace (required), fields, +1 more.
tiendanube_custom_object_entries_listCustom Object Entries ListARead-onlyIdempotent
List entries of a custom object (unstable API). HTTP: GET /custom-objects/{namespace}/{slug}/entries Required scope: read_products/write_products API version: unstable Returns {count, page, per_page, total?, has_more, next_page?, items[]}.
Inputs: slug (required), namespace (required), page, fields, +2 more.
tiendanube_custom_object_entries_updateCustom Object Entries UpdateAIdempotent
Update a custom object entry (unstable API). HTTP: PUT /custom-objects/{namespace}/{slug}/entries/{entrySlug} Required scope: read_products/write_products API version: unstable
Inputs: slug (required), entry (required), entrySlug (required), namespace (required).
tiendanube_custom_objects_createCustom Objects CreateB
Create a custom object definition (unstable API). HTTP: POST /custom-objects Required scope: read_products/write_products API version: unstable
Inputs: definition (required).
tiendanube_custom_objects_deleteCustom Objects DeleteADestructiveIdempotent
Delete a custom object definition (unstable API). HTTP: DELETE /custom-objects/{namespace}/{slug} Required scope: read_products/write_products API version: unstable
Inputs: slug (required), namespace (required).
tiendanube_custom_objects_getCustom Objects GetARead-onlyIdempotent
Get a custom object definition (unstable API). HTTP: GET /custom-objects/{namespace}/{slug} Required scope: read_products/write_products API version: unstable
Inputs: slug (required), namespace (required), fields, response_format.
tiendanube_custom_objects_listCustom Objects ListARead-onlyIdempotent
List custom object definitions (unstable API). HTTP: GET /custom-objects Required scope: read_products/write_products API version: unstable Returns {count, page, per_page, total?, has_more, next_page?, items[]}.
Inputs: page, fields, per_page, response_format.
tiendanube_custom_objects_updateCustom Objects UpdateAIdempotent
Update a custom object definition (unstable API). HTTP: PUT /custom-objects/{namespace}/{slug} Required scope: read_products/write_products API version: unstable
Inputs: slug (required), namespace (required), definition (required).
tiendanube_discounts_callbacks_deleteDiscounts Callbacks DeleteADestructiveIdempotent
Remove the registered discount callback. HTTP: DELETE /discounts/callbacks Required scope: write_discounts API version: 2025-03
Inputs: no named parameters.
tiendanube_discounts_callbacks_upsertDiscounts Callbacks UpsertAIdempotent
Register/replace the external callback used to compute dynamic discounts. HTTP: PUT /discounts/callbacks Required scope: write_discounts API version: 2025-03
Inputs: callback (required).
tiendanube_disputes_createDisputes CreateA
Open a dispute/chargeback on a transaction. HTTP: POST /orders/{order_id}/transactions/{transaction_id}/disputes Required scope: write_payments API version: 2025-03
Inputs: dispute (required), order_id (required), transaction_id (required), api_version.
tiendanube_disputes_getDisputes GetARead-onlyIdempotent
Get a dispute. HTTP: GET /orders/{order_id}/transactions/{transaction_id}/disputes/{dispute_id} Required scope: read_payments API version: 2025-03
Inputs: order_id (required), dispute_id (required), transaction_id (required), fields, +2 more.
tiendanube_disputes_updateDisputes UpdateBIdempotent
Update a dispute (status, evidence...). HTTP: PUT /orders/{order_id}/transactions/{transaction_id}/disputes/{dispute_id} Required scope: write_payments API version: 2025-03
Inputs: dispute (required), order_id (required), dispute_id (required), transaction_id (required), +1 more.
tiendanube_draft_orders_confirmDraft Orders ConfirmA
Convert a draft order into a real confirmed Order. HTTP: POST /draft_orders/{id}/confirm Required scope: write_draft_orders API version: 2025-03
Inputs: id (required).
tiendanube_draft_orders_createDraft Orders CreateA
Create a draft order. The response includes a checkout_url to share with the buyer. HTTP: POST /draft_orders Required scope: write_draft_orders API version: 2025-03
Inputs: discount, products, shipping, contact_name, +4 more.
tiendanube_draft_orders_deleteDraft Orders DeleteADestructiveIdempotent
Delete a draft order. HTTP: DELETE /draft_orders/{id} Required scope: write_draft_orders API version: 2025-03
Inputs: id (required).
tiendanube_draft_orders_getDraft Orders GetBRead-onlyIdempotent
Get a draft order. HTTP: GET /draft_orders/{id} Required scope: read_draft_orders API version: 2025-03
Inputs: id (required), fields, response_format.
tiendanube_draft_orders_listDraft Orders ListARead-onlyIdempotent
List draft orders. HTTP: GET /draft_orders Required scope: read_draft_orders API version: 2025-03 Returns {count, page, per_page, total?, has_more, next_page?, items[]}.
Inputs: page, fields, per_page, response_format.
tiendanube_draft_orders_updateDraft Orders UpdateBIdempotent
Update a draft order. HTTP: PUT /draft_orders/{id} Required scope: write_draft_orders API version: 2025-03
Inputs: id (required), discount, products, shipping, +5 more.
tiendanube_email_templates_getEmail Templates GetARead-onlyIdempotent
Get one email template. HTTP: GET /email-templates/{templateID} Required scope: read_email_templates API version: 2025-03
Inputs: templateID (required), fields, response_format.
tiendanube_email_templates_listEmail Templates ListARead-onlyIdempotent
List transactional email templates. HTTP: GET /email-templates Required scope: read_email_templates API version: 2025-03 Returns {count, page, per_page, total?, has_more, next_page?, items[]}.
Inputs: page, fields, per_page, response_format.
tiendanube_email_templates_updateEmail Templates UpdateAIdempotent
Update an email template's subject and HTML. HTTP: PUT /email-templates/{templateID} Required scope: write_email_templates API version: 2025-03
Inputs: templateID (required), subject, template_html, additional_fields.
tiendanube_external_invoices_createExternal Invoices CreateA
Attach an external fiscal invoice (NFe/CAE...) to an order (unstable API). HTTP: POST /orders/{order_id}/invoices/external Required scope: write_orders API version: unstable
Inputs: key (required), order_id (required), xml, number, +3 more.
tiendanube_external_invoices_deleteExternal Invoices DeleteADestructiveIdempotent
Delete an external invoice (unstable API). HTTP: DELETE /orders/{order_id}/invoices/external/{key} Required scope: write_orders API version: unstable
Inputs: key (required), order_id (required).
tiendanube_external_invoices_getExternal Invoices GetARead-onlyIdempotent
Get an external invoice by fiscal key. HTTP: GET /orders/{order_id}/invoices/external/{key} Required scope: read_orders API version: unstable
Inputs: key (required), order_id (required), fields, response_format.
tiendanube_external_invoices_listExternal Invoices ListARead-onlyIdempotent
List external fiscal invoices of an order (unstable API; per_page max 50). HTTP: GET /orders/{order_id}/invoices/external Required scope: read_orders API version: unstable Returns {count, page, per_page, total?, has_more, next_page?, items[]}.
Inputs: order_id (required), page, fields, per_page, +1 more.
tiendanube_external_invoices_updateExternal Invoices UpdateBIdempotent
Update an external invoice (unstable API). HTTP: PUT /orders/{order_id}/invoices/external/{key} Required scope: write_orders API version: unstable
Inputs: key (required), order_id (required), xml, number, +3 more.
tiendanube_fulfillment_orders_deleteFulfillment Orders DeleteBDestructiveIdempotent
Delete a fulfillment order. HTTP: DELETE /orders/{order_id}/fulfillment-orders/{id} Required scope: write_fulfillment_orders API version: 2025-03
Inputs: id (required), order_id (required).
tiendanube_fulfillment_orders_getFulfillment Orders GetARead-onlyIdempotent
Get one fulfillment order. HTTP: GET /orders/{order_id}/fulfillment-orders/{id} Required scope: read_fulfillment_orders API version: 2025-03
Inputs: id (required), order_id (required), fields, response_format.
tiendanube_fulfillment_orders_listFulfillment Orders ListARead-onlyIdempotent
List fulfillment orders of an order (modern way to manage packing, dispatch and tracking). HTTP: GET /orders/{order_id}/fulfillment-orders Required scope: read_fulfillment_orders API version: 2025-03 Returns {count, page, per_page, total?, has_more, next_page?, items[]}.
Inputs: order_id (required), page, fields, per_page, +1 more.
tiendanube_fulfillment_orders_updateFulfillment Orders UpdateAIdempotent
Update fulfillment status, tracking info and customer notification. HTTP: PATCH /orders/{order_id}/fulfillment-orders/{id} Required scope: write_fulfillment_orders API version: 2025-03
Inputs: id (required), order_id (required), status, tracking_info, +2 more.
tiendanube_fulfillment_tracking_events_createFulfillment Tracking Events CreateA
Add a tracking event to a fulfillment order. HTTP: POST /orders/{order_id}/fulfillment-orders/{id}/tracking-events Required scope: write_fulfillment_orders API version: 2025-03
Inputs: id (required), event (required), order_id (required).
tiendanube_fulfillment_tracking_events_deleteFulfillment Tracking Events DeleteADestructiveIdempotent
Delete a tracking event. HTTP: DELETE /orders/{order_id}/fulfillment-orders/{id}/tracking-events/{event_id} Required scope: write_fulfillment_orders API version: 2025-03
Inputs: id (required), event_id (required), order_id (required).
tiendanube_fulfillment_tracking_events_updateFulfillment Tracking Events UpdateBIdempotent
Update a tracking event. HTTP: PUT /orders/{order_id}/fulfillment-orders/{id}/tracking-events/{event_id} Required scope: write_fulfillment_orders API version: 2025-03
Inputs: id (required), event (required), event_id (required), order_id (required).
tiendanube_kits_getKits GetARead-onlyIdempotent
Get a Kit/Combo product and the products/variants composing it. HTTP: GET /kits/{id} Required scope: read_products API version: 2025-03
Inputs: id (required), fields, response_format.
tiendanube_locations_createLocations CreateA
Create a location. HTTP: POST /locations Required scope: write_locations API version: 2025-03
Inputs: name (required), address, allows_pickup, additional_fields.
tiendanube_locations_deleteLocations DeleteADestructiveIdempotent
Delete a location. HTTP: DELETE /locations/{id} Required scope: write_locations API version: 2025-03
Inputs: id (required).
tiendanube_locations_getLocations GetARead-onlyIdempotent
Get one location. HTTP: GET /locations/{id} Required scope: read_locations API version: 2025-03
Inputs: id (required), fields, response_format.
tiendanube_locations_inventory_levels_listLocations Inventory Levels ListARead-onlyIdempotent
List stock levels of variants at one location. HTTP: GET /locations/{id}/inventory-levels Required scope: read_locations API version: 2025-03 Returns {count, page, per_page, total?, has_more, next_page?, items[]}.
Inputs: id (required), page, fields, per_page, +1 more.
tiendanube_locations_listLocations ListARead-onlyIdempotent
List locations (branches / distribution centers). HTTP: GET /locations Required scope: read_locations API version: 2025-03 Returns {count, page, per_page, total?, has_more, next_page?, items[]}.
Inputs: page, fields, per_page, response_format.
tiendanube_locations_set_defaultLocations Set DefaultBIdempotent
Mark a location as the default one. HTTP: PATCH /locations/{id}/chosen-as-default Required scope: write_locations API version: 2025-03
Inputs: id (required).
tiendanube_locations_updateLocations UpdateBIdempotent
Update a location. HTTP: PUT /locations/{id} Required scope: write_locations API version: 2025-03
Inputs: id (required), name, address, allows_pickup, +1 more.
tiendanube_locations_update_prioritiesLocations Update PrioritiesBIdempotent
Set the order in which locations are used to deduct stock. HTTP: PATCH /locations/priorities Required scope: write_locations API version: 2025-03
Inputs: priorities (required).
tiendanube_metafields_createMetafields CreateB
Create a metafield. HTTP: POST /metafields Required scope: read_*/write_* matching owner_resource: products (Product, Product_Variant, Category) | content (Page) | orders (Order) | customers (Customer) API version: 2025-03
Inputs: key (required), value (required), owner_id (required), namespace (required), +3 more.
tiendanube_metafields_deleteMetafields DeleteADestructiveIdempotent
Delete a metafield. HTTP: DELETE /metafields/{id} Required scope: read_*/write_* matching owner_resource: products (Product, Product_Variant, Category) | content (Page) | orders (Order) | customers (Customer) API version: 2025-03
Inputs: id (required).
tiendanube_metafields_getMetafields GetARead-onlyIdempotent
Get one metafield. HTTP: GET /metafields/{id} Required scope: read_*/write_* matching owner_resource: products (Product, Product_Variant, Category) | content (Page) | orders (Order) | customers (Customer) API version: 2025-03
Inputs: id (required), fields, response_format.
tiendanube_metafields_list_by_resourceMetafields List By ResourceARead-onlyIdempotent
List metafields of a resource type, optionally filtered by owner/namespace/key/value. HTTP: GET /metafields/{owner_resource} Required scope: read_*/write_* matching owner_resource: products (Product, Product_Variant, Category) | content (Page) | orders (Order) | customers (Customer) API version: 2025-03 Returns {count, page, per_page, total?, has_more, next_page?, items[]}.
Inputs: owner_resource (required), key, page, value, +5 more.
tiendanube_metafields_updateMetafields UpdateBIdempotent
Update a metafield. HTTP: PUT /metafields/{id} Required scope: read_*/write_* matching owner_resource: products (Product, Product_Variant, Category) | content (Page) | orders (Order) | customers (Customer) API version: 2025-03
Inputs: id (required), value, description, additional_fields.
tiendanube_oauth_exchange_codeExchange OAuth Code For Access TokenA
Exchange the temporary OAuth 'code' (received on the app's redirect URL as ?code=...) for the permanent access_token. The response includes access_token, token_type, scope (granted scopes) and user_id β which is the store_id to use as TIENDANUBE_STORE_ID. Tokens do not expire unless the app is uninstalled or the token is rotated. The code is single-use and short-lived. Requires client credentials: pass client_id/client_secret or set TIENDANUBE_CLIENT_ID / TIENDANUBE_CLIENT_SECRET. Does not need a store access token. HTTP: POST https://www.tiendanube.com/apps/authorize/token (or nuvemshop.com.br).
Inputs: code (required), region, client_id, client_secret.
tiendanube_order_fulfillments_createOrder Fulfillments CreateA
Create a legacy fulfillment event (e.g. shipped with tracking). HTTP: POST /orders/{order_id}/fulfillments Required scope: write_shipping API version: 2025-03
Inputs: order_id (required), fulfillment (required).
tiendanube_order_fulfillments_deleteOrder Fulfillments DeleteBDestructiveIdempotent
Delete a legacy fulfillment event. HTTP: DELETE /orders/{order_id}/fulfillments/{id} Required scope: write_shipping API version: 2025-03
Inputs: id (required), order_id (required).
tiendanube_order_fulfillments_getOrder Fulfillments GetARead-onlyIdempotent
Get a legacy fulfillment event. HTTP: GET /orders/{order_id}/fulfillments/{id} Required scope: read_shipping API version: 2025-03
Inputs: id (required), order_id (required), fields, response_format.
tiendanube_order_fulfillments_listOrder Fulfillments ListARead-onlyIdempotent
List legacy fulfillment events of an order (prefer fulfillment orders). HTTP: GET /orders/{order_id}/fulfillments Required scope: read_shipping API version: 2025-03 Returns {count, page, per_page, total?, has_more, next_page?, items[]}.
Inputs: order_id (required), page, fields, per_page, +1 more.
tiendanube_orders_cancelOrders CancelADestructive
Cancel an order. Irreversible; can email the buyer and restock inventory. HTTP: POST /orders/{id}/cancel Required scope: write_orders API version: 2025-03
Inputs: id (required), email, reason, restock, +1 more.
tiendanube_orders_closeOrders CloseA
Close (archive) an open order. HTTP: POST /orders/{id}/close Required scope: write_orders API version: 2025-03
Inputs: id (required).
tiendanube_orders_createOrders CreateA
Create an order (e.g. for imports or manual sales). Check inventory_behaviour to control stock. HTTP: POST /orders Required scope: write_orders API version: 2025-03
Inputs: products (required), note, status, gateway, +17 more.
tiendanube_orders_getOrders GetBRead-onlyIdempotent
Get one order. Note: products[].id values are 64-bit; they are returned as-is (treat as strings). HTTP: GET /orders/{id} Required scope: read_orders API version: 2025-03 (unstable if noted)
Inputs: id (required), fields, aggregates, response_format.
tiendanube_orders_history_editions_getOrders History Editions GetARead-onlyIdempotent
Get the log of product/quantity edits applied to an order. HTTP: GET /orders/{id}/history/editions Required scope: read_orders API version: 2025-03
Inputs: id (required), fields, response_format.
tiendanube_orders_history_values_getOrders History Values GetBRead-onlyIdempotent
Get the history of financial values of an edited order. HTTP: GET /orders/{id}/history/values Required scope: read_orders API version: 2025-03
Inputs: id (required), fields, response_format.
tiendanube_orders_invoices_createOrders Invoices CreateB
Attach an invoice to an order. Body per the API reference. HTTP: POST /orders/{id}/invoices Required scope: write_orders API version: 2025-03
Inputs: id (required), invoice (required).
tiendanube_orders_invoices_listOrders Invoices ListARead-onlyIdempotent
List invoices attached to an order. HTTP: GET /orders/{id}/invoices Required scope: read_orders API version: 2025-03 Returns {count, page, per_page, total?, has_more, next_page?, items[]}.
Inputs: id (required), page, fields, per_page, +1 more.
tiendanube_orders_listOrders ListARead-onlyIdempotent
List orders. Hard cap: page * per_page must be <= 10000 β for deeper history slice by created_at/updated_at ranges or use since_id. HTTP: GET /orders Required scope: read_orders API version: 2025-03 (unstable if noted) Returns {count, page, per_page, total?, has_more, next_page?, items[]}.
Inputs: q, page, fields, status, +15 more.
tiendanube_orders_openOrders OpenA
Re-open a closed order. HTTP: POST /orders/{id}/open Required scope: write_orders API version: 2025-03
Inputs: id (required).
tiendanube_orders_subscriptions_getOrders Subscriptions GetARead-onlyIdempotent
List subscriptions linked to an order. HTTP: GET /orders/{id}/subscriptions Required scope: read_orders API version: 2025-03
Inputs: id (required), fields, response_format.
tiendanube_orders_updateOrders UpdateBIdempotent
Update an order's owner_note, status or gateway_link. HTTP: PUT /orders/{id} Required scope: write_orders API version: 2025-03
Inputs: id (required), status, owner_note, gateway_link, +1 more.
tiendanube_pages_createPages CreateB
Create a page. HTTP: POST /pages Required scope: write_content API version: 2025-03
Inputs: i18n (required), publish, additional_fields.
tiendanube_pages_deletePages DeleteBDestructiveIdempotent
Delete a page. HTTP: DELETE /pages/{pageID} Required scope: write_content API version: 2025-03
Inputs: pageID (required).
tiendanube_pages_getPages GetARead-onlyIdempotent
Get one page. HTTP: GET /pages/{pageID} Required scope: read_content API version: 2025-03
Inputs: pageID (required), fields, response_format.
tiendanube_pages_listPages ListARead-onlyIdempotent
List store pages (about, FAQ, policies...). HTTP: GET /pages Required scope: read_content API version: 2025-03 Returns {count, page, per_page, total?, has_more, next_page?, items[]}.
Inputs: page, fields, per_page, response_format.
tiendanube_pages_updatePages UpdateBIdempotent
Update a page. HTTP: PUT /pages/{pageID} Required scope: write_content API version: 2025-03
Inputs: pageID (required), i18n, publish, additional_fields.
tiendanube_payment_options_listPayment Options ListARead-onlyIdempotent
List the payment options available in the store. HTTP: GET /payment-options Required scope: read_payment_options API version: 2025-03 Returns {count, page, per_page, total?, has_more, next_page?, items[]}.
Inputs: page, fields, per_page, response_format.
tiendanube_payment_provider_options_listPayment Provider Options ListARead-onlyIdempotent
List the options of the app's payment providers. HTTP: GET /payment_providers/options Required scope: read_payments API version: 2025-03 Returns {count, page, per_page, total?, has_more, next_page?, items[]}.
Inputs: page, fields, per_page, response_format.
tiendanube_payment_providers_createPayment Providers CreateA
Register a payment provider. HTTP: POST /payment_providers Required scope: write_payments API version: 2025-03
Inputs: name (required), enabled, features, logo_urls, +8 more.
tiendanube_payment_providers_deletePayment Providers DeleteADestructiveIdempotent
Delete a payment provider. HTTP: DELETE /payment_providers/{id} Required scope: write_payments API version: 2025-03
Inputs: id (required).
tiendanube_payment_providers_getPayment Providers GetARead-onlyIdempotent
Get one payment provider. HTTP: GET /payment_providers/{id} Required scope: read_payments API version: 2025-03
Inputs: id (required), fields, response_format.
tiendanube_payment_providers_listPayment Providers ListARead-onlyIdempotent
List payment providers registered by the app. HTTP: GET /payment_providers Required scope: read_payments API version: 2025-03 Returns {count, page, per_page, total?, has_more, next_page?, items[]}.
Inputs: page, fields, per_page, response_format.
tiendanube_payment_providers_updatePayment Providers UpdateAIdempotent
Update a payment provider. HTTP: PUT /payment_providers/{id} Required scope: write_payments API version: 2025-03
Inputs: id (required), name, enabled, features, +9 more.
tiendanube_price_tables_categories_addPrice Tables Categories AddB
Assign categories to a price table. Body shape per the API reference. HTTP: POST /products/price-tables/{table_id}/categories Required scope: write_products API version: 2025-03
Inputs: payload (required), table_id (required).
tiendanube_price_tables_categories_listPrice Tables Categories ListARead-onlyIdempotent
List categories assigned to a price table. HTTP: GET /products/price-tables/{table_id}/categories Required scope: read_products API version: 2025-03 Returns {count, page, per_page, total?, has_more, next_page?, items[]}.
Inputs: table_id (required), page, fields, per_page, +1 more.
tiendanube_price_tables_categories_removePrice Tables Categories RemoveADestructiveIdempotent
Remove categories from a price table. Body shape per the API reference. HTTP: DELETE /products/price-tables/{table_id}/categories Required scope: write_products API version: 2025-03
Inputs: table_id (required), payload.
tiendanube_price_tables_categories_updatePrice Tables Categories UpdateBIdempotent
Update categories entries of a price table (e.g. prices). Body shape per the API reference. HTTP: PUT /products/price-tables/{table_id}/categories Required scope: write_products API version: 2025-03
Inputs: payload (required), table_id (required).
tiendanube_price_tables_createPrice Tables CreateB
Create a price table. HTTP: POST /products/price-tables Required scope: write_products API version: 2025-03
Inputs: name (required), description, additional_fields.
tiendanube_price_tables_customers_addPrice Tables Customers AddB
Assign customers to a price table. Body shape per the API reference. HTTP: POST /products/price-tables/{table_id}/customers Required scope: write_products API version: 2025-03
Inputs: payload (required), table_id (required).
tiendanube_price_tables_customers_listPrice Tables Customers ListARead-onlyIdempotent
List customers assigned to a price table. HTTP: GET /products/price-tables/{table_id}/customers Required scope: read_products API version: 2025-03 Returns {count, page, per_page, total?, has_more, next_page?, items[]}.
Inputs: table_id (required), page, fields, per_page, +1 more.
tiendanube_price_tables_customers_removePrice Tables Customers RemoveBDestructiveIdempotent
Remove customers from a price table. Body shape per the API reference. HTTP: DELETE /products/price-tables/{table_id}/customers Required scope: write_products API version: 2025-03
Inputs: table_id (required), payload.
tiendanube_price_tables_deletePrice Tables DeleteBDestructiveIdempotent
Delete a price table. HTTP: DELETE /products/price-tables/{id} Required scope: write_products API version: 2025-03
Inputs: id (required).
tiendanube_price_tables_getPrice Tables GetARead-onlyIdempotent
Get one price table. HTTP: GET /products/price-tables/{id} Required scope: read_products API version: 2025-03
Inputs: id (required), fields, response_format.
tiendanube_price_tables_listPrice Tables ListARead-onlyIdempotent
List price tables (wholesale / B2B price lists). HTTP: GET /products/price-tables Required scope: read_products API version: 2025-03 Returns {count, page, per_page, total?, has_more, next_page?, items[]}.
Inputs: page, fields, per_page, response_format.
tiendanube_price_tables_updatePrice Tables UpdateAIdempotent
Update a price table. HTTP: PUT /products/price-tables/{id} Required scope: write_products API version: 2025-03
Inputs: id (required), name, description, additional_fields.
tiendanube_price_tables_variants_addPrice Tables Variants AddC
Assign variants to a price table. Body shape per the API reference. HTTP: POST /products/price-tables/{table_id}/variants Required scope: write_products API version: 2025-03
Inputs: payload (required), table_id (required).
tiendanube_price_tables_variants_listPrice Tables Variants ListARead-onlyIdempotent
List variants assigned to a price table. HTTP: GET /products/price-tables/{table_id}/variants Required scope: read_products API version: 2025-03 Returns {count, page, per_page, total?, has_more, next_page?, items[]}.
Inputs: table_id (required), page, fields, per_page, +1 more.
tiendanube_price_tables_variants_removePrice Tables Variants RemoveBDestructiveIdempotent
Remove variants from a price table. Body shape per the API reference. HTTP: DELETE /products/price-tables/{table_id}/variants Required scope: write_products API version: 2025-03
Inputs: table_id (required), payload.
tiendanube_price_tables_variants_updatePrice Tables Variants UpdateCIdempotent
Update variants entries of a price table (e.g. prices). Body shape per the API reference. HTTP: PUT /products/price-tables/{table_id}/variants Required scope: write_products API version: 2025-03
Inputs: payload (required), table_id (required).
tiendanube_product_images_createProduct Images CreateA
Add an image from a public URL (src) or Base64 (attachment + filename). jpg/png/gif/webp, max 250 per product. HTTP: POST /products/{product_id}/images Required scope: write_products API version: 2025-03
Inputs: product_id (required), alt, src, filename, +3 more.
tiendanube_product_images_deleteProduct Images DeleteADestructiveIdempotent
Delete a product image. HTTP: DELETE /products/{product_id}/images/{id} Required scope: write_products API version: 2025-03
Inputs: id (required), product_id (required).
tiendanube_product_images_getProduct Images GetARead-onlyIdempotent
Get one product image. HTTP: GET /products/{product_id}/images/{id} Required scope: read_products API version: 2025-03
Inputs: id (required), product_id (required), fields, response_format.
tiendanube_product_images_listProduct Images ListARead-onlyIdempotent
List images of a product. HTTP: GET /products/{product_id}/images Required scope: read_products API version: 2025-03 Returns {count, page, per_page, total?, has_more, next_page?, items[]}.
Inputs: product_id (required), src, page, fields, +4 more.
tiendanube_product_images_updateProduct Images UpdateAIdempotent
Update an image's position, alt text or source. HTTP: PUT /products/{product_id}/images/{id} Required scope: write_products API version: 2025-03
Inputs: id (required), product_id (required), alt, src, +2 more.
tiendanube_product_images_upload_unattachedProduct Images Upload UnattachedA
Upload an image to the store repository before attaching it to a product. HTTP: POST /products/images Required scope: write_products API version: 2025-03
Inputs: src, filename, attachment, additional_fields.
tiendanube_products_batch_stock_priceProducts Batch Stock PriceAIdempotent
Bulk-update price, promotional price and inventory levels of many products/variants in one call. Body items: [{id: product_id, variants:[{id, price, promotional_price, inventory_levels:[{location_id, stock}]}]}]. Prefer this over per-variant calls to save rate limit. HTTP: PATCH /products/stock-price Required scope: write_products API version: 2025-03
Inputs: items (required).
tiendanube_products_createProducts CreateA
Create a product (optionally with variants and images). Prices, SKU, weight and stock belong to variants. HTTP: POST /products Required scope: write_products API version: 2025-03
Inputs: name (required), tags, brand, handle, +12 more.
tiendanube_products_deleteProducts DeleteADestructiveIdempotent
Permanently delete a product with all its variants and images. HTTP: DELETE /products/{id} Required scope: write_products API version: 2025-03
Inputs: id (required).
tiendanube_products_getProducts GetARead-onlyIdempotent
Get one product by ID, including variants, images, categories and attributes. HTTP: GET /products/{id} Required scope: read_products API version: 2025-03
Inputs: id (required), fields, response_format.
tiendanube_products_get_by_skuProducts Get By SkuARead-onlyIdempotent
Find the product owning a variant with the given SKU. HTTP: GET /products/sku/{sku} Required scope: read_products API version: 2025-03
Inputs: sku (required), fields, response_format.
tiendanube_products_listProducts ListARead-onlyIdempotent
List products with their variants, images and categories. Supports rich filters. HTTP: GET /products Required scope: read_products API version: 2025-03 Returns {count, page, per_page, total?, has_more, next_page?, items[]}.
Inputs: q, ids, page, fields, +19 more.
tiendanube_products_updateProducts UpdateAIdempotent
Update product metadata. Does NOT modify variants; use the variants tools for price/stock/SKU. HTTP: PUT /products/{id} Required scope: write_products API version: 2025-03
Inputs: id (required), name, tags, brand, +13 more.
tiendanube_promotions_createPromotions CreateB
Create an automatic cart/catalog promotion. Body per the Discount API reference. HTTP: POST /promotions Required scope: write_discounts API version: 2025-03
Inputs: promotion (required).
tiendanube_promotions_deletePromotions DeleteBDestructiveIdempotent
Delete a promotion. HTTP: DELETE /promotions/{id} Required scope: write_discounts API version: 2025-03
Inputs: id (required).
tiendanube_promotions_getPromotions GetARead-onlyIdempotent
Get one promotion. HTTP: GET /promotions/{id} Required scope: read_discounts API version: 2025-03
Inputs: id (required), fields, response_format.
tiendanube_promotions_listPromotions ListARead-onlyIdempotent
List automatic promotions (2x1, 3x2, volume discounts...). HTTP: GET /promotions Required scope: read_discounts API version: 2025-03 Returns {count, page, per_page, total?, has_more, next_page?, items[]}.
Inputs: page, fields, per_page, response_format.
tiendanube_scripts_createScripts CreateA
Associate a Partner Portal script with the store. HTTP: POST /scripts Required scope: write_scripts API version: 2025-03
Inputs: script_id (required), query_params, additional_fields.
tiendanube_scripts_deleteScripts DeleteADestructiveIdempotent
Remove a script from the store. HTTP: DELETE /scripts/{id} Required scope: write_scripts API version: 2025-03
Inputs: id (required).
tiendanube_scripts_getScripts GetARead-onlyIdempotent
Get a script association. HTTP: GET /scripts/{id} Required scope: none (any valid token) API version: 2025-03
Inputs: id (required), fields, response_format.
tiendanube_scripts_listScripts ListARead-onlyIdempotent
List scripts associated with the store. HTTP: GET /scripts Required scope: none (any valid token) API version: 2025-03 Returns {count, page, per_page, total?, has_more, next_page?, items[]}.
Inputs: page, fields, per_page, response_format.
tiendanube_scripts_updateScripts UpdateBIdempotent
Update a store's script association/parameters. HTTP: PUT /scripts/{id} Required scope: write_scripts API version: 2025-03
Inputs: id (required), script_id, query_params, additional_fields.
tiendanube_shipping_carrier_options_createShipping Carrier Options CreateB
Create a carrier option. Body per the API reference. HTTP: POST /shipping_carriers/{carrier_id}/options Required scope: write_shipping API version: 2025-03
Inputs: option (required), carrier_id (required).
tiendanube_shipping_carrier_options_deleteShipping Carrier Options DeleteBDestructiveIdempotent
Delete a carrier option. HTTP: DELETE /shipping_carriers/{carrier_id}/options/{option_id} Required scope: write_shipping API version: 2025-03
Inputs: option_id (required), carrier_id (required).
tiendanube_shipping_carrier_options_getShipping Carrier Options GetARead-onlyIdempotent
Get one carrier option. HTTP: GET /shipping_carriers/{carrier_id}/options/{option_id} Required scope: read_shipping API version: 2025-03
Inputs: option_id (required), carrier_id (required), fields, response_format.
tiendanube_shipping_carrier_options_listShipping Carrier Options ListARead-onlyIdempotent
List options of a shipping carrier. HTTP: GET /shipping_carriers/{carrier_id}/options Required scope: read_shipping API version: 2025-03 Returns {count, page, per_page, total?, has_more, next_page?, items[]}.
Inputs: carrier_id (required), page, fields, per_page, +1 more.
tiendanube_shipping_carrier_options_updateShipping Carrier Options UpdateBIdempotent
Update a carrier option. HTTP: PUT /shipping_carriers/{carrier_id}/options/{option_id} Required scope: write_shipping API version: 2025-03
Inputs: option (required), option_id (required), carrier_id (required).
tiendanube_shipping_carriers_createShipping Carriers CreateA
Register a shipping carrier with a live-rate callback. HTTP: POST /shipping_carriers Required scope: write_shipping API version: 2025-03
Inputs: name (required), callback_url (required), types, active, +1 more.
tiendanube_shipping_carriers_deleteShipping Carriers DeleteADestructiveIdempotent
Delete a shipping carrier. HTTP: DELETE /shipping_carriers/{id} Required scope: write_shipping API version: 2025-03
Inputs: id (required).
tiendanube_shipping_carriers_getShipping Carriers GetARead-onlyIdempotent
Get one shipping carrier. HTTP: GET /shipping_carriers/{id} Required scope: read_shipping API version: 2025-03
Inputs: id (required), fields, response_format.
tiendanube_shipping_carriers_listShipping Carriers ListARead-onlyIdempotent
List shipping carriers registered by the app. HTTP: GET /shipping_carriers Required scope: read_shipping API version: 2025-03 Returns {count, page, per_page, total?, has_more, next_page?, items[]}.
Inputs: page, fields, per_page, response_format.
tiendanube_shipping_carriers_updateShipping Carriers UpdateBIdempotent
Update a shipping carrier. HTTP: PUT /shipping_carriers/{id} Required scope: write_shipping API version: 2025-03
Inputs: id (required), name, types, active, +2 more.
tiendanube_store_getStore GetARead-onlyIdempotent
Get store metadata: name, description, domains, active languages, main_currency, country, plan_name, address and social links. Use it first to learn which languages (i18n keys) the store uses. HTTP: GET /store Required scope: any valid token API version: 2025-03
Inputs: fields, response_format.
tiendanube_store_media_quotas_getStore Media Quotas GetARead-onlyIdempotent
Get current usage and limit of the store's media storage (unstable API). HTTP: GET /store/media/quotas Required scope: read_products API version: unstable
Inputs: fields, response_format.
tiendanube_transaction_events_createTransaction Events CreateB
Add a lifecycle event to an existing transaction. HTTP: POST /orders/{order_id}/transactions/{transaction_id}/events Required scope: write_payments API version: 2025-03
Inputs: event (required), order_id (required), transaction_id (required).
tiendanube_transactions_createTransactions CreateA
Record a financial transaction (authorization, capture, charge, refund, void) on an order. HTTP: POST /orders/{order_id}/transactions Required scope: write_payments API version: 2025-03
Inputs: order_id (required), transaction (required).
tiendanube_transactions_getTransactions GetARead-onlyIdempotent
Get one transaction. HTTP: GET /orders/{order_id}/transactions/{id} Required scope: read_payments API version: 2025-03
Inputs: id (required), order_id (required), fields, response_format.
tiendanube_transactions_listTransactions ListARead-onlyIdempotent
List payment transactions of an order. HTTP: GET /orders/{order_id}/transactions Required scope: read_payments API version: 2025-03 Returns {count, page, per_page, total?, has_more, next_page?, items[]}.
Inputs: order_id (required), page, fields, per_page, +1 more.
tiendanube_variants_batch_replaceVariants Batch ReplaceADestructiveIdempotent
Replace the full set of variants of a product in one call (array of variant objects). Costs rate limit proportional to variants/languages/inventory_levels (weighted token bucket). HTTP: PUT /products/{product_id}/variants Required scope: write_products API version: 2025-03
Inputs: variants (required), product_id (required).
tiendanube_variants_batch_updateVariants Batch UpdateAIdempotent
Partially update many existing variants of a product in one call (array of {id, ...fields}). Weighted token bucket applies. HTTP: PATCH /products/{product_id}/variants Required scope: write_products API version: 2025-03
Inputs: variants (required), product_id (required).
tiendanube_variants_createVariants CreateB
Create a variant (max 1000 per product). HTTP: POST /products/{product_id}/variants Required scope: write_products API version: 2025-03
Inputs: product_id (required), mpn, sku, cost, +15 more.
tiendanube_variants_deleteVariants DeleteADestructiveIdempotent
Delete a variant. The only variant of a product cannot be deleted. HTTP: DELETE /products/{product_id}/variants/{id} Required scope: write_products API version: 2025-03
Inputs: id (required), product_id (required).
tiendanube_variants_getVariants GetARead-onlyIdempotent
Get one variant. HTTP: GET /products/{product_id}/variants/{id} Required scope: read_products API version: 2025-03
Inputs: id (required), product_id (required), fields, response_format.
tiendanube_variants_listVariants ListARead-onlyIdempotent
List variants of a product. HTTP: GET /products/{product_id}/variants Required scope: read_products API version: 2025-03 Returns {count, page, per_page, total?, has_more, next_page?, items[]}.
Inputs: product_id (required), page, fields, per_page, +6 more.
tiendanube_variants_updateVariants UpdateBIdempotent
Update one variant (price, SKU, weight, stock...). HTTP: PUT /products/{product_id}/variants/{id} Required scope: write_products API version: 2025-03
Inputs: id (required), product_id (required), mpn, sku, +16 more.
tiendanube_variants_update_stockVariants Update StockA
Set or adjust stock. action 'replace' sets an exact value (value null = infinite stock); 'variation' adds/subtracts a delta. Omit id to apply to all variants of the product. HTTP: POST /products/{product_id}/variants/stock Required scope: write_products API version: 2025-03
Inputs: value (required), action (required), product_id (required), id, +2 more.
tiendanube_webhooks_createWebhooks CreateB
Subscribe an HTTPS URL to a store event. HTTP: POST /webhooks Required scope: scope of the event's entity (none for app/* and GDPR events) API version: 2025-03
Inputs: url (required), event (required), additional_fields.
tiendanube_webhooks_deleteWebhooks DeleteADestructiveIdempotent
Delete a webhook. HTTP: DELETE /webhooks/{id} Required scope: scope of the event's entity API version: 2025-03
Inputs: id (required).
tiendanube_webhooks_getWebhooks GetARead-onlyIdempotent
Get one webhook. HTTP: GET /webhooks/{id} Required scope: scope of the event's entity API version: 2025-03
Inputs: id (required), fields, response_format.
tiendanube_webhooks_listWebhooks ListARead-onlyIdempotent
List webhooks registered by the app. HTTP: GET /webhooks Required scope: scope of the event's entity (none for app/* and GDPR events) API version: 2025-03 Returns {count, page, per_page, total?, has_more, next_page?, items[]}.
Inputs: url, page, event, fields, +7 more.
tiendanube_webhooks_updateWebhooks UpdateAIdempotent
Change a webhook's URL or event. HTTP: PUT /webhooks/{id} Required scope: scope of the event's entity API version: 2025-03
Inputs: id (required), url, event, additional_fields.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelogβ¦
TDQS
Scored across 191 tools
Most tools map to a distinct resource+action, but the set has built-in ambiguity: legacy order fulfillments vs modern fulfillment_orders, custom_fields vs custom_field_defs (duplicate unstable/stable surfaces), and several overlapping stock/price update tools (products_batch_stock_price, variants_batch_update, variants_update_stock). Descriptions help, but an agent must carefully choose among near-duplicates, especially across 191 tools.
Names generally follow tiendanube_<resource>_<verb> in snake_case (e.g., products_list, products_get, products_create), which is predictable. There are minor deviations and awkward singular/plural shifts such as product_images vs products, order_fulfillments vs fulfillment_orders, and custom_field_defs vs custom_fields, plus a few upsert/set verbs.
191 tools is an extreme mismatch for any practical MCP surface. Even for a broad e-commerce API, this set exposes nearly every endpoint, including unstable and legacy variants, forcing an agent to navigate a huge, unwieldy tool catalog.
Coverage is very broad across products, variants, images, orders, draft orders, fulfillment, shipping, payments, customers, discounts, content, webhooks, metafields, custom objects and billing. Some gaps remain, such as full CRUD for blog posts and promotions (no promotion update), plus incomplete lifecycle surfaces for a few content/billing resources.
Maintenance
Related MCP Connectors
The Mercado Pago MCP Server implements the Model Context Protocol to provide AI agents and LLMs with access to Mercado Pago's APIs and tools within compatible development environments. It acts as an intermediary that translates Mercado Pago resources into executable functions (tools) that AI applications can invoke to perform actions and automate flows. The server simplifies integration, enables using documentation to implement or improve code, and optimizes operations through natural language interactions without manual implementations.
Unified MCP server for 70+ eCommerce platforms: products, orders, customers, and more.
Hosted MCP server for 3Dsellers, the multichannel selling platform. Connect Claude, ChatGPT, Cursor, VS Code or any MCP client and manage your eBay, Amazon, Walmart, Etsy, Shopify, WooCommerce and TikTok Shop stores in plain language: search and update products, publish listings, sync inventory, tag and track orders, run bulk actions and CSV imports, and reply to customer messages. 120+ tools. Sign in with OAuth or a personal token. No eBay developer account and nothing to install. Setup guides and config examples for every client: https://github.com/3dsellers/ebay-mcp-server
Hosted MCP for e-commerce: live product catalog, stock, and pricing for AI agents.
Related MCP Servers
- AlicenseBqualityDmaintenanceMCP server for managing WooCommerce stores through AI assistants like Claude. Provides 101 tools covering products, orders, customers, coupons, shipping, taxes, webhooks, settings, reports, and more.100112 npm2MIT
- AlicenseAqualityDmaintenanceAn open-source MCP server that wraps the Shopline Open API into 143 AI-callable tools for e-commerce data analysis, enabling AI agents to query orders, products, inventory, customer behavior, and promotions from Shopline stores through natural language.10020MIT
- AlicenseCqualityDmaintenanceIntegrates with the Tienda Nube/Nuvemshop API to manage products, orders, customers, categories, coupons, and webhooks through MCP tools.10026 npmMIT
- FlicenseNot gradedqualityDmaintenanceMCP server that exposes all 111 endpoints of the Tienda Nube API as tools for Cursor (or other MCP clients) to code directly with the API.15-