Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
title: Canoe Intelligence User API
version: '1.0'
description: 'Operations tagged User across 3 of this provider''s published API definitions: canoe-intelligence-api-docs-v1-original.yaml, canoe-intelligence-api-openapi-original.json, canoe-intelligence-api-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.canoesoftware.com
description: Production API
tags:
- name: User
description: ''
paths:
Get Your API User Information:
get:
tags:
- User
summary: null
description: '/v1/user
Fetch information about your Canoe API user.
'
operationId: User
requestBody:
content:
application/json:
schema:
type: string
examples:
bash:
description: "-\n curl -X GET \\\n -G \"https://api.canoesoftware.com/v1/user\" \\\n -H \"Authorization: Bearer {token}\" \\\n -H \"Accept: application/json\" \\\n -H \"X-Requested-With: XMLHttpRequest\"\n"
summary: Bash
Javascript:
description: "-\n const url = new URL(\n \"https://api.canoesoftware.com/v1/user\"\n );\n\n let headers = {\n \"Authorization\": \"Bearer {token}\",\n \"Accept\": \"application/json\",\n \"X-Requested-With\": \"XMLHttpRequest\",\n \"Content-Type\": \"application/json\",\n };\n\n fetch(url, {\n method: \"GET\",\n headers: headers,\n })\n .then(response => response.json())\n .then(json => console.log(json));\n"
summary: JavaScript
PHP:
description: "-\n $client = new \\GuzzleHttp\\Client();\n $response = $client->get(\n 'https://api.canoesoftware.com/v1/user',\n [\n 'headers' => [\n 'Authorization' => 'Bearer {token}',\n 'Accept' => 'application/json',\n 'X-Requested-With' => 'XMLHttpRequest',\n ],\n ]\n );\n $body = $response->getBody();\n print_r(json_decode((string) $body));\n"
summary: PHP
Python:
description: "-\n import requests\n import json\n\n url = 'https://api.canoesoftware.com/v1/user'\n headers = {\n 'Authorization': 'Bearer {token}',\n 'Accept': 'application/json',\n 'X-Requested-With': 'XMLHttpRequest'\n }\n response = requests.request('GET', url, headers=headers)\n response.json()\n"
summary: Python
CSharp:
description: "-\n using RestSharp;\n\n var client = new RestClient(\"https://api.canoesoftware.com/\");\n var request = new RestRequest(\"v1/user\", Method.Get);\n request.AddParameter(\"Authorization\", string.Format(\"Bearer {token}\"), ParameterType.HttpHeader);\n request.AddHeader(\"Accept\", \"application/json\");\n request.AddHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n var response = client.Execute(request);\n Console.WriteLine(response.Content);\n"
summary: CSharp
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/User'
Get Users Within Your Organization:
get:
tags:
- User
summary: null
description: "/v1/users\n\nFetch information about users within your Canoe organization.\n\n<span name=\"doc-alert-info\">\nThis endpoint offers optional pagination. \nPagination supports the return of large results and is highly recommended for all use cases. \nUnpaginated calls will be depreciated in future versions of the Canoe API.\n<br><br>\nWhen using pagination, the response will contain headers defining the <code>total</code> number of results, \nas well as the <code>first</code>, <code>next</code>, <code>prev</code>, and <code>last</code> page responses for your result set. \nTo enable pagination pass a header parameter of X-API-VERSION with a value of 2024-12-12.\n</span>\n"
operationId: findByTags
parameters:
- name: page
in: query
description: This page number. For example, if you specify "2" you will see all users on page 2. By default, this is set to 1. <u>This parameter is only valid if the X-API-VERSION header is set to 2024-12-12.</u> Example:- 1
required: false
schema:
type: integer
examples:
page 1:
value: 1
page 5:
value: 5
- name: limit
in: query
description: The number of documents for each page. The maximum number of users limit is 100. <u>This parameter is only valid if the X-API-VERSION header is set to 2024-12-12.</u> Example:- 50
required: false
schema:
type: integer
examples:
limit:
value: 50
- name: user_id
in: query
description: 'The IDs of the users in Canoe. Example: user_1,user_2'
required: false
schema:
type: string
examples:
user 1:
value: user_1
user 2:
value: user_2
- name: email
in: query
description: 'The emails of the users in Canoe. Example: user_1@example.com,user_2@example.com'
required: false
schema:
type: string
examples:
user 1 email address:
value: user_1@example.com
user 2 email address:
value: user_2@example.com
- name: role_id
in: query
description: 'The IDs of the roles in Canoe. Example: role_1,role_2'
required: false
schema:
type: string
examples:
role 1:
value: role_1
- name: status
in: query
description: 'The status of the users in Canoe. Example: active,inactive'
required: false
schema:
type: string
examples:
active:
value: active
inactive:
value: inactive
- name: role_organization_id
in: query
description: 'The IDs of the organizations in Canoe. Example: account_1,account_2'
required: false
schema:
type: string
examples:
account 1:
value: account_1
account 2:
value: account_2
requestBody:
content:
application/json:
schema:
type: string
examples:
bash:
description: "-\n curl -X GET \\\n -G \"https://api.canoesoftware.com/v1/users?user_id=user_1%2Cuser_2&email=user_1%40example.com%2Cuser_2%40example.com\" \\\n -H \"Authorization: Bearer {token}\" \\\n -H \"Accept: application/json\" \\\n -H \"X-Requested-With: XMLHttpRequest\"\n"
summary: Bash
javascript:
description: "-\n const url = new URL(\n \"https://api.canoesoftware.com/v1/user\"\n );\n\n let headers = {\n \"Authorization\": \"Bearer {token}\",\n \"Accept\": \"application/json\",\n \"X-Requested-With\": \"XMLHttpRequest\",\n \"Content-Type\": \"application/json\",\n };\n\n fetch(url, {\n method: \"GET\",\n headers: headers,\n })\n .then(response => response.json())\n .then(json => console.log(json));\n"
summary: JavaScript
PHP:
description: "-\n $client = new \\GuzzleHttp\\Client();\n $response = $client->get(\n 'https://api.canoesoftware.com/v1/user',\n [\n 'headers' => [\n 'Authorization' => 'Bearer {token}',\n 'Accept' => 'application/json',\n 'X-Requested-With' => 'XMLHttpRequest',\n ],\n ]\n );\n $body = $response->getBody();\n print_r(json_decode((string) $body));\n"
summary: PHP
Python:
description: "-\n import requests\n import json\n\n url = 'https://api.canoesoftware.com/v1/user'\n headers = {\n 'Authorization': 'Bearer {token}',\n 'Accept': 'application/json',\n 'X-Requested-With': 'XMLHttpRequest'\n }\n response = requests.request('GET', url, headers=headers)\n response.json()\n"
summary: Python
CSharp:
description: "-\n using RestSharp;\n\n var client = new RestClient(\"https://api.canoesoftware.com/\");\n var request = new RestRequest(\"v1/user\", Method.Get);\n request.AddParameter(\"Authorization\", string.Format(\"Bearer {token}\"), ParameterType.HttpHeader);\n request.AddHeader(\"Accept\", \"application/json\");\n request.AddHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n var response = client.Execute(request);\n Console.WriteLine(response.Content);\n"
summary: CSharp
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Users'
Create A User Within Your Organization:
post:
tags:
- User
summary: null
description: '/v1/user
Create a user within your Canoe organization.
'
operationId: CreateASingleUser
parameters:
- name: first_name
in: body
description: The first name of the user
required: true
schema:
type: string
example: New
- name: last_name
in: body
description: The last name of the user
required: true
schema:
type: string
example: User
- name: status
in: body
description: Indicates whether the user is active or inactive. The status can be active or inactive. If not provided, the default is active.
required: false
schema:
type: string
example:
status: active
- name: email
in: body
description: The email address related to the user. This must have the correct email format.
required: true
schema:
type: string
example:
email: user_1@example.com
- name: access_level
in: body
description: The roles and organizations that a user is given permission to.
required: true
schema:
type: array
example:
access_level:
- role_id: role_id_1
role_organization_ids:
- org_id_1
- org_id_2
requestBody:
content:
application/json:
schema:
type: string
examples:
bash:
description: "-\n curl -X POST \\\n -G \"https://api.canoesoftware.com/v1/user\" \\\n -H \"Authorization: Bearer {token}\" \\\n -H \"Accept: application/json\" \\\n -H \"X-Requested-With: XMLHttpRequest\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"status\":\"active\",\"first_name\":\"New\",\"last_name\":\"User\",\"email\":\"user_1@example.com\",\"access_level\":[{\"role_id\":\"role_id_1\",\"role_organization_ids\":[\"account_org_1\", \"account_org_2\"]}]}'\n"
summary: Bash
javascript:
description: "-\n const url = new URL(\n \"https://api.canoesoftware.com/v1/user\"\n );\n let headers = {\n \"Authorization\": \"Bearer {token}\",\n \"Accept\": \"application/json\",\n \"X-Requested-With\": \"XMLHttpRequest\",\n \"Content-Type\": \"application/json\",\n };\n\n let body = {\n \"status\": \"active\",\n \"first_name\": \"New\",\n \"last_name\": \"User\",\n \"email\": \"user_1@example.com\",\n \"access_level\": [{\n \"role_id\": \"role_id_1\",\n \"role_organization_ids\": [\"account_org_1\",\"account_org_2\"]\n }]\n }\n fetch(url, {\n method: \"POST\",\n headers: headers,\n body: body\n })\n .then(response => response.json())\n .then(json => console.log(json));\n"
summary: JavaScript
PHP:
description: "-\n $client = new \\GuzzleHttp\\Client();\n $response = $client->post(\n 'https://api.canoesoftware.com/v1/user',\n [\n 'headers' => [\n 'Authorization' => 'Bearer {token}',\n 'Accept' => 'application/json',\n 'X-Requested-With' => 'XMLHttpRequest',\n 'Content-Type' => 'application/json',\n ],\n 'json' => [\n 'status' => 'active',\n 'first_name': 'New',\n 'last_name': 'User',\n 'email' => 'user_1@example.com',\n 'access_level' => [{\n 'role_id': 'role_id_1',\n 'role_organization_ids': ['account_org_1','account_org_2']\n }]\n ],\n ]\n );\n $body = $response->getBody();\n print_r(json_decode((string) $body));\n"
summary: PHP
Python:
description: "-\n import requests\n import json\n url = 'https://api.canoesoftware.com/v1/user'\n payload = {\n \"status\": \"active\",\n \"first_name\": \"New\",\n \"last_name\": \"User\",\n \"email\": \"user_1@example.com\",\n \"access_level\": [{\n \"role_id\": \"role_id_1\",\n \"role_organization_ids\": [\"account_org_1\",\"account_org_2\"]\n }]\n }\n headers = {\n 'Authorization': 'Bearer {token}',\n 'Accept': 'application/json',\n 'X-Requested-With': 'XMLHttpRequest',\n 'Content-Type': 'application/json'\n }\n response = requests.request('POST', url, headers=headers, json=payload)\n response.json()\n"
summary: Python
CSharp:
description: "-\n using RestSharp;\n var client = new RestClient(\"https://api.canoesoftware.com/\");\n var request = new RestRequest(\"v1/user\", Method.Post);\n request.AddParameter(\"Authorization\", string.Format(\"Bearer {token}\"), ParameterType.HttpHeader);\n request.AddHeader(\"Accept\", \"application/json\");\n request.AddHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n request.AddHeader(\"Content-Type\", \"application/json\");\n var body = new\n { \n status = \"active\",\n first_name = \"New\",\n last_name = \"User\",\n email = \"user_1@example.com\",\n tags = new { role_organization_ids = new [] { \"account_org_1\", \"account_org_2\" }, role_id = \"role_id_1\" }\n };\n request.AddJsonBody(body);\n var response = client.Execute(request);\n Console.WriteLine(response.Content);\n"
summary: CSharp
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/UserWithId'
Update A User Within Your Organization:
put:
tags:
- User
summary: null
description: '/v1/users/{id}
Update a user within your Canoe organization.
'
operationId: UpdateASingleUser
parameters:
- name: id
in: path
description: The id of the user you want to edit. This id is available by using the "Get Users within Your Organization" endpoint.
required: true
schema:
type: string
example: 1
- name: status
in: body
description: Indicates whether the user is active or inactive. The status can be active or inactive. If not provided, the default is active.
required: false
schema:
type: string
example:
status: active
- name: email
in: body
description: The email address related to the user. This must have the correct email format.
required: false
schema:
type: string
example:
email: user_1@example.com
- name: access_level
in: body
description: The roles and organizations that a user is given permission to.
required: false
schema:
type: array
example:
access_level:
- role_id: role_id_1
role_organization_ids:
- org_id_1
- org_id_2
requestBody:
content:
application/json:
schema:
type: string
examples:
bash:
description: "-\n curl -X PUT \\\n -G \"https://api.canoesoftware.com/v1/users/user_1\" \\\n -H \"Authorization: Bearer {token}\" \\\n -H \"Accept: application/json\" \\\n -H \"X-Requested-With: XMLHttpRequest\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"status\":\"active\",\"email\":\"user_1@example.com\",\"access_level\":[{\"role_id\":\"role_id_1\",\"role_organization_ids\":[\"account_org_1\", \"account_org_2\"]}]}'\n"
summary: Bash
javascript:
description: "-\n const url = new URL(\n \"https://api.canoesoftware.com/v1/user/user_1\"\n );\n let headers = {\n \"Authorization\": \"Bearer {token}\",\n \"Accept\": \"application/json\",\n \"X-Requested-With\": \"XMLHttpRequest\",\n \"Content-Type\": \"application/json\",\n };\n\n let body = {\n \"status\": \"active\",\n \"email\": \"user_1@example.com\",\n \"access_level\": [{\n \"role_id\": \"role_id_1\",\n \"role_organization_ids\": [\"account_org_1\",\"account_org_2\"]\n }]\n }\n fetch(url, {\n method: \"PUT\",\n headers: headers,\n body: body\n })\n .then(response => response.json())\n .then(json => console.log(json));\n"
summary: JavaScript
PHP:
description: "-\n $client = new \\GuzzleHttp\\Client();\n $response = $client->put(\n 'https://api.canoesoftware.com/v1/user/user_1',\n [\n 'headers' => [\n 'Authorization' => 'Bearer {token}',\n 'Accept' => 'application/json',\n 'X-Requested-With' => 'XMLHttpRequest',\n 'Content-Type' => 'application/json',\n ],\n 'json' => [\n 'status' => 'active',\n 'email' => 'user_1@example.com',\n 'access_level' => [{\n 'role_id': 'role_id_1',\n 'role_organization_ids': ['account_org_1','account_org_2']\n }]\n ],\n ]\n );\n $body = $response->getBody();\n print_r(json_decode((string) $body));\n"
summary: PHP
Python:
description: "-\n import requests\n import json\n url = 'https://api.canoesoftware.com/v1/user/user_1'\n payload = {\n \"status\": \"active\",\n \"email\": \"user_1@example.com\",\n \"access_level\": [{\n \"role_id\": \"role_id_1\",\n \"role_organization_ids\": [\"account_org_1\",\"account_org_2\"]\n }]\n }\n headers = {\n 'Authorization': 'Bearer {token}',\n 'Accept': 'application/json',\n 'X-Requested-With': 'XMLHttpRequest',\n 'Content-Type': 'application/json'\n }\n response = requests.request('PUT', url, headers=headers, json=payload)\n response.json()\n"
summary: Python
CSharp:
description: "-\n using RestSharp;\n var client = new RestClient(\"https://api.canoesoftware.com/\");\n var request = new RestRequest(\"v1/user/user_1\", Method.Put);\n request.AddParameter(\"Authorization\", string.Format(\"Bearer {token}\"), ParameterType.HttpHeader);\n request.AddHeader(\"Accept\", \"application/json\");\n request.AddHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n request.AddHeader(\"Content-Type\", \"application/json\");\n var body = new\n { \n status = \"active\",\n email = \"user_1@example.com\",\n tags = new { role_organization_ids = new [] { \"account_org_1\", \"account_org_2\" }, role_id = \"role_id_1\" }\n };\n request.AddJsonBody(body);\n var response = client.Execute(request);\n Console.WriteLine(response.Content);\n"
summary: CSharp
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Users'
Get User Access Levels:
get:
tags:
- User
summary: null
description: '/v1/users/roles
Fetch information about access roles within your Canoe organization.
'
operationId: findByRole
parameters: null
requestBody:
content:
application/json:
schema:
type: string
examples:
bash:
description: "-\n curl -X GET \\\n -G \"https://api.canoesoftware.com/v1/users/roles\" \\\n -H \"Authorization: Bearer {token}\" \\\n -H \"Accept: application/json\" \\\n -H \"X-Requested-With: XMLHttpRequest\"\n"
summary: Bash
javascript:
description: "-\n const url = new URL(\n \"https://api.canoesoftware.com/v1/users/roles\"\n );\n\n let headers = {\n \"Authorization\": \"Bearer {token}\",\n \"Accept\": \"application/json\",\n \"X-Requested-With\": \"XMLHttpRequest\",\n \"Content-Type\": \"application/json\",\n };\n\n fetch(url, {\n method: \"GET\",\n headers: headers,\n })\n .then(response => response.json())\n .then(json => console.log(json));\n"
summary: JavaScript
PHP:
description: "-\n $client = new \\GuzzleHttp\\Client();\n $response = $client->get(\n 'https://api.canoesoftware.com/v1/users/roles',\n [\n 'headers' => [\n 'Authorization' => 'Bearer {token}',\n 'Accept' => 'application/json',\n 'X-Requested-With' => 'XMLHttpRequest',\n ],\n ]\n );\n $body = $response->getBody();\n print_r(json_decode((string) $body));\n"
summary: PHP
Python:
description: "-\n import requests\n import json\n\n url = 'https://api.canoesoftware.com/v1/users/roles'\n headers = {\n 'Authorization': 'Bearer {token}',\n 'Accept': 'application/json',\n 'X-Requested-With': 'XMLHttpRequest'\n }\n response = requests.request('GET', url, headers=headers)\n response.json()\n"
summary: Python
CSharp:
description: "-\n using RestSharp;\n\n var client = new RestClient(\"https://api.canoesoftware.com/\");\n var request = new RestRequest(\"v1/users/roles\", Method.Get);\n request.AddParameter(\"Authorization\", string.Format(\"Bearer {token}\"), ParameterType.HttpHeader);\n request.AddHeader(\"Accept\", \"application/json\");\n request.AddHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n var response = client.Execute(request);\n Console.WriteLine(response.Content);\n"
summary: CSharp
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Roles'
/v1/user:
get:
tags:
- User
summary: Get Your API User Information
description: Fetch information about your Canoe API user.
operationId: User
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/User_2'
x-codeSamples:
- lang: bash
label: Bash
source: "curl -X GET \\\n -G \"https://api.canoesoftware.com/v1/user\" \\\n -H \"Authorization: Bearer {token}\" \\\n -H \"Accept: application/json\" \\\n -H \"X-Requested-With: XMLHttpRequest\""
- lang: javascript
label: JavaScript
source: "const url = new URL(\n \"https://api.canoesoftware.com/v1/user\"\n );\n\n let headers = {\n \"Authorization\": \"Bearer {token}\",\n \"Accept\": \"application/json\",\n \"X-Requested-With\": \"XMLHttpRequest\",\n \"Content-Type\": \"application/json\",\n };\n\n fetch(url, {\n method: \"GET\",\n headers: headers,\n })\n .then(response => response.json())\n .then(json => console.log(json));"
- lang: php
label: PHP
source: "$client = new \\GuzzleHttp\\Client();\n $response = $client->get(\n 'https://api.canoesoftware.com/v1/user',\n [\n 'headers' => [\n 'Authorization' => 'Bearer {token}',\n 'Accept' => 'application/json',\n 'X-Requested-With' => 'XMLHttpRequest',\n ],\n ]\n );\n $body = $response->getBody();\n print_r(json_decode((string) $body));"
- lang: python
label: Python
source: "import requests\n import json\n\n url = 'https://api.canoesoftware.com/v1/user'\n headers = {\n 'Authorization': 'Bearer {token}',\n 'Accept': 'application/json',\n 'X-Requested-With': 'XMLHttpRequest'\n }\n response = requests.request('GET', url, headers=headers)\n response.json()"
- lang: csharp
label: CSharp
source: "using RestSharp;\n\n var client = new RestClient(\"https://api.canoesoftware.com/\");\n var request = new RestRequest(\"v1/user\", Method.Get);\n request.AddParameter(\"Authorization\", string.Format(\"Bearer {token}\"), ParameterType.HttpHeader);\n request.AddHeader(\"Accept\", \"application/json\");\n request.AddHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n var response = client.Execute(request);\n Console.WriteLine(response.Content);"
security:
- bearerAuth: []
post:
tags:
- User
summary: Create User
description: Create a new user within your organization. Requires tenant admin or super admin permissions. The newly created user will receive a password reset email to set up their account.
operationId: createUser
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
email:
type: string
description: User email address (must be unique)
example: john.doe@example.com
first_name:
type: string
description: User first name (maximum 255 characters)
example: John
last_name:
type: string
description: User last name (maximum 255 characters)
example: Doe
title:
type: string
description: User title (optional, maximum 255 characters)
example: Senior Analyst
status:
type: string
description: User status (optional, defaults to 'active')
enum:
- active
- inactive
example: active
access_level:
type: array
description: Array of access levels defining user permissions
items:
type: object
properties:
role_id:
type: string
description: Role ID to assign
role_organization_ids:
type: array
description: Array of organization IDs this role applies to
items:
type: string
required:
- role_id
- role_organization_ids
example:
- role_id: role_123
role_organization_ids:
- org_456
- org_789
required:
- email
- first_name
- last_name
- access_level
responses:
'201':
description: Success - User created. A password reset email has been sent to the user.
content:
application/json:
schema:
type: object
properties:
user_id:
type: string
description: The unique identifier for the newly created user
email:
type: string
description: User email address
first_name:
type: string
description: User first name
last_name:
type: string
description: User last name
status:
type: string
description: User status
example:
user_id: user_987654
email: john.doe@example.com
first_name: John
last_name: Doe
status: active
'400':
description: Bad Request - Invalid input or email already exists
'403':
description: Forbidden - Insufficient permissions. Requires tenant admin or super admin role.
x-codeSamples:
- lang: bash
label: Bash
source: "curl -X POST \\\n \"https://api.canoesoftware.com/v1/user\" \\\n -H \"Authorization: Bearer {token}\" \\\n -H \"Accept: application/json\" \\\n -H \"X-Requested-With: XMLHttpRequest\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"email\":\"john.doe@example.com\",\"first_name\":\"John\",\"last_name\":\"Doe\",\"title\":\"Senior Analyst\",\"status\":\"active\",\"access_level\":[{\"role_id\":\"role_123\",\"role_organization_ids\":[\"org_456\",\"org_789\"]}]}'"
- lang: javascript
label: JavaScript
source: "const url = new URL(\n \"https://api.canoesoftware.com/v1/user\"\n );\n\n let headers = {\n \"Authorization\": \"Bearer {token}\",\n \"Accept\": \"application/json\",\n \"X-Requested-With\": \"XMLHttpRequest\",\n \"Content-Type\": \"application/json\",\n };\n\n let body = {\n \"email\": \"john.doe@example.com\",\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"title\": \"Senior Analyst\",\n \"status\": \"active\",\n \"access_level\": [\n {\n \"role_id\": \"role_123\",\n \"role_organization_ids\": [\"org_456\", \"org_789\"]\n }\n ]\n };\n\n fetch(url, {\n method: \"POST\",\n headers: headers,\n body: JSON.stringify(body)\n })\n .then(response => response.json())\n .then(json => co
# --- truncated at 32 KB (60 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/canoe-intelligence/refs/heads/main/openapi/canoe-intelligence-user-api-openapi.yml