{"openapi":"3.1.0","info":{"title":"ERPNext Stock Catalog (BYOK) API","version":"0.1.0","description":"ERPNext Stock Catalog (BYOK) lets an AI assistant read your own ERPNext Stock Catalog data through the ERPNext Stock Catalog API with a key you supply (API key and API secret joined by a colon, as api_key:api_secret). Read-only: 10 tools (list_items, list_item_groups, list_price_lists, list_item_prices, list_units_of_measure, list_warehouses, list_brands, list_customer_groups,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-erpnext-stock-catalog.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-erpnext-stock-catalog/docs"},"termsOfService":"https://connectorbay.com/byok-erpnext-stock-catalog/terms"},"servers":[{"url":"https://byok-erpnext-stock-catalog.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-erpnext-stock-catalog/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_items":{"post":{"operationId":"list_items","summary":"List items (DocType Item) with code, name, item group, stock unit, brand, stock, sales and purchase flags, standard rate","description":"List items (DocType Item) with code, name, item group, stock unit, brand, stock, sales and purchase flags, standard rate, valuation rate and disabled flag. Use for \"Which items are in my ERPNext catalog\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"site":{"description":"Your Frappe Cloud site name: the part before .frappe.cloud, for example 'mycompany' for mycompany.frappe.cloud.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Site","type":"string"},"fields":{"anyOf":[{"maxLength":600,"type":"string"},{"type":"null"}],"default":"[\"name\", \"item_code\", \"item_name\", \"item_group\", \"stock_uom\", \"brand\", \"is_stock_item\", \"is_sales_item\", \"is_purchase_item\", \"standard_rate\", \"valuation_rate\", \"has_variants\", \"variant_of\", \"disabled\"]","description":"JSON array of field names to return. Default [\"name\", \"item_code\", \"item_name\", \"item_group\", \"stock_uom\", \"brand\", \"is_stock_item\", \"is_sales_item\", \"is_purchase_item\", \"standard_rate\", \"valuation_rate\", \"has_variants\", \"variant_of\", \"disabled\"]. Only name is returned when omitted.","title":"Fields"},"filters":{"anyOf":[{"maxLength":800,"type":"string"},{"type":"null"}],"default":null,"description":"JSON array of [field, operator, value] filters joined with AND, for example [[\"disabled\",\"=\",0]].","title":"Filters"},"order_by":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":"modified desc","description":"Sort as 'fieldname asc' or 'fieldname desc', for example 'modified desc'.","title":"Order By"},"limit_start":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many records to skip, for paging.","title":"Limit Start"},"limit_page_length":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many records to return (1 to 200; the site default is 20).","title":"Limit Page Length"}},"required":["site"],"title":"list_itemsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_item_groups":{"post":{"operationId":"list_item_groups","summary":"List item groups (DocType Item Group) with name, parent group and group flag. Use for \"How are my ERPNext items grouped\"","description":"List item groups (DocType Item Group) with name, parent group and group flag. Use for \"How are my ERPNext items grouped\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"site":{"description":"Your Frappe Cloud site name: the part before .frappe.cloud, for example 'mycompany' for mycompany.frappe.cloud.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Site","type":"string"},"fields":{"anyOf":[{"maxLength":600,"type":"string"},{"type":"null"}],"default":"[\"name\", \"item_group_name\", \"parent_item_group\", \"is_group\"]","description":"JSON array of field names to return. Default [\"name\", \"item_group_name\", \"parent_item_group\", \"is_group\"]. Only name is returned when omitted.","title":"Fields"},"filters":{"anyOf":[{"maxLength":800,"type":"string"},{"type":"null"}],"default":null,"description":"JSON array of [field, operator, value] filters joined with AND, for example [[\"disabled\",\"=\",0]].","title":"Filters"},"order_by":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":"lft asc","description":"Sort as 'fieldname asc' or 'fieldname desc', for example 'lft asc'.","title":"Order By"},"limit_start":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many records to skip, for paging.","title":"Limit Start"},"limit_page_length":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many records to return (1 to 200; the site default is 20).","title":"Limit Page Length"}},"required":["site"],"title":"list_item_groupsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_price_lists":{"post":{"operationId":"list_price_lists","summary":"List price lists (DocType Price List) with name, currency, buying and selling flags and enabled flag. Use for \"What pric","description":"List price lists (DocType Price List) with name, currency, buying and selling flags and enabled flag. Use for \"What price lists exist in ERPNext\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"site":{"description":"Your Frappe Cloud site name: the part before .frappe.cloud, for example 'mycompany' for mycompany.frappe.cloud.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Site","type":"string"},"fields":{"anyOf":[{"maxLength":600,"type":"string"},{"type":"null"}],"default":"[\"name\", \"price_list_name\", \"currency\", \"buying\", \"selling\", \"enabled\"]","description":"JSON array of field names to return. Default [\"name\", \"price_list_name\", \"currency\", \"buying\", \"selling\", \"enabled\"]. Only name is returned when omitted.","title":"Fields"},"filters":{"anyOf":[{"maxLength":800,"type":"string"},{"type":"null"}],"default":null,"description":"JSON array of [field, operator, value] filters joined with AND, for example [[\"disabled\",\"=\",0]].","title":"Filters"},"order_by":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":"name asc","description":"Sort as 'fieldname asc' or 'fieldname desc', for example 'name asc'.","title":"Order By"},"limit_start":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many records to skip, for paging.","title":"Limit Start"},"limit_page_length":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many records to return (1 to 200; the site default is 20).","title":"Limit Page Length"}},"required":["site"],"title":"list_price_listsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_item_prices":{"post":{"operationId":"list_item_prices","summary":"List item prices (DocType Item Price) with item code and name, price list, currency, rate, unit, validity dates and buyi","description":"List item prices (DocType Item Price) with item code and name, price list, currency, rate, unit, validity dates and buying and selling flags. Use for \"What is the price of each item in the Standard Selling list in ERPNext\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"site":{"description":"Your Frappe Cloud site name: the part before .frappe.cloud, for example 'mycompany' for mycompany.frappe.cloud.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Site","type":"string"},"fields":{"anyOf":[{"maxLength":600,"type":"string"},{"type":"null"}],"default":"[\"name\", \"item_code\", \"item_name\", \"price_list\", \"currency\", \"price_list_rate\", \"uom\", \"valid_from\", \"valid_upto\", \"buying\", \"selling\"]","description":"JSON array of field names to return. Default [\"name\", \"item_code\", \"item_name\", \"price_list\", \"currency\", \"price_list_rate\", \"uom\", \"valid_from\", \"valid_upto\", \"buying\", \"selling\"]. Only name is returned when omitted.","title":"Fields"},"filters":{"anyOf":[{"maxLength":800,"type":"string"},{"type":"null"}],"default":null,"description":"JSON array of [field, operator, value] filters joined with AND, for example [[\"disabled\",\"=\",0]].","title":"Filters"},"order_by":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":"modified desc","description":"Sort as 'fieldname asc' or 'fieldname desc', for example 'modified desc'.","title":"Order By"},"limit_start":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many records to skip, for paging.","title":"Limit Start"},"limit_page_length":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many records to return (1 to 200; the site default is 20).","title":"Limit Page Length"}},"required":["site"],"title":"list_item_pricesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_units_of_measure":{"post":{"operationId":"list_units_of_measure","summary":"List units of measure (DocType UOM) with name, symbol, whole-number rule and enabled flag. Use for \"Which units of measu","description":"List units of measure (DocType UOM) with name, symbol, whole-number rule and enabled flag. Use for \"Which units of measure are enabled in ERPNext\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"site":{"description":"Your Frappe Cloud site name: the part before .frappe.cloud, for example 'mycompany' for mycompany.frappe.cloud.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Site","type":"string"},"fields":{"anyOf":[{"maxLength":600,"type":"string"},{"type":"null"}],"default":"[\"name\", \"uom_name\", \"symbol\", \"must_be_whole_number\", \"enabled\"]","description":"JSON array of field names to return. Default [\"name\", \"uom_name\", \"symbol\", \"must_be_whole_number\", \"enabled\"]. Only name is returned when omitted.","title":"Fields"},"filters":{"anyOf":[{"maxLength":800,"type":"string"},{"type":"null"}],"default":null,"description":"JSON array of [field, operator, value] filters joined with AND, for example [[\"disabled\",\"=\",0]].","title":"Filters"},"order_by":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":"name asc","description":"Sort as 'fieldname asc' or 'fieldname desc', for example 'name asc'.","title":"Order By"},"limit_start":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many records to skip, for paging.","title":"Limit Start"},"limit_page_length":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many records to return (1 to 200; the site default is 20).","title":"Limit Page Length"}},"required":["site"],"title":"list_units_of_measureArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_warehouses":{"post":{"operationId":"list_warehouses","summary":"List warehouses (DocType Warehouse) with name, company, parent warehouse, warehouse type, city and group and disabled fl","description":"List warehouses (DocType Warehouse) with name, company, parent warehouse, warehouse type, city and group and disabled flags. Contact phone and email are not requested. Use for \"What warehouses does my ERPNext have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"site":{"description":"Your Frappe Cloud site name: the part before .frappe.cloud, for example 'mycompany' for mycompany.frappe.cloud.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Site","type":"string"},"fields":{"anyOf":[{"maxLength":600,"type":"string"},{"type":"null"}],"default":"[\"name\", \"warehouse_name\", \"company\", \"parent_warehouse\", \"warehouse_type\", \"city\", \"is_group\", \"disabled\"]","description":"JSON array of field names to return. Default [\"name\", \"warehouse_name\", \"company\", \"parent_warehouse\", \"warehouse_type\", \"city\", \"is_group\", \"disabled\"]. Only name is returned when omitted.","title":"Fields"},"filters":{"anyOf":[{"maxLength":800,"type":"string"},{"type":"null"}],"default":null,"description":"JSON array of [field, operator, value] filters joined with AND, for example [[\"disabled\",\"=\",0]].","title":"Filters"},"order_by":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":"lft asc","description":"Sort as 'fieldname asc' or 'fieldname desc', for example 'lft asc'.","title":"Order By"},"limit_start":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many records to skip, for paging.","title":"Limit Start"},"limit_page_length":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many records to return (1 to 200; the site default is 20).","title":"Limit Page Length"}},"required":["site"],"title":"list_warehousesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_brands":{"post":{"operationId":"list_brands","summary":"List brands (DocType Brand) with name and description. Use for \"Which brands are defined in ERPNext\".","description":"List brands (DocType Brand) with name and description. Use for \"Which brands are defined in ERPNext\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"site":{"description":"Your Frappe Cloud site name: the part before .frappe.cloud, for example 'mycompany' for mycompany.frappe.cloud.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Site","type":"string"},"fields":{"anyOf":[{"maxLength":600,"type":"string"},{"type":"null"}],"default":"[\"name\", \"brand\", \"description\"]","description":"JSON array of field names to return. Default [\"name\", \"brand\", \"description\"]. Only name is returned when omitted.","title":"Fields"},"filters":{"anyOf":[{"maxLength":800,"type":"string"},{"type":"null"}],"default":null,"description":"JSON array of [field, operator, value] filters joined with AND, for example [[\"disabled\",\"=\",0]].","title":"Filters"},"order_by":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":"name asc","description":"Sort as 'fieldname asc' or 'fieldname desc', for example 'name asc'.","title":"Order By"},"limit_start":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many records to skip, for paging.","title":"Limit Start"},"limit_page_length":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many records to return (1 to 200; the site default is 20).","title":"Limit Page Length"}},"required":["site"],"title":"list_brandsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_customer_groups":{"post":{"operationId":"list_customer_groups","summary":"List customer groups (DocType Customer Group) with name, parent, default price list, payment terms and group flag. Indiv","description":"List customer groups (DocType Customer Group) with name, parent, default price list, payment terms and group flag. Individual customers are not listed. Use for \"What customer groups does ERPNext have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"site":{"description":"Your Frappe Cloud site name: the part before .frappe.cloud, for example 'mycompany' for mycompany.frappe.cloud.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Site","type":"string"},"fields":{"anyOf":[{"maxLength":600,"type":"string"},{"type":"null"}],"default":"[\"name\", \"customer_group_name\", \"parent_customer_group\", \"default_price_list\", \"payment_terms\", \"is_group\"]","description":"JSON array of field names to return. Default [\"name\", \"customer_group_name\", \"parent_customer_group\", \"default_price_list\", \"payment_terms\", \"is_group\"]. Only name is returned when omitted.","title":"Fields"},"filters":{"anyOf":[{"maxLength":800,"type":"string"},{"type":"null"}],"default":null,"description":"JSON array of [field, operator, value] filters joined with AND, for example [[\"disabled\",\"=\",0]].","title":"Filters"},"order_by":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":"lft asc","description":"Sort as 'fieldname asc' or 'fieldname desc', for example 'lft asc'.","title":"Order By"},"limit_start":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many records to skip, for paging.","title":"Limit Start"},"limit_page_length":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many records to return (1 to 200; the site default is 20).","title":"Limit Page Length"}},"required":["site"],"title":"list_customer_groupsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_supplier_groups":{"post":{"operationId":"list_supplier_groups","summary":"List supplier groups (DocType Supplier Group) with name, parent, payment terms and group flag. Individual suppliers are ","description":"List supplier groups (DocType Supplier Group) with name, parent, payment terms and group flag. Individual suppliers are not listed. Use for \"What supplier groups exist in ERPNext\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"site":{"description":"Your Frappe Cloud site name: the part before .frappe.cloud, for example 'mycompany' for mycompany.frappe.cloud.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Site","type":"string"},"fields":{"anyOf":[{"maxLength":600,"type":"string"},{"type":"null"}],"default":"[\"name\", \"supplier_group_name\", \"parent_supplier_group\", \"payment_terms\", \"is_group\"]","description":"JSON array of field names to return. Default [\"name\", \"supplier_group_name\", \"parent_supplier_group\", \"payment_terms\", \"is_group\"]. Only name is returned when omitted.","title":"Fields"},"filters":{"anyOf":[{"maxLength":800,"type":"string"},{"type":"null"}],"default":null,"description":"JSON array of [field, operator, value] filters joined with AND, for example [[\"disabled\",\"=\",0]].","title":"Filters"},"order_by":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":"lft asc","description":"Sort as 'fieldname asc' or 'fieldname desc', for example 'lft asc'.","title":"Order By"},"limit_start":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many records to skip, for paging.","title":"Limit Start"},"limit_page_length":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many records to return (1 to 200; the site default is 20).","title":"Limit Page Length"}},"required":["site"],"title":"list_supplier_groupsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_territories":{"post":{"operationId":"list_territories","summary":"List sales territories (DocType Territory) with name, parent and group flag. Use for \"Which sales territories are define","description":"List sales territories (DocType Territory) with name, parent and group flag. Use for \"Which sales territories are defined in ERPNext\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"site":{"description":"Your Frappe Cloud site name: the part before .frappe.cloud, for example 'mycompany' for mycompany.frappe.cloud.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Site","type":"string"},"fields":{"anyOf":[{"maxLength":600,"type":"string"},{"type":"null"}],"default":"[\"name\", \"territory_name\", \"parent_territory\", \"is_group\"]","description":"JSON array of field names to return. Default [\"name\", \"territory_name\", \"parent_territory\", \"is_group\"]. Only name is returned when omitted.","title":"Fields"},"filters":{"anyOf":[{"maxLength":800,"type":"string"},{"type":"null"}],"default":null,"description":"JSON array of [field, operator, value] filters joined with AND, for example [[\"disabled\",\"=\",0]].","title":"Filters"},"order_by":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":"lft asc","description":"Sort as 'fieldname asc' or 'fieldname desc', for example 'lft asc'.","title":"Order By"},"limit_start":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many records to skip, for paging.","title":"Limit Start"},"limit_page_length":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many records to return (1 to 200; the site default is 20).","title":"Limit Page Length"}},"required":["site"],"title":"list_territoriesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}