Skip to main content
POST
/
v1
/
integrations
/
{integrationId}
/
tools
Create Tool
curl --request POST \
  --url https://api.sigmamind.ai/v1/integrations/{integrationId}/tools \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: <api-key>' \
  --data '
{
  "name": "get_customer",
  "description": "Fetches a Shopify customer record by customer ID. Call this tool when you need to look up customer details such as name, email, or order history.",
  "method": "GET",
  "url": "https://my-store.myshopify.com/admin/api/2024-01/customers/{{customerId}}.json",
  "headers": [
    {
      "key": "Content-Type",
      "value": "application/json"
    }
  ],
  "queryParams": [
    {
      "key": "status",
      "value": "{{status}}"
    }
  ],
  "bodyParams": {
    "first_name": "{{firstName}}",
    "email": "{{email}}"
  }
}
'
{
  "toolId": "tool_X9pLm2Wq8Rt3",
  "integrationId": "intg_AuUKK371Spr5",
  "name": "get_order_details",
  "description": "Fetches order details from Shopify by order ID. Call this tool when you need to retrieve order status, line items, or shipping info.",
  "method": "GET",
  "url": "https://my-store.myshopify.com/admin/api/2024-01/orders/{{orderId}}.json",
  "scope": "local",
  "headers": {
    "customer_name": "Michael",
    "account_id": "ACC-001"
  },
  "queryParams": {
    "customer_name": "Michael",
    "account_id": "ACC-001"
  },
  "bodyParams": {
    "customer_name": "Michael",
    "account_id": "ACC-001"
  },
  "createdAt": "2024-04-20T10:00:00.000Z",
  "updatedAt": "2024-04-21T08:30:00.000Z"
}

Documentation Index

Fetch the complete documentation index at: https://docs.sigmamind.ai/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

X-API-Key
string
header
required

Authenticate every request by passing your API key in the X-API-Key header. To get your key, go to Dashboard → API Keys and create or copy your Production API key.

Path Parameters

integrationId
string
required

Unique identifier of the integration to create the tool under.

Body

application/json

Request body to create a new API tool under an integration. A tool represents a single callable API operation — for example 'get_customer' or 'create_order' — that an AI agent can invoke at runtime. Dynamic values are declared using {{variable}} placeholders in the URL, headers, query params, or body; the agent resolves these at invocation time.

name
string
required

Action-oriented, snake_case name that uniquely identifies this tool within the integration. AI agents use this name to select the correct tool when deciding which operation to invoke. Must be unique within the integration. Good examples: 'get_customer', 'create_order', 'cancel_subscription'.

Maximum string length: 128
Example:

"get_customer"

description
string
required

Explanation of what this tool does and the exact conditions under which an AI agent should invoke it. Agents rely on this description to match a task to the correct tool — be specific about the action, the resource it operates on, and any inputs the agent must supply.

Maximum string length: 1024
Example:

"Fetches a Shopify customer record by customer ID. Call this tool when you need to look up customer details such as name, email, or order history."

method
enum<string>
required

HTTP method used when invoking this tool's endpoint. GET retrieves a resource without side effects. POST creates a new resource. PUT fully replaces an existing resource. PATCH partially updates an existing resource. DELETE removes a resource.

Available options:
GET,
POST,
PUT,
PATCH,
DELETE
Example:

"GET"

url
string
required

Full URL of the API endpoint this tool calls. Supports {{variable}} placeholders for path segments the agent resolves at runtime (e.g., {{customerId}} in the path). Path variables embedded here do not need to be redeclared in queryParams.

Maximum string length: 1024
Example:

"https://my-store.myshopify.com/admin/api/2024-01/customers/{{customerId}}.json"

headers
object[]

Static HTTP headers sent on every request made by this tool. Merged with headers defined at the integration and auth levels; tool-level headers take precedence on key conflicts. Values may contain {{variable}} placeholders resolved by the agent at runtime. Leave empty if no tool-specific headers are needed.

Example:
[
{
"key": "Content-Type",
"value": "application/json"
}
]
queryParams
object[]

Query string parameters appended to the URL on every invocation (e.g., ?status=active&limit=10). Values support {{variable}} placeholders so the agent can supply them at runtime. Path variables already embedded in the URL using {{variable}} syntax do not need to be listed here.

Example:
[{ "key": "status", "value": "{{status}}" }]
bodyParams
object

Request body payload sent when this tool is invoked, as a JSON object. Values support {{variable}} placeholders that the agent resolves at runtime. Provide only for POST, PUT, and PATCH tools. Leave empty or omit for GET and DELETE — body content is ignored for those methods.

Example:
{
"first_name": "{{firstName}}",
"email": "{{email}}"
}

Response

Created

Represents a single callable API tool registered under an integration. Each tool maps to one specific API operation (e.g., 'Get Order', 'Create Customer') and carries its full invocation config: HTTP method, endpoint URL, headers, and parameters. AI agents use this response to understand what the tool does and how to invoke it.

toolId
string

Unique identifier for this tool. Use this value as toolId when executing, updating, or deleting this tool.

Example:

"tool_X9pLm2Wq8Rt3"

integrationId
string

Unique identifier of the integration this tool belongs to. Use this value as integrationId when making requests scoped to the parent integration.

Example:

"intg_AuUKK371Spr5"

name
string

Action-oriented name for this tool that identifies the operation it performs. AI agents use this name to match a task to the correct tool. Follows snake_case convention (e.g., 'get_customer', 'create_order').

Example:

"get_order_details"

description
string

Explanation of what this tool does and when an AI agent should invoke it. Agents rely on this description to decide whether this tool matches the current task. A good description names the action, the resource it operates on, and required inputs.

Example:

"Fetches order details from Shopify by order ID. Call this tool when you need to retrieve order status, line items, or shipping info."

method
enum<string>

HTTP method used when invoking this tool's endpoint. GET retrieves a resource without side effects. POST creates a new resource. PUT fully replaces an existing resource. PATCH partially updates an existing resource. DELETE removes a resource.

Available options:
GET,
POST,
PUT,
PATCH,
DELETE
Example:

"GET"

url
string

Full URL of the API endpoint this tool calls, including any {{variable}} placeholders that the agent resolves at runtime using the declared parameters. Path segments wrapped in {{}} (e.g., {{orderId}}) are substituted before the request is sent.

Example:

"https://my-store.myshopify.com/admin/api/2024-01/orders/{{orderId}}.json"

scope
enum<string>

Visibility scope of this tool. 'local' means the tool is private to your account and only accessible within your integrations. 'community' means the tool is shared and discoverable by other users.

Available options:
local,
community
Example:

"local"

headers
object

Dynamic key-value pairs that were passed to the agent at call start for personalisation. Keys correspond to variable names defined in the agent's configuration (e.g., 'customer_name', 'account_id'). Null or empty if no dynamic variables were provided when the call was created.

Example:
{
"customer_name": "Michael",
"account_id": "ACC-001"
}
queryParams
object

Dynamic key-value pairs that were passed to the agent at call start for personalisation. Keys correspond to variable names defined in the agent's configuration (e.g., 'customer_name', 'account_id'). Null or empty if no dynamic variables were provided when the call was created.

Example:
{
"customer_name": "Michael",
"account_id": "ACC-001"
}
bodyParams
object

Dynamic key-value pairs that were passed to the agent at call start for personalisation. Keys correspond to variable names defined in the agent's configuration (e.g., 'customer_name', 'account_id'). Null or empty if no dynamic variables were provided when the call was created.

Example:
{
"customer_name": "Michael",
"account_id": "ACC-001"
}
createdAt
string<date-time>

UTC timestamp when this tool was created, in ISO 8601 format. Use for auditing or determining how long the tool has been active.

Example:

"2024-04-20T10:00:00.000Z"

updatedAt
string<date-time>

UTC timestamp when this tool was last modified, in ISO 8601 format. Use to detect configuration changes or invalidate cached tool definitions.

Example:

"2024-04-21T08:30:00.000Z"