curl --request POST \
--url https://api.open.cx/actions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"api_endpoint": "<string>",
"payload": {
"base_url": "<string>",
"path": "<string>",
"method": "<string>",
"operationId": "<string>",
"summary": "<string>",
"description": "<string>",
"parameters": [
{
"name": "<string>",
"description": "<string>",
"required": true,
"schema": {}
}
],
"responses": {}
},
"description": "<string>",
"operation_id": "<string>",
"pinned": true,
"tags": [
"<string>"
],
"require_form_submission": true
}
'import requests
url = "https://api.open.cx/actions"
payload = {
"name": "<string>",
"api_endpoint": "<string>",
"payload": {
"base_url": "<string>",
"path": "<string>",
"method": "<string>",
"operationId": "<string>",
"summary": "<string>",
"description": "<string>",
"parameters": [
{
"name": "<string>",
"description": "<string>",
"required": True,
"schema": {}
}
],
"responses": {}
},
"description": "<string>",
"operation_id": "<string>",
"pinned": True,
"tags": ["<string>"],
"require_form_submission": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
api_endpoint: '<string>',
payload: {
base_url: '<string>',
path: '<string>',
method: '<string>',
operationId: '<string>',
summary: '<string>',
description: '<string>',
parameters: [{name: '<string>', description: '<string>', required: true, schema: {}}],
responses: {}
},
description: '<string>',
operation_id: '<string>',
pinned: true,
tags: ['<string>'],
require_form_submission: true
})
};
fetch('https://api.open.cx/actions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.open.cx/actions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'api_endpoint' => '<string>',
'payload' => [
'base_url' => '<string>',
'path' => '<string>',
'method' => '<string>',
'operationId' => '<string>',
'summary' => '<string>',
'description' => '<string>',
'parameters' => [
[
'name' => '<string>',
'description' => '<string>',
'required' => true,
'schema' => [
]
]
],
'responses' => [
]
],
'description' => '<string>',
'operation_id' => '<string>',
'pinned' => true,
'tags' => [
'<string>'
],
'require_form_submission' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.open.cx/actions"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"api_endpoint\": \"<string>\",\n \"payload\": {\n \"base_url\": \"<string>\",\n \"path\": \"<string>\",\n \"method\": \"<string>\",\n \"operationId\": \"<string>\",\n \"summary\": \"<string>\",\n \"description\": \"<string>\",\n \"parameters\": [\n {\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"required\": true,\n \"schema\": {}\n }\n ],\n \"responses\": {}\n },\n \"description\": \"<string>\",\n \"operation_id\": \"<string>\",\n \"pinned\": true,\n \"tags\": [\n \"<string>\"\n ],\n \"require_form_submission\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.open.cx/actions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"api_endpoint\": \"<string>\",\n \"payload\": {\n \"base_url\": \"<string>\",\n \"path\": \"<string>\",\n \"method\": \"<string>\",\n \"operationId\": \"<string>\",\n \"summary\": \"<string>\",\n \"description\": \"<string>\",\n \"parameters\": [\n {\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"required\": true,\n \"schema\": {}\n }\n ],\n \"responses\": {}\n },\n \"description\": \"<string>\",\n \"operation_id\": \"<string>\",\n \"pinned\": true,\n \"tags\": [\n \"<string>\"\n ],\n \"require_form_submission\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.open.cx/actions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"api_endpoint\": \"<string>\",\n \"payload\": {\n \"base_url\": \"<string>\",\n \"path\": \"<string>\",\n \"method\": \"<string>\",\n \"operationId\": \"<string>\",\n \"summary\": \"<string>\",\n \"description\": \"<string>\",\n \"parameters\": [\n {\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"required\": true,\n \"schema\": {}\n }\n ],\n \"responses\": {}\n },\n \"description\": \"<string>\",\n \"operation_id\": \"<string>\",\n \"pinned\": true,\n \"tags\": [\n \"<string>\"\n ],\n \"require_form_submission\": true\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"description": "<string>",
"api_endpoint": "<string>",
"request_type": "<string>",
"operation_id": "<string>",
"payload": {
"base_url": "<string>",
"path": "<string>",
"method": "<string>",
"operationId": "<string>",
"summary": "<string>",
"description": "<string>",
"parameters": [
{
"name": "<string>",
"description": "<string>",
"required": true,
"schema": {}
}
],
"requestBody": {
"content": {},
"description": "<string>",
"required": true
},
"responses": {}
},
"status": "<string>",
"pinned": true,
"tags": [
"<string>"
],
"enabled_on_channel": {
"channels": []
},
"is_handoff_like": true,
"require_form_submission": true,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}{
"statusCode": 123,
"message": "<string>",
"error": "<string>"
}Create an action
Create a new action that the AI agent can call during conversations. Use when programmatically managing the AI actions (tools) your agents can call, typically as part of a deploy…
curl --request POST \
--url https://api.open.cx/actions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"api_endpoint": "<string>",
"payload": {
"base_url": "<string>",
"path": "<string>",
"method": "<string>",
"operationId": "<string>",
"summary": "<string>",
"description": "<string>",
"parameters": [
{
"name": "<string>",
"description": "<string>",
"required": true,
"schema": {}
}
],
"responses": {}
},
"description": "<string>",
"operation_id": "<string>",
"pinned": true,
"tags": [
"<string>"
],
"require_form_submission": true
}
'import requests
url = "https://api.open.cx/actions"
payload = {
"name": "<string>",
"api_endpoint": "<string>",
"payload": {
"base_url": "<string>",
"path": "<string>",
"method": "<string>",
"operationId": "<string>",
"summary": "<string>",
"description": "<string>",
"parameters": [
{
"name": "<string>",
"description": "<string>",
"required": True,
"schema": {}
}
],
"responses": {}
},
"description": "<string>",
"operation_id": "<string>",
"pinned": True,
"tags": ["<string>"],
"require_form_submission": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
api_endpoint: '<string>',
payload: {
base_url: '<string>',
path: '<string>',
method: '<string>',
operationId: '<string>',
summary: '<string>',
description: '<string>',
parameters: [{name: '<string>', description: '<string>', required: true, schema: {}}],
responses: {}
},
description: '<string>',
operation_id: '<string>',
pinned: true,
tags: ['<string>'],
require_form_submission: true
})
};
fetch('https://api.open.cx/actions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.open.cx/actions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'api_endpoint' => '<string>',
'payload' => [
'base_url' => '<string>',
'path' => '<string>',
'method' => '<string>',
'operationId' => '<string>',
'summary' => '<string>',
'description' => '<string>',
'parameters' => [
[
'name' => '<string>',
'description' => '<string>',
'required' => true,
'schema' => [
]
]
],
'responses' => [
]
],
'description' => '<string>',
'operation_id' => '<string>',
'pinned' => true,
'tags' => [
'<string>'
],
'require_form_submission' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.open.cx/actions"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"api_endpoint\": \"<string>\",\n \"payload\": {\n \"base_url\": \"<string>\",\n \"path\": \"<string>\",\n \"method\": \"<string>\",\n \"operationId\": \"<string>\",\n \"summary\": \"<string>\",\n \"description\": \"<string>\",\n \"parameters\": [\n {\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"required\": true,\n \"schema\": {}\n }\n ],\n \"responses\": {}\n },\n \"description\": \"<string>\",\n \"operation_id\": \"<string>\",\n \"pinned\": true,\n \"tags\": [\n \"<string>\"\n ],\n \"require_form_submission\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.open.cx/actions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"api_endpoint\": \"<string>\",\n \"payload\": {\n \"base_url\": \"<string>\",\n \"path\": \"<string>\",\n \"method\": \"<string>\",\n \"operationId\": \"<string>\",\n \"summary\": \"<string>\",\n \"description\": \"<string>\",\n \"parameters\": [\n {\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"required\": true,\n \"schema\": {}\n }\n ],\n \"responses\": {}\n },\n \"description\": \"<string>\",\n \"operation_id\": \"<string>\",\n \"pinned\": true,\n \"tags\": [\n \"<string>\"\n ],\n \"require_form_submission\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.open.cx/actions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"api_endpoint\": \"<string>\",\n \"payload\": {\n \"base_url\": \"<string>\",\n \"path\": \"<string>\",\n \"method\": \"<string>\",\n \"operationId\": \"<string>\",\n \"summary\": \"<string>\",\n \"description\": \"<string>\",\n \"parameters\": [\n {\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"required\": true,\n \"schema\": {}\n }\n ],\n \"responses\": {}\n },\n \"description\": \"<string>\",\n \"operation_id\": \"<string>\",\n \"pinned\": true,\n \"tags\": [\n \"<string>\"\n ],\n \"require_form_submission\": true\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"description": "<string>",
"api_endpoint": "<string>",
"request_type": "<string>",
"operation_id": "<string>",
"payload": {
"base_url": "<string>",
"path": "<string>",
"method": "<string>",
"operationId": "<string>",
"summary": "<string>",
"description": "<string>",
"parameters": [
{
"name": "<string>",
"description": "<string>",
"required": true,
"schema": {}
}
],
"requestBody": {
"content": {},
"description": "<string>",
"required": true
},
"responses": {}
},
"status": "<string>",
"pinned": true,
"tags": [
"<string>"
],
"enabled_on_channel": {
"channels": []
},
"is_handoff_like": true,
"require_form_submission": true,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}{
"statusCode": 123,
"message": "<string>",
"error": "<string>"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
Action display name
The full API endpoint URL to call
HTTP method
GET, POST, PUT, PATCH, DELETE OpenAPI-style operation spec: parameters, requestBody, responses, etc.
Show child attributes
Show child attributes
What this action does
Unique operation ID (auto-generated from name if omitted)
Channel restrictions (defaults to web only)
Show child attributes
Show child attributes
Whether to pin this action prominently
Tags for organizing actions
Require the user to submit a form before executing
Response
Default Response
Unique action ID
Action display name
What this action does
The API endpoint URL this action calls
HTTP method (GET, POST, PUT, PATCH, DELETE)
Unique operation ID used to reference this action
OpenAPI-style operation spec defining parameters, request body, and responses
Show child attributes
Show child attributes
Action status (e.g. "live")
Whether this action is pinned prominently
Tags for organizing actions
Channel restrictions
Show child attributes
Show child attributes
Whether this action behaves like a handoff to a human agent
Whether a form must be submitted before the action executes
When the action was created
When the action was last updated
Was this page helpful?