Integration reference

API & MCP

Connect support agents to the same live customer, inventory, conversation, and order data shown in this console.

Access

No authentication is required. Every REST and MCP endpoint below is open to the public, and no headers or tokens need to be sent.

MCP server

Streamable HTTP
POST https://traeger.decagon.tools/api/public/mcp

Protocol: JSON-RPC 2.0. Supported methods include initialize, ping, tools/list, and tools/call.

lookup_accountaccount_phoneFind an account, its primary grill, warranty_active and address.
check_warrantywarranty_grill_serial or warranty_phoneReturn grill_model, grill_serial, purchase_date, warranty status, end date and coverage. By phone, prefers the grill with an active error.
check_part_availabilityparts_grill_model, parts_error_codeFind compatible parts that resolve an error.
order_replacement_partorder_customer_id or order_phone, order_part_sku, order_idempotency_key?Create an order. Free (card not charged) when a compatible grill is under warranty; otherwise price + 8% tax. Returns list_price, warranty_covered, amount_charged, card_brand, card_last4, status.

Use a stable idempotency_key when retrying an order. It prevents duplicate charges and duplicate orders. If no key is sent, the x-decagon-conversation-id request header is used as {conversation_id}:{part_sku}.

Matching is forgiving: phone numbers match on the last 10 digits in any format; models and error codes ignore case and punctuation (PRO 575, Traeger Pro 575 → Pro 575; ER-13, Error 0013, 13 → Er13).

REST API

GET
/api/public/v1/customer?phone=...Customer and registered grills
GET
/api/public/v1/conversations?customer_id=...Conversation history
GET
/api/public/v1/parts?model=...&error_code=...Filtered parts inventory
GET
/api/public/v1/orders?customer_id=...Customer order history
POST
/api/public/v1/ordersCreate a replacement-part order

Create order body

{
  "customer_id": "cus_1001",
  "phone": "optional, instead of customer_id",
  "part_sku": "KIT0171",
  "idempotency_key": "optional-retry-key"
}

Error contract

Failures return compact codes without stack traces. Expected codes include account_not_found, grill_not_found, part_lookup_failed, part_not_found, out_of_stock, payment_failed, and invalid_request.