Create an API client
curl --request POST \
--url https://api.siro.ai/v1/core/m2m-clients/{organizationId} \
--header 'Content-Type: application/json' \
--header 'x-siro-auth-token: <api-key>' \
--data '
{
"name": "<string>",
"scopes": [
"<string>"
]
}
'import requests
url = "https://api.siro.ai/v1/core/m2m-clients/{organizationId}"
payload = {
"name": "<string>",
"scopes": ["<string>"]
}
headers = {
"x-siro-auth-token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-siro-auth-token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: '<string>', scopes: ['<string>']})
};
fetch('https://api.siro.ai/v1/core/m2m-clients/{organizationId}', 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.siro.ai/v1/core/m2m-clients/{organizationId}",
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>',
'scopes' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-siro-auth-token: <api-key>"
],
]);
$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.siro.ai/v1/core/m2m-clients/{organizationId}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"scopes\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-siro-auth-token", "<api-key>")
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.siro.ai/v1/core/m2m-clients/{organizationId}")
.header("x-siro-auth-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"scopes\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.siro.ai/v1/core/m2m-clients/{organizationId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-siro-auth-token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"scopes\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"clientId": "<string>",
"clientSecret": "<string>"
},
"cursor": "<string>",
"pageSize": 123,
"limit": 123,
"total": 123,
"hasNextPage": true
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"issues": [
{
"code": "<string>",
"path": [
"<string>"
],
"message": "<string>",
"expected": "<string>",
"received": "<string>"
}
],
"name": "ZodError"
}{
"error": "<string>"
}Client apps
Create an API client
Creates an API client for the organization and returns the client id and secret once. The secret cannot be retrieved later, and the client is limited to that organization and to scopes the caller already has.
POST
/
v1
/
core
/
m2m-clients
/
{organizationId}
Create an API client
curl --request POST \
--url https://api.siro.ai/v1/core/m2m-clients/{organizationId} \
--header 'Content-Type: application/json' \
--header 'x-siro-auth-token: <api-key>' \
--data '
{
"name": "<string>",
"scopes": [
"<string>"
]
}
'import requests
url = "https://api.siro.ai/v1/core/m2m-clients/{organizationId}"
payload = {
"name": "<string>",
"scopes": ["<string>"]
}
headers = {
"x-siro-auth-token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-siro-auth-token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: '<string>', scopes: ['<string>']})
};
fetch('https://api.siro.ai/v1/core/m2m-clients/{organizationId}', 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.siro.ai/v1/core/m2m-clients/{organizationId}",
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>',
'scopes' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-siro-auth-token: <api-key>"
],
]);
$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.siro.ai/v1/core/m2m-clients/{organizationId}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"scopes\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-siro-auth-token", "<api-key>")
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.siro.ai/v1/core/m2m-clients/{organizationId}")
.header("x-siro-auth-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"scopes\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.siro.ai/v1/core/m2m-clients/{organizationId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-siro-auth-token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"scopes\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"clientId": "<string>",
"clientSecret": "<string>"
},
"cursor": "<string>",
"pageSize": 123,
"limit": 123,
"total": 123,
"hasNextPage": true
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"issues": [
{
"code": "<string>",
"path": [
"<string>"
],
"message": "<string>",
"expected": "<string>",
"received": "<string>"
}
],
"name": "ZodError"
}{
"error": "<string>"
}Creates a client app for the organization.
The
clientSecret is returned once. Store it immediately — it cannot be retrieved later. To get a new secret, rotate the existing client.
Each requested scope must already be held by the caller. The client is limited to this organization.
After create, exchange clientId and clientSecret at auth.siro.ai.Authorizations
Access token from POST https://auth.siro.ai/oauth2/token (client_credentials), or a Siro OAuth access token. Send x-siro-auth-token: <access-token>.
Path Parameters
The organization this client belongs to.
Body
application/json