AppDirect Tools API
The Tools API from AppDirect — 24 operation(s) for tools.
The Tools API from AppDirect — 24 operation(s) for tools.
openapi: 3.0.0
info:
description: The Companies API allows developers to manage marketplace companies and their user memberships.
title: Companies AI Embed Tools API
license:
name: Apache License, Version 2.0
url: http://www.apache.org/licenses/LICENSE-2.0
version: v296.0-SNAPSHOT
servers:
- url: https://marketplace.appdirect.com/api
- url: https://virtserver.swaggerhub.com
tags:
- name: Tools
paths:
/api/v1/ai/{aiId}/tools:
get:
tags:
- Tools
summary: List tools for the AI
description: Retrieves all tools associated with the specified AI.
operationId: listAITools
parameters:
- name: aiId
in: path
required: true
description: The identifier of the AI.
schema:
type: string
responses:
'200':
description: List of tools for the AI.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Tool'
'403':
description: Forbidden, the user is not authorized to perform this action.
'404':
description: AI not found with the given identifier.
security:
- ApiKeyAuth: []
post:
tags:
- Tools
summary: Create a tool for the AI
description: Creates a new tool and associates it with the specified AI.
operationId: createAITool
parameters:
- name: aiId
in: path
required: true
description: The identifier of the AI.
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/CreateApiToolRequest'
- $ref: '#/components/schemas/CreateSQLToolRequest'
- $ref: '#/components/schemas/CreateUserInputToolRequest'
- $ref: '#/components/schemas/CreateKnowledgeRetrievalToolRequest'
- $ref: '#/components/schemas/CreateWebSearchToolRequest'
- $ref: '#/components/schemas/CreateImageGenerationToolRequest'
- $ref: '#/components/schemas/CreateSpreadsheetToolRequest'
- $ref: '#/components/schemas/CreateMcpServerToolRequest'
- type: object
properties:
type:
$ref: '#/components/schemas/ToolType'
required:
- type
responses:
'201':
description: Tool created.
content:
application/json:
schema:
$ref: '#/components/schemas/Tool'
'400':
description: Bad request
'403':
description: Forbidden, the user is not authorized to perform this action.
security:
- ApiKeyAuth: []
/api/v1/ai/{aiId}/tools/{toolId}:
get:
tags:
- Tools
summary: Get a tool for the AI
description: Retrieves details for a specific tool associated with the AI.
operationId: getAITool
parameters:
- name: aiId
in: path
required: true
description: The identifier of the AI.
schema:
type: string
- name: toolId
in: path
required: true
description: The identifier of the tool.
schema:
type: string
responses:
'200':
description: Tool details.
content:
application/json:
schema:
$ref: '#/components/schemas/Tool'
'403':
description: Forbidden, the user is not authorized to perform this action.
'404':
description: AI or tool not found.
security:
- ApiKeyAuth: []
put:
tags:
- Tools
summary: Update a tool for the AI
description: Updates supported tool types (e.g., spreadsheet, web search).
operationId: updateAITool
parameters:
- name: aiId
in: path
required: true
description: The identifier of the AI.
schema:
type: string
- name: toolId
in: path
required: true
description: The identifier of the tool.
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/UpdateSpreadsheetToolRequest'
- $ref: '#/components/schemas/UpdateWebSearchToolRequest'
responses:
'200':
description: Tool updated.
content:
application/json:
schema:
$ref: '#/components/schemas/Tool'
'400':
description: Bad request
'403':
description: Forbidden, the user is not authorized to perform this action.
security:
- ApiKeyAuth: []
delete:
tags:
- Tools
summary: Delete a tool
description: Deletes the specified tool from the AI.
operationId: deleteAITool
parameters:
- name: aiId
in: path
required: true
description: The identifier of the AI.
schema:
type: string
- name: toolId
in: path
required: true
description: The identifier of the tool.
schema:
type: string
responses:
'204':
description: Tool deleted.
'403':
description: Forbidden, the user is not authorized to perform this action.
security:
- ApiKeyAuth: []
/api/v1/ai/{aiId}/tools/api-function:
get:
tags:
- Tools
summary: List API function tools for the AI
description: Retrieves API function tools associated with the AI.
operationId: listApiFunctionTools
parameters:
- name: aiId
in: path
required: true
description: The identifier of the AI.
schema:
type: string
responses:
'200':
description: List of API function tools.
content:
application/json:
schema:
$ref: '#/components/schemas/ToolListResponse'
'404':
description: AI not found.
security:
- ApiKeyAuth: []
post:
tags:
- Tools
summary: Create an API function tool
description: Creates an API function tool and associates it with the AI.
operationId: createApiFunctionTool
parameters:
- name: aiId
in: path
required: true
description: The identifier of the AI.
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateApiToolRequest'
responses:
'201':
description: Tool created.
content:
application/json:
schema:
$ref: '#/components/schemas/Tool'
security:
- ApiKeyAuth: []
/api/v1/ai/{aiId}/tools/{toolId}/api-function:
put:
tags:
- Tools
summary: Update an API function tool
description: Updates an API function tool associated with the AI.
operationId: updateApiFunctionTool
parameters:
- name: aiId
in: path
required: true
description: The identifier of the AI.
schema:
type: string
- name: toolId
in: path
required: true
description: The identifier of the tool.
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateApiToolRequest'
responses:
'200':
description: Tool updated.
content:
application/json:
schema:
$ref: '#/components/schemas/Tool'
security:
- ApiKeyAuth: []
/api/v1/ai/{aiId}/tools/sql:
post:
tags:
- Tools
summary: Create a SQL tool
description: Creates a SQL tool and associates it with the AI.
operationId: createSqlTool
parameters:
- name: aiId
in: path
required: true
description: The identifier of the AI.
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateSQLToolRequest'
responses:
'201':
description: Tool created.
content:
application/json:
schema:
$ref: '#/components/schemas/Tool'
security:
- ApiKeyAuth: []
/api/v1/ai/{aiId}/tools/python:
get:
tags:
- Tools
summary: List Python tools for the AI
description: Retrieves Python tools associated with the AI.
operationId: listPythonTools
parameters:
- name: aiId
in: path
required: true
description: The identifier of the AI.
schema:
type: string
responses:
'200':
description: List of Python tools.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Tool'
security:
- ApiKeyAuth: []
post:
tags:
- Tools
summary: Create a Python tool
description: Creates a Python tool and associates it with the AI.
operationId: createPythonTool
parameters:
- name: aiId
in: path
required: true
description: The identifier of the AI.
schema:
type: string
responses:
'201':
description: Tool created.
content:
application/json:
schema:
$ref: '#/components/schemas/Tool'
security:
- ApiKeyAuth: []
/api/v1/ai/{aiId}/tools/user-input:
get:
tags:
- Tools
summary: List user input tools for the AI
description: Retrieves user input tools associated with the AI.
operationId: listUserInputTools
parameters:
- name: aiId
in: path
required: true
description: The identifier of the AI.
schema:
type: string
responses:
'200':
description: List of user input tools.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Tool'
security:
- ApiKeyAuth: []
post:
tags:
- Tools
summary: Create a user input tool
description: Creates a user input tool and associates it with the AI.
operationId: createUserInputTool
parameters:
- name: aiId
in: path
required: true
description: The identifier of the AI.
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateUserInputToolRequest'
responses:
'201':
description: Tool created.
content:
application/json:
schema:
$ref: '#/components/schemas/Tool'
security:
- ApiKeyAuth: []
/api/v1/ai/{aiId}/tools/knowledge-retrieval:
get:
tags:
- Tools
summary: List knowledge retrieval tools for the AI
description: Retrieves knowledge retrieval tools associated with the AI.
operationId: listKnowledgeRetrievalTools
parameters:
- name: aiId
in: path
required: true
description: The identifier of the AI.
schema:
type: string
responses:
'200':
description: List of knowledge retrieval tools.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Tool'
security:
- ApiKeyAuth: []
post:
tags:
- Tools
summary: Create a knowledge retrieval tool
description: Creates a knowledge retrieval tool and associates it with the AI.
operationId: createKnowledgeRetrievalTool
parameters:
- name: aiId
in: path
required: true
description: The identifier of the AI.
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateKnowledgeRetrievalToolRequest'
responses:
'201':
description: Tool created.
content:
application/json:
schema:
$ref: '#/components/schemas/Tool'
security:
- ApiKeyAuth: []
/api/v1/ai/{aiId}/tools/image-generation:
get:
tags:
- Tools
summary: List image generation tools for the AI
description: Retrieves image generation tools associated with the AI.
operationId: listImageGenerationTools
parameters:
- name: aiId
in: path
required: true
description: The identifier of the AI.
schema:
type: string
responses:
'200':
description: List of image generation tools.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Tool'
security:
- ApiKeyAuth: []
post:
tags:
- Tools
summary: Create an image generation tool
description: Creates an image generation tool and associates it with the AI.
operationId: createImageGenerationTool
parameters:
- name: aiId
in: path
required: true
description: The identifier of the AI.
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateImageGenerationToolRequest'
responses:
'201':
description: Tool created.
content:
application/json:
schema:
$ref: '#/components/schemas/Tool'
security:
- ApiKeyAuth: []
/api/v1/ai/{aiId}/tools/mcp:
get:
tags:
- Tools
summary: List MCP server tools for the AI
description: Retrieves MCP server tools associated with the AI.
operationId: listMcpServerTools
parameters:
- name: aiId
in: path
required: true
description: The identifier of the AI.
schema:
type: string
responses:
'200':
description: List of MCP server tools.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Tool'
security:
- ApiKeyAuth: []
post:
tags:
- Tools
summary: Create an MCP server tool
description: Creates an MCP server tool and associates it with the AI.
operationId: createMcpServerTool
parameters:
- name: aiId
in: path
required: true
description: The identifier of the AI.
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateMcpServerToolRequest'
responses:
'201':
description: Tool created.
content:
application/json:
schema:
$ref: '#/components/schemas/Tool'
security:
- ApiKeyAuth: []
/api/v1/ai/{aiId}/tools/auth:
get:
tags:
- Tools
summary: List tool OAuth status for the AI
description: Lists OAuth token status information for tools associated with the AI.
operationId: listAIToolAuthStatus
parameters:
- name: aiId
in: path
required: true
description: The identifier of the AI.
schema:
type: string
responses:
'200':
description: Tool OAuth status list.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ToolAuthInfo'
security:
- ApiKeyAuth: []
/api/v1/ai/{aiId}/tools/auth/reset:
put:
tags:
- Tools
summary: Reset tool OAuth tokens for the AI
description: Deletes tool OAuth tokens for the AI.
operationId: resetAIToolAuth
parameters:
- name: aiId
in: path
required: true
description: The identifier of the AI.
schema:
type: string
responses:
'200':
description: OAuth tokens deleted.
content:
application/json:
schema:
type: string
security:
- ApiKeyAuth: []
/api/v1/tools/{toolId}:
get:
tags:
- Tools
summary: Get a tool
description: Retrieves a tool by ID.
operationId: getTool
parameters:
- name: toolId
in: path
required: true
description: The identifier of the tool.
schema:
type: string
responses:
'200':
description: Tool details.
content:
application/json:
schema:
$ref: '#/components/schemas/Tool'
'403':
description: Forbidden, the user is not authorized to perform this action.
'404':
description: Tool not found.
security:
- ApiKeyAuth: []
delete:
tags:
- Tools
summary: Delete a tool
description: Deletes the specified tool.
operationId: deleteTool
parameters:
- name: toolId
in: path
required: true
description: The identifier of the tool.
schema:
type: string
responses:
'204':
description: Tool deleted.
'403':
description: Forbidden, the user is not authorized to perform this action.
security:
- ApiKeyAuth: []
/api/v1/tools/{toolId}/sql:
put:
tags:
- Tools
summary: Update a SQL tool
description: Updates the SQL tool configuration.
operationId: updateSqlTool
parameters:
- name: toolId
in: path
required: true
description: The identifier of the tool.
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateSQLToolRequest'
responses:
'200':
description: Tool updated.
content:
application/json:
schema:
$ref: '#/components/schemas/Tool'
security:
- ApiKeyAuth: []
/api/v1/tools/{toolId}/user-input:
put:
tags:
- Tools
summary: Update a user input tool
description: Updates the user input tool configuration.
operationId: updateUserInputTool
parameters:
- name: toolId
in: path
required: true
description: The identifier of the tool.
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateUserInputToolRequest'
responses:
'200':
description: Tool updated.
content:
application/json:
schema:
$ref: '#/components/schemas/Tool'
security:
- ApiKeyAuth: []
/api/v1/tools/{toolId}/knowledge-retrieval:
put:
tags:
- Tools
summary: Update a knowledge retrieval tool
description: Updates the knowledge retrieval tool configuration.
operationId: updateKnowledgeRetrievalTool
parameters:
- name: toolId
in: path
required: true
description: The identifier of the tool.
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateKnowledgeRetrievalToolRequest'
responses:
'200':
description: Tool updated.
content:
application/json:
schema:
$ref: '#/components/schemas/Tool'
security:
- ApiKeyAuth: []
/api/v1/tools/{toolId}/image-generation:
put:
tags:
- Tools
summary: Update an image generation tool
description: Updates the image generation tool configuration.
operationId: updateImageGenerationTool
parameters:
- name: toolId
in: path
required: true
description: The identifier of the tool.
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateImageGenerationToolRequest'
responses:
'200':
description: Tool updated.
content:
application/json:
schema:
$ref: '#/components/schemas/Tool'
security:
- ApiKeyAuth: []
/api/v1/tools/{toolId}/mcp:
put:
tags:
- Tools
summary: Update an MCP server tool
description: Updates the MCP server tool configuration.
operationId: updateMcpServerTool
parameters:
- name: toolId
in: path
required: true
description: The identifier of the tool.
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateMcpServerToolRequest'
responses:
'200':
description: Tool updated.
content:
application/json:
schema:
$ref: '#/components/schemas/Tool'
security:
- ApiKeyAuth: []
/api/v1/tools/{toolId}/api-function:
put:
tags:
- Tools
summary: Update an API function tool
description: Updates the API function tool configuration.
operationId: updateApiFunctionToolGlobal
parameters:
- name: toolId
in: path
required: true
description: The identifier of the tool.
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateApiToolRequest'
responses:
'200':
description: Tool updated.
content:
application/json:
schema:
$ref: '#/components/schemas/Tool'
security:
- ApiKeyAuth: []
/api/v1/tools/{toolId}/api-function/callback:
get:
tags:
- Tools
summary: API function tool OAuth callback
description: Handles OAuth callbacks for API function tools.
operationId: apiFunctionToolCallback
parameters:
- name: toolId
in: path
required: true
description: The identifier of the tool.
schema:
type: string
- name: code
in: query
required: true
description: Authorization code.
schema:
type: string
responses:
'200':
description: Callback handled.
content:
application/json:
schema:
type: string
security:
- ApiKeyAuth: []
/api/v1/tools/{toolId}/oauth-status:
get:
tags:
- Tools
summary: Get tool OAuth status
description: Checks whether a tool has an active OAuth token.
operationId: getToolOAuthStatus
parameters:
- name: toolId
in: path
required: true
description: The identifier of the tool.
schema:
type: string
responses:
'200':
description: OAuth status for the tool.
content:
application/json:
schema:
$ref: '#/components/schemas/ToolOAuthStatus'
security:
- ApiKeyAuth: []
/api/v1/tools/{toolId}/oauth-token:
delete:
tags:
- Tools
summary: Delete a tool OAuth token
description: Revokes the OAuth token for the specified tool.
operationId: deleteToolOAuthToken
parameters:
- name: toolId
in: path
required: true
description: The identifier of the tool.
schema:
type: string
responses:
'204':
description: Token deleted.
security:
- ApiKeyAuth: []
/api/v1/tools/{toolId}/oauth-initiate:
post:
tags:
- Tools
summary: Initiate tool OAuth flow
description: Generates an authorization URL for tool OAuth.
operationId: initiateToolOAuth
parameters:
- name: toolId
in: path
required: true
description: The identifier of the tool.
schema:
type: string
responses:
'200':
description: Authorization URL generated.
content:
application/json:
schema:
$ref: '#/components/schemas/OAuthInitiateResponse'
security:
- ApiKeyAuth: []
/api/v1/tools/mcp/preview:
post:
tags:
- Tools
summary: Preview MCP server tools
description: Previews available tools from an MCP server or template.
operationId: previewMcpServerTools
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PreviewMcpServerToolRequest'
responses:
'200':
description: Preview results.
content:
application/json:
schema:
$ref: '#/components/schemas/PreviewMcpServerToolResponse'
security:
- ApiKeyAuth: []
components:
schemas:
UpdateKnowledgeRetrievalToolRequest:
allOf:
- $ref: '#/components/schemas/CreateKnowledgeRetrievalToolRequest'
PreviewMcpServerToolRequest:
type: object
properties:
url:
type: string
orgToolTemplateId:
type: string
toolTemplateId:
type: string
toolId:
type: string
authenticationType:
$ref: '#/components/schemas/AuthenticationType'
authenticationData:
oneOf:
- $ref: '#/components/schemas/ApiKeyAuthenticationData'
- $ref: '#/components/schemas/OAuthAuthenticationData'
ToolListResponse:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Tool'
CreateMcpServerToolRequest:
type: object
properties:
type:
type: string
enum:
- MCP_SERVER
name:
type: string
url:
type: string
orgToolTemplateId:
type: string
authenticationType:
$ref: '#/components/schemas/AuthenticationType'
authenticationData:
oneOf:
- $ref: '#/components/schemas/ApiKeyAuthenticationData'
- $ref: '#/components/schemas/OAuthAuthenticationData'
allTools:
type: array
items:
$ref: '#/components/schemas/MCPTool'
selectedTools:
type: array
items:
type: string
required:
- type
- name
PreviewMcpServerToolResponse:
type: object
properties:
availableTools:
type: array
items:
$ref: '#/components/schemas/MCPTool'
authenticationRequired:
type: boolean
oauthDiscovery:
type: object
requiresToolSave:
type: boolean
ApiCompressionConfiguration:
type: object
properties:
compressionModel:
type: string
compressionThreshold:
type: integer
compressionChunkSize:
type: integer
UpdateApiToolRequest:
allOf:
- $ref: '#/components/schemas/CreateApiToolRequest'
CreateKnowledgeRetrievalToolRequest:
type: object
properties:
model:
type: string
maxRetrievalTokens:
type: integer
maxRetrievalDocuments:
type: integer
queryExpansion:
type: boolean
alternateQueryCount:
type: integer
hyde:
type: boolean
rerank:
type: boolean
grade:
type: boolean
compress:
type: boolean
minRelevanceScore:
type: number
required:
- model
- maxRetrievalTokens
- maxRetrievalDocuments
- queryExpansion
- alternateQueryCount
- hyde
- rerank
- grade
- compress
- minRelevanceScore
CustomHeader:
type: object
properties:
header:
type: string
value:
type: string
required:
- header
- value
CreateSQLToolRequest:
type: object
properties:
type:
type: string
enum:
- SQL
databaseType:
$ref: '#/components/schemas/SQLToolDatabaseType'
username:
type: string
password:
type: string
host:
type: string
database:
type: string
port:
type: integer
required:
- type
- databaseType
- username
- password
- host
- database
- port
CreateUserInputToolRequest:
type: object
properties:
type:
type: string
enum:
- USER_INPUT
textInput:
type: boolean
selectInput:
type: boolean
multiSelectInput:
type: boolean
confirmInput:
type: boolean
addressInput:
type: boolean
required:
- type
- textInput
- selectInput
- multiSelectInput
- confirmInput
- addressInput
ApiKeyAuthType:
type: string
enum:
- BASIC
- BEARER
- CUSTOM
Tool:
type: object
properties:
id:
type: string
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
orgId:
type: string
userId:
type: string
name:
type: string
type:
$ref: '#/components/schemas/ToolType'
data:
type: object
orgTemplateUuid:
type: string
orgTemplateConfig:
type: object
templateConfig:
type: object
ApiKeyAuthenticationData:
type: object
properties:
apiKey:
type: string
apiKeyAuthType:
$ref: '#/components/schemas/ApiKeyAuthType'
customHeader:
type: array
items:
$ref: '#/components/schemas/CustomHeader'
AuthenticationType:
type: string
enum:
- NONE
- API_KEY
- OAUTH
ToolType:
type: string
enum:
- API_FUNCTION
- SQL
- PYTHON
- USER_INPUT
- KNOWLEDGE_RETRIEVAL
- WEB_SEARCH
- MCP_SERVER
- IMAGE_GENERATION
- USER_CONTEXT
- SPREADSHEET
- BROWSER
- SANDBOX
- OPENAI_FUNCTION
CreateImageGenerationToolRequest:
type: object
properties:
modelId:
type: string
samples:
type: integer
size:
type: string
aspectRatio:
type: string
quality:
type: string
style:
type: string
required:
- modelId
CreateApiToolRequest:
type: object
properties:
apiUrl:
type: string
schema:
type: string
authenticationType:
$ref: '#/components/schemas/AuthenticationType'
authenticationData:
oneOf:
- $ref: '#/components/schemas/ApiKeyAuthenticationData'
- $ref: '#/compon
# --- truncated at 32 KB (36 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/appdirect/refs/heads/main/openapi/appdirect-tools-api-openapi.yml