Cintoo Group API
The Group API from Cintoo — 3 operation(s) for group.
The Group API from Cintoo — 3 operation(s) for group.
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/cintoo-group-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:
version: 2.0.0
title: Cintoo Open Group API
description: 'Cintoo Open API 1.x documentation: https://aec.cintoo.com/api
BETA: API v2 endpoints tagged "BETA" are available in beta-version, meaning that changes may be done later on.'
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0.html
contact:
name: API Support
email: support@cintoo.com
x-logo:
url: ./assets/logo_api.svg
altText: Cintoo API
servers:
- url: https://aec.cintoo.com
security:
- oauth2: []
tags:
- name: Group
paths:
/api/2/accounts/{accountRef}/groups:
get:
summary: List groups
operationId: getGroups
description: 'BETAList available groups in this account.
Requires the permission `account:groups:read` on the account.'
tags:
- Group
parameters:
- $ref: '#/components/parameters/accountRef'
responses:
'200':
description: List and content of the Groups
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Group'
4XX:
$ref: '#/components/responses/UnexpectedError'
x-codeSamples:
- lang: cURL
source: "export TOKEN=...\nexport ACCOUNTUUID=...\n\ncurl --url \"https://aec.cintoo.com/api/2/accounts/$ACCOUNTUUID/groups\" \\\n --header \"Authorization: Bearer $TOKEN\"\n"
- lang: Python
source: "import requests\n\nhost = \"aec.cintoo.com\"\naccountUUID = \"...\"\ntoken = \"...\"\n\nresponse = requests.get(\n \"https://%s/api/2/accounts/%s/groups\"\n % (host, accountUUID),\n headers = { \"Authorization\": \"Bearer %s\" % token}\n)\nprint(response.status_code)\nprint(response.json())\n"
- lang: TypeScript
source: "const host = \"aec.cintoo.com\";\nconst accountUUID = \"...\";\nconst token = \"...\";\n\nconst url = `https://${host}/api/2/accounts/${accountUUID}/groups`;\nconst res = await fetch(url, {\n headers: {\n \"Authorization\": `Bearer ${token}`,\n },\n});\n\nconsole.log(res.status);\nconst data = await res.json();\nconsole.log(data);\n"
post:
summary: Create group
operationId: createGroup
description: 'BETACreate a new group in this account.
Requires the permission `account:groups:write` on the account.
Returns the created group resource in body and its URL in `Location` header.
The group name must be unique within the account (case-insensitive). If a group with the same name already exists on this account, a `409 Conflict` error is returned.'
tags:
- Group
parameters:
- $ref: '#/components/parameters/accountRef'
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- name
properties:
name:
type: string
minLength: 1
maxLength: 36
description: Name of the group
example: Engineering Team
description:
type: string
description: Description of the group
example: All engineers
color:
$ref: '#/components/schemas/Color'
responses:
'201':
description: Group successfully created
headers:
Location:
description: URL of the created group
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/Group'
'409':
description: A group with the same name already exists on this account
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
status: 409
title: Conflict
detail: Group name 'Engineering Team' already exists
4XX:
$ref: '#/components/responses/UnexpectedError'
x-codeSamples:
- lang: cURL
source: "export TOKEN=...\nexport ACCOUNTUUID=...\n\ncurl --url \"https://aec.cintoo.com/api/2/accounts/$ACCOUNTUUID/groups\" \\\n --header \"Authorization: Bearer $TOKEN\" \\\n --header \"Content-Type: application/json\" \\\n --data '{\"name\": \"Engineering Team\", \"description\": \"All engineers\", \"color\": \"#ff0000\"}'\n"
- lang: Python
source: "import requests\n\nhost = \"aec.cintoo.com\"\naccountUUID = \"...\"\ntoken = \"...\"\n\nresponse = requests.post(\n \"https://%s/api/2/accounts/%s/groups\"\n % (host, accountUUID),\n headers = { \"Authorization\": \"Bearer %s\" % token},\n json = {\"name\": \"Engineering Team\", \"description\": \"All engineers\", \"color\": \"#ff0000\"}\n)\nprint(response.status_code)\nprint(response.headers.get(\"Location\"))\nprint(response.json())\n"
- lang: TypeScript
source: "const host = \"aec.cintoo.com\";\nconst accountUUID = \"...\";\nconst token = \"...\";\n\nconst url = `https://${host}/api/2/accounts/${accountUUID}/groups`;\nconst res = await fetch(url, {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${token}`,\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n name: \"Engineering Team\",\n description: \"All engineers\",\n color: \"#ff0000\",\n }),\n});\n\nconsole.log(res.status);\nconsole.log(res.headers.get(\"Location\"));\nconst data = await res.json();\nconsole.log(data);\n"
/api/2/accounts/{accountRef}/groups/{groupRef}:
get:
summary: Get group
operationId: getGroup
description: 'BETAGet a group details.
Requires the permission `account:groups:read` on the account.'
tags:
- Group
parameters:
- $ref: '#/components/parameters/accountRef'
- $ref: '#/components/parameters/groupRef'
responses:
'200':
description: Content of the requested Group
content:
application/json:
schema:
$ref: '#/components/schemas/Group'
4XX:
$ref: '#/components/responses/UnexpectedError'
x-codeSamples:
- lang: cURL
source: "export TOKEN=...\nexport ACCOUNTUUID=...\nexport GROUPUUID=...\n\ncurl --url \"https://aec.cintoo.com/api/2/accounts/$ACCOUNTUUID/groups/$GROUPUUID\" \\\n --header \"Authorization: Bearer $TOKEN\"\n"
- lang: Python
source: "import requests\n\nhost = \"aec.cintoo.com\"\naccountUUID = \"...\"\ngroupUUID = \"...\"\ntoken = \"...\"\n\nresponse = requests.get(\n \"https://%s/api/2/accounts/%s/groups/%s\"\n % (host, accountUUID, groupUUID),\n headers = { \"Authorization\": \"Bearer %s\" % token}\n)\nprint(response.status_code)\nprint(response.json())\n"
- lang: TypeScript
source: "const host = \"aec.cintoo.com\";\nconst accountUUID = \"...\";\nconst groupUUID = \"...\";\nconst token = \"...\";\n\nconst url = `https://${host}/api/2/accounts/${accountUUID}/groups/${groupUUID}`;\nconst res = await fetch(url, {\n headers: {\n \"Authorization\": `Bearer ${token}`,\n },\n});\n\nconsole.log(res.status);\nconst data = await res.json();\nconsole.log(data);\n"
delete:
summary: Delete group
operationId: deleteGroup
description: 'BETADelete a group from this account.
Requires the permission `account:groups:write` on the account.'
tags:
- Group
parameters:
- $ref: '#/components/parameters/accountRef'
- $ref: '#/components/parameters/groupRef'
responses:
'204':
description: Group successfully deleted
4XX:
$ref: '#/components/responses/UnexpectedError'
x-codeSamples:
- lang: cURL
source: "export TOKEN=...\nexport ACCOUNTUUID=...\nexport GROUPUUID=...\n\ncurl --url \"https://aec.cintoo.com/api/2/accounts/$ACCOUNTUUID/groups/$GROUPUUID\" \\\n --header \"Authorization: Bearer $TOKEN\" \\\n --request DELETE\n"
- lang: Python
source: "import requests\n\nhost = \"aec.cintoo.com\"\naccountUUID = \"...\"\ngroupUUID = \"...\"\ntoken = \"...\"\n\nresponse = requests.delete(\n \"https://%s/api/2/accounts/%s/groups/%s\"\n % (host, accountUUID, groupUUID),\n headers = { \"Authorization\": \"Bearer %s\" % token}\n)\nprint(response.status_code)\n"
- lang: TypeScript
source: "const host = \"aec.cintoo.com\";\nconst accountUUID = \"...\";\nconst groupUUID = \"...\";\nconst token = \"...\";\n\nconst url = `https://${host}/api/2/accounts/${accountUUID}/groups/${groupUUID}`;\nconst res = await fetch(url, {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${token}`,\n },\n});\n\nconsole.log(res.status);\n"
/api/2/accounts/{accountRef}/groups/{groupRef}/members:
post:
summary: Add users to a group
operationId: addUsersToGroup
description: BETAAdd a list of users to a group
tags:
- Group
parameters:
- $ref: '#/components/parameters/accountRef'
- $ref: '#/components/parameters/groupRef'
requestBody:
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/UserRef'
responses:
'200':
description: new state of the modified group
content:
application/json:
schema:
$ref: '#/components/schemas/Group'
4XX:
$ref: '#/components/responses/UnexpectedError'
x-codeSamples:
- lang: cURL
source: "export TOKEN=...\nexport ACCOUNTUUID=...\nexport GROUPUUID=...\n\ncurl --request POST --url \"https://aec.cintoo.com/api/2/accounts/$ACCOUNTUUID/groups/$GROUPUUID/members\" \\\n --header \"Authorization: Bearer $TOKEN\" \\\n --header \"Content-Type: application/json\" \\\n --data \"[\\\"userRef1\\\", \\\"userRef2\\\"]\"\n"
- lang: Python
source: "import requests\n\nhost = \"aec.cintoo.com\"\naccountUUID = \"...\"\ngroupUUID = \"...\"\ntoken = \"...\"\n\nresponse = requests.post(\n \"https://%s/api/2/accounts/%s/groups/%s/members\"\n % (host, accountUUID, groupUUID),\n headers = { \"Authorization\": \"Bearer %s\" % token },\n json = [\"userRef1\", \"userRef2\"]\n)\nprint(response.status_code)\nprint(response.json())\n"
- lang: TypeScript
source: "const host = \"aec.cintoo.com\";\nconst accountUUID = \"...\";\nconst groupUUID = \"...\";\nconst token = \"...\";\n\nconst url = `https://${host}/api/2/accounts/${accountUUID}/groups/${groupUUID}/members`;\nconst res = await fetch(url, {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${token}`,\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(\n [\"userRef1\", \"userRef2\"]\n ),\n});\n\nconsole.log(res.status);\nconst data = await res.json();\nconsole.log(data);\n"
delete:
summary: Remove users from a group
operationId: removeUsersFromGroup
description: BETARemoves a list of users from a group
tags:
- Group
parameters:
- $ref: '#/components/parameters/accountRef'
- $ref: '#/components/parameters/groupRef'
requestBody:
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/UserRef'
responses:
'200':
description: new state of the modified group
content:
application/json:
schema:
$ref: '#/components/schemas/Group'
'400':
description: users not in the group
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ErrorBadRequest'
- type: object
properties:
errorCode:
type: string
description: '* `users-not-in-groups` some of the users were in not in the group
'
errorValues:
type: object
properties:
users:
type: string
description: list of the users that were not in the group
4XX:
$ref: '#/components/responses/UnexpectedError'
x-codeSamples:
- lang: cURL
source: "export TOKEN=...\nexport ACCOUNTUUID=...\nexport GROUPUUID=...\n\ncurl --request DELETE --url \"https://aec.cintoo.com/api/2/accounts/$ACCOUNTUUID/groups/$GROUPUUID/members\" \\\n --header \"Authorization: Bearer $TOKEN\" \\\n --header \"Content-Type: application/json\" \\\n --data \"[\\\"userRef1\\\", \\\"userRef2\\\"]\"\n"
- lang: Python
source: "import requests\n\nhost = \"aec.cintoo.com\"\naccountUUID = \"...\"\ngroupUUID = \"...\"\ntoken = \"...\"\n\nresponse = requests.delete(\n \"https://%s/api/2/accounts/%s/groups/%s/members\"\n % (host, accountUUID, groupUUID),\n headers = { \"Authorization\": \"Bearer %s\" % token },\n json = [\"userRef1\", \"userRef2\"]\n)\nprint(response.status_code)\nprint(response.json())\n"
- lang: TypeScript
source: "const host = \"aec.cintoo.com\";\nconst accountUUID = \"...\";\nconst groupUUID = \"...\";\nconst token = \"...\";\n\nconst url = `https://${host}/api/2/accounts/${accountUUID}/groups/${groupUUID}/members`;\nconst res = await fetch(url, {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${token}`,\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(\n [\"userRef1\", \"userRef2\"]\n ),\n});\n\nconsole.log(res.status);\nconst data = await res.json();\nconsole.log(data);\n"
components:
schemas:
AccountId:
allOf:
- $ref: '#/components/schemas/Uuid'
example: 8196e320-8a4d-4d29-b0a9-077cd7ed3368
Group:
type: object
required:
- id
- type
- api1Id
- name
- description
- color
- createdAt
- createdBy
- updatedAt
- userIds
- accountIds
x-tags:
- Group
properties:
id:
readOnly: true
$ref: '#/components/schemas/GroupUrn'
type:
type: string
enum:
- group
name:
type: string
example: group
description:
type: string
example: group description
color:
$ref: '#/components/schemas/Color'
createdAt:
type:
- string
- 'null'
allOf:
- $ref: '#/components/schemas/DateTime'
createdBy:
$ref: '#/components/schemas/UserUrn'
updatedAt:
type:
- string
- 'null'
allOf:
- $ref: '#/components/schemas/DateTime'
userIds:
type: array
items:
$ref: '#/components/schemas/UserUrn'
accountIds:
type: array
items:
$ref: '#/components/schemas/AccountUrn'
Error:
type: object
required:
- status
- title
properties:
status:
type: integer
format: int32
title:
type: string
detail:
type: string
description: human readable description of the error in english
errorCode:
type: string
description: detailed code describing error, can be used to map to a localized message
errorValues:
type: object
description: values implied in the error, typically an input parameter, can be used to include in a localized message
UserUrn:
type: string
description: '"urn:cintoo:user:" followed by an UUIDv4
'
GroupRef:
oneOf:
- $ref: '#/components/schemas/GroupUrn'
- $ref: '#/components/schemas/GroupId'
GroupUrn:
type: string
description: '"urn:cintoo:group:" followed by an UUIDv4
'
ErrorBadRequest:
type: object
required:
- status
- title
properties:
status:
type: integer
format: int32
enum:
- 400
title:
type: string
enum:
- Bad Request
detail:
type: string
description: human readable description of the error in english
UserRef:
oneOf:
- $ref: '#/components/schemas/UserUrn'
- $ref: '#/components/schemas/UserId'
UserId:
allOf:
- $ref: '#/components/schemas/Uuid'
example: 8196e320-8a4d-4d29-b0a9-077cd7ed3368
GroupId:
allOf:
- $ref: '#/components/schemas/Uuid'
example: 8196e320-8a4d-4d29-b0a9-077cd7ed3368
AccountUrn:
type: string
description: '"urn:cintoo:account:" followed by an UUIDv4
'
Uuid:
type: string
description: UUIDv4
format: uuid
example: 156fff1a-0ef7-4335-891a-627928a19e29
DateTime:
type: string
format: date-time
description: 'The date-time notation as defined by RFC 3339, section 5.6 (ex: 2017-08-18T12:41:31Z)'
example: '2017-08-18T12:41:31Z'
Color:
type: string
pattern: ^#[0-9a-f]{6}$
example: '#0698ec'
parameters:
accountRef:
name: accountRef
in: path
required: true
description: The Id or Urn of the account
schema:
oneOf:
- $ref: '#/components/schemas/AccountUrn'
- $ref: '#/components/schemas/AccountId'
groupRef:
name: groupRef
in: path
required: true
description: The Id or Urn of the group
schema:
$ref: '#/components/schemas/GroupRef'
responses:
UnexpectedError:
description: unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
'400':
value:
status: 400
title: Bad Request
'401':
value:
status: 401
title: Unauthorized
'403':
value:
status: 403
title: Forbidden
'404':
value:
status: 404
title: Not Found
'405':
value:
status: 405
title: Method Not Allowed
'406':
value:
status: 406
title: Not Acceptable
securitySchemes:
oauth2:
type: oauth2
flows:
authorizationCode:
authorizationUrl: https://aec.cintoo.com/oauth/authorize
tokenUrl: https://aec.cintoo.com/oauth/token
scopes: {}
refreshUrl: https://aec.cintoo.com/oauth/token
x-tagGroups:
- name: General
tags:
- errors_list
- internal_information
- token_management
- Permissions
- Authentication
- name: Resources
tags:
- Resources
- name: Tenant
tags:
- Tenant
- name: Account
tags:
- Account
- Subscription
- Role
- User
- Group
- Trusted Device
- name: Subscription
tags:
- Usage Report
- name: Project
tags:
- Project
- Members
- Workzone
- name: Project Data
tags:
- File
- Annotation
- Saved View
- Share Link
- Crop
- Measurement
- Tag List
- Tag
- name: Jobs
tags:
- Progress Monitoring
- Import Model
- Export Scene
- Segmentation
- Video360
- Import IDD
- name: Integrations
tags:
- Integrations
- Konekt
- Autodesk
- Procore
- name: Tutorials
tags:
- tuto_upload_file
- understand_tag_data