Syllable Roles API
Operations related to roles. A role is a collection of permissions that can be assigned to users to control their access to various features within the Syllable system.
Operations related to roles. A role is a collection of permissions that can be assigned to users to control their access to various features within the Syllable system.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/syllable-roles-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: SyllableSDK Roles API
description: '# Syllable Platform SDK
Syllable SDK gives you the power of awesome AI agentry.'
version: 0.0.3
servers:
- url: https://api.syllable.cloud
description: API server
tags:
- name: Roles
description: Operations related to roles. A role is a collection of permissions that can be assigned to users to control their access to various features within the Syllable system.
paths:
/api/v1/roles/:
get:
tags:
- Roles
summary: List Roles
description: List the existing roles.
operationId: roles_list
security:
- APIKeyHeader: []
parameters:
- name: page
in: query
required: false
schema:
anyOf:
- type: integer
minimum: 0
- type: 'null'
description: The page number from which to start (0-based)
examples:
- 0
default: 0
title: Page
description: The page number from which to start (0-based)
- name: limit
in: query
required: false
schema:
type: integer
minimum: 0
description: The maximum number of items to return
examples:
- 25
default: 25
title: Limit
description: The maximum number of items to return
- name: search_fields
in: query
required: false
schema:
type: array
items:
$ref: '#/components/schemas/RoleProperties'
description: String names of fields to search. Correspond by index to search field values
examples:
- name
default: []
title: Search Fields
description: String names of fields to search. Correspond by index to search field values
- name: search_field_values
in: query
required: false
schema:
type: array
items:
type: string
description: Values of fields to search. Correspond by index to search fields. Unless field name contains "list", an individual search field value cannot be a list
examples:
- Some Object Name
default: []
title: Search Field Values
description: Values of fields to search. Correspond by index to search fields. Unless field name contains "list", an individual search field value cannot be a list
- name: order_by
in: query
required: false
schema:
anyOf:
- $ref: '#/components/schemas/RoleProperties'
- type: 'null'
description: The field whose value should be used to order the results
examples:
- name
title: Order By
description: The field whose value should be used to order the results
- name: order_by_direction
in: query
required: false
schema:
anyOf:
- $ref: '#/components/schemas/OrderByDirection'
- type: 'null'
description: The direction in which to order the results
title: Order By Direction
description: The direction in which to order the results
- name: fields
in: query
required: false
schema:
anyOf:
- type: array
items:
$ref: '#/components/schemas/RoleProperties'
- type: 'null'
description: The fields to include in the response
default: []
title: Fields
description: The fields to include in the response
- name: start_datetime
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: The start datetime for filtering results
examples:
- '2023-01-01T00:00:00Z'
title: Start Datetime
description: The start datetime for filtering results
- name: end_datetime
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: The end datetime for filtering results
examples:
- '2024-01-01T00:00:00Z'
title: End Datetime
description: The end datetime for filtering results
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ListResponse_RoleResponse_'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
x-codeSamples:
- lang: python
label: Python (SDK)
source: "import os\nfrom syllable_sdk import SyllableSDK, models\n\n\nwith SyllableSDK(\n api_key_header=os.getenv(\"SYLLABLESDK_API_KEY_HEADER\", \"\"),\n) as ss_client:\n\n res = ss_client.roles.list(page=0, limit=25, search_fields=[\n models.RoleProperties.NAME,\n ], search_field_values=[\n \"Some Object Name\",\n ], start_datetime=\"2023-01-01T00:00:00Z\", end_datetime=\"2024-01-01T00:00:00Z\")\n\n # Handle response\n print(res)"
- lang: typescript
label: Typescript (SDK)
source: "import { SyllableSDK } from \"syllable-sdk\";\n\nconst syllableSDK = new SyllableSDK({\n apiKeyHeader: process.env[\"SYLLABLESDK_API_KEY_HEADER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await syllableSDK.roles.list({\n page: 0,\n searchFields: [\n \"name\",\n ],\n searchFieldValues: [\n \"Some Object Name\",\n ],\n startDatetime: \"2023-01-01T00:00:00Z\",\n endDatetime: \"2024-01-01T00:00:00Z\",\n });\n\n console.log(result);\n}\n\nrun();"
post:
tags:
- Roles
summary: Create Role
description: Create a new role.
operationId: roles_create
security:
- APIKeyHeader: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RoleCreateRequest'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/RoleResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
x-codeSamples:
- lang: python
label: Python (SDK)
source: "import os\nfrom syllable_sdk import SyllableSDK\n\n\nwith SyllableSDK(\n api_key_header=os.getenv(\"SYLLABLESDK_API_KEY_HEADER\", \"\"),\n) as ss_client:\n\n res = ss_client.roles.create(request={\n \"name\": \"Prompt Engineer\",\n \"description\": \"Role for users who can fetch and change prompts\",\n \"permissions\": [\n \"prompts_read\",\n \"prompts_write\",\n \"prompts_delete\",\n ],\n })\n\n # Handle response\n print(res)"
- lang: typescript
label: Typescript (SDK)
source: "import { SyllableSDK } from \"syllable-sdk\";\n\nconst syllableSDK = new SyllableSDK({\n apiKeyHeader: process.env[\"SYLLABLESDK_API_KEY_HEADER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await syllableSDK.roles.create({\n name: \"Prompt Engineer\",\n description: \"Role for users who can fetch and change prompts\",\n permissions: [\n \"prompts_read\",\n \"prompts_write\",\n \"prompts_delete\",\n ],\n });\n\n console.log(result);\n}\n\nrun();"
put:
tags:
- Roles
summary: Update Role
description: Update an existing role.
operationId: roles_update
security:
- APIKeyHeader: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RoleUpdateRequest'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/RoleResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
x-codeSamples:
- lang: python
label: Python (SDK)
source: "import os\nfrom syllable_sdk import SyllableSDK\n\n\nwith SyllableSDK(\n api_key_header=os.getenv(\"SYLLABLESDK_API_KEY_HEADER\", \"\"),\n) as ss_client:\n\n res = ss_client.roles.update(request={\n \"name\": \"Prompt Engineer\",\n \"description\": \"Role for users who can fetch and change prompts\",\n \"permissions\": [\n \"prompts_read\",\n \"prompts_write\",\n \"prompts_delete\",\n ],\n \"id\": 1,\n \"last_updated_comments\": \"Updated to add delete permission\",\n })\n\n # Handle response\n print(res)"
- lang: typescript
label: Typescript (SDK)
source: "import { SyllableSDK } from \"syllable-sdk\";\n\nconst syllableSDK = new SyllableSDK({\n apiKeyHeader: process.env[\"SYLLABLESDK_API_KEY_HEADER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await syllableSDK.roles.update({\n name: \"Prompt Engineer\",\n description: \"Role for users who can fetch and change prompts\",\n permissions: [\n \"prompts_read\",\n \"prompts_write\",\n \"prompts_delete\",\n ],\n id: 1,\n lastUpdatedComments: \"Updated to add delete permission\",\n });\n\n console.log(result);\n}\n\nrun();"
/api/v1/roles/{role_id}:
get:
tags:
- Roles
summary: Get Role
description: Fetch a given role.
operationId: roles_get_by_id
security:
- APIKeyHeader: []
parameters:
- name: role_id
in: path
required: true
schema:
type: integer
title: Role Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/RoleResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
x-codeSamples:
- lang: python
label: Python (SDK)
source: "import os\nfrom syllable_sdk import SyllableSDK\n\n\nwith SyllableSDK(\n api_key_header=os.getenv(\"SYLLABLESDK_API_KEY_HEADER\", \"\"),\n) as ss_client:\n\n res = ss_client.roles.get_by_id(role_id=324660)\n\n # Handle response\n print(res)"
- lang: typescript
label: Typescript (SDK)
source: "import { SyllableSDK } from \"syllable-sdk\";\n\nconst syllableSDK = new SyllableSDK({\n apiKeyHeader: process.env[\"SYLLABLESDK_API_KEY_HEADER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await syllableSDK.roles.getById({\n roleId: 324660,\n });\n\n console.log(result);\n}\n\nrun();"
delete:
tags:
- Roles
summary: Delete Role
description: Delete a role. Optionally, reassign existing users with that role to a new role.
operationId: roles_delete
security:
- APIKeyHeader: []
parameters:
- name: role_id
in: path
required: true
schema:
type: integer
description: The ID of the role to delete
title: Role Id
description: The ID of the role to delete
- name: reason
in: query
required: true
schema:
type: string
description: The reason for deleting the role
title: Reason
description: The reason for deleting the role
- name: new_role_id
in: query
required: false
schema:
anyOf:
- type: integer
- type: 'null'
description: Users with the deleted role will be reassigned to the new role, if a new role ID is provided
title: New Role Id
description: Users with the deleted role will be reassigned to the new role, if a new role ID is provided
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
x-codeSamples:
- lang: python
label: Python (SDK)
source: "import os\nfrom syllable_sdk import SyllableSDK\n\n\nwith SyllableSDK(\n api_key_header=os.getenv(\"SYLLABLESDK_API_KEY_HEADER\", \"\"),\n) as ss_client:\n\n res = ss_client.roles.delete(role_id=458987, reason=\"<value>\")\n\n # Handle response\n print(res)"
- lang: typescript
label: Typescript (SDK)
source: "import { SyllableSDK } from \"syllable-sdk\";\n\nconst syllableSDK = new SyllableSDK({\n apiKeyHeader: process.env[\"SYLLABLESDK_API_KEY_HEADER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await syllableSDK.roles.delete({\n roleId: 458987,\n reason: \"<value>\",\n });\n\n console.log(result);\n}\n\nrun();"
components:
schemas:
RoleProperties:
type: string
enum:
- name
- description
- updated_at
- last_updated_by
title: RoleProperties
description: Names of role fields supported for filtering/sorting on list endpoint.
RoleCreateRequest:
properties:
name:
type: string
title: Name
description: The name of the role.
examples:
- Prompt Engineer
description:
anyOf:
- type: string
- type: 'null'
title: Description
description: The description of the role.
examples:
- Role for users who can fetch and change prompts
permissions:
items:
type: string
type: array
title: Permissions
description: The permissions associated with the role. Available permissions can be found by calling `GET /permissions`.
examples:
- - prompts_read
- prompts_write
- prompts_delete
type: object
required:
- name
- permissions
title: RoleCreateRequest
description: Request model to create a role.
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
type: object
required:
- loc
- msg
- type
title: ValidationError
RoleUpdateRequest:
properties:
name:
type: string
title: Name
description: The name of the role.
examples:
- Prompt Engineer
description:
anyOf:
- type: string
- type: 'null'
title: Description
description: The description of the role.
examples:
- Role for users who can fetch and change prompts
permissions:
items:
type: string
type: array
title: Permissions
description: The permissions associated with the role. Available permissions can be found by calling `GET /permissions`.
examples:
- - prompts_read
- prompts_write
- prompts_delete
id:
type: integer
title: Id
description: The internal ID of the role.
examples:
- 1
last_updated_comments:
anyOf:
- type: string
- type: 'null'
title: Last Updated Comments
description: Comments for the most recent edit to the role.
examples:
- Updated to add delete permission
type: object
required:
- name
- permissions
- id
title: RoleUpdateRequest
description: Request model to update an existing role.
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
RoleResponse:
properties:
name:
type: string
title: Name
description: The name of the role.
examples:
- Prompt Engineer
description:
anyOf:
- type: string
- type: 'null'
title: Description
description: The description of the role.
examples:
- Role for users who can fetch and change prompts
permissions:
items:
type: string
type: array
title: Permissions
description: The permissions associated with the role. Available permissions can be found by calling `GET /permissions`.
examples:
- - prompts_read
- prompts_write
- prompts_delete
id:
type: integer
title: Id
description: The internal ID of the role.
examples:
- 1
last_updated_comments:
anyOf:
- type: string
- type: 'null'
title: Last Updated Comments
description: Comments for the most recent edit to the role.
examples:
- Updated to add delete permission
is_system_role:
type: boolean
title: Is System Role
description: Whether this is a built-in system role that cannot be updated or deleted
examples:
- false
last_updated:
type: string
format: date-time
title: Last Updated
description: The timestamp of the most recent update to the role
last_updated_by:
type: string
title: Last Updated By
description: The email of the user who last updated the role
examples:
- user@email.com
type: object
required:
- name
- permissions
- id
- is_system_role
- last_updated
- last_updated_by
title: RoleResponse
description: Information about a role.
ListResponse_RoleResponse_:
properties:
items:
items:
$ref: '#/components/schemas/RoleResponse'
type: array
title: Items
description: List of items returned from the query
examples: []
page:
type: integer
title: Page
description: The page number of the results (0-based)
examples:
- 0
page_size:
type: integer
title: Page Size
description: The number of items returned per page
examples:
- 25
total_pages:
anyOf:
- type: integer
- type: 'null'
title: Total Pages
description: The total number of pages of results given the indicated page size
examples:
- 4
total_count:
anyOf:
- type: integer
- type: 'null'
title: Total Count
description: The total number of items returned from the query
examples:
- 100
type: object
required:
- items
- page
- page_size
title: ListResponse[RoleResponse]
OrderByDirection:
type: string
enum:
- asc
- desc
title: OrderByDirection
description: The direction in which to order list results, either ascending or descending.
securitySchemes:
APIKeyHeader:
type: apiKey
in: header
name: Syllable-API-Key
x-speakeasy-name-override:
- operationId: .*_list$
methodNameOverride: list
- operationId: .*_create$
methodNameOverride: create
- operationId: .*_update$
methodNameOverride: update
- operationId: .*_upload$
methodNameOverride: upload
- operationId: .*_delete$
methodNameOverride: delete
- operationId: .*_get_by_id$
methodNameOverride: get_by_id
- operationId: .*_get_by_name$
methodNameOverride: get_by_name
- operationId: .*_add$
methodNameOverride: add
- operationId: .*_remove$
methodNameOverride: remove
- operationId: .*_results$
methodNameOverride: results
- operationId: .*_queue_work$
methodNameOverride: queue_work
- operationId: .*_activate$
methodNameOverride: activate
- operationId: .*_inactivate$
methodNameOverride: inactivate
- operationId: .*_list_files$
methodNameOverride: list_files
- operationId: .*_move_files$
methodNameOverride: move_files
- operationId: .*_upload_file$
methodNameOverride: upload_file