Cintoo Account API

The Account API from Cintoo — 4 operation(s) for account.

Operations 4

GET /api/2/accounts List accounts #
GET /api/2/accounts/{accountRef} Get account #
DELETE /api/2/accounts/{accountRef}/members Remove users from an account #
PUT /api/2/accounts/{accountRef}/members/{userRef}/roles Update the account roles of a user #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/cintoo-account-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

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 Specification

cintoo-account-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 2.0.0
  title: Cintoo Open Account 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: Account
paths:
  /api/2/accounts:
    get:
      summary: List accounts
      operationId: getAccounts
      description: BETAList available accounts for the current user
      tags:
      - Account
      responses:
        '200':
          description: List and content of the Accounts
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Account'
        4XX:
          $ref: '#/components/responses/UnexpectedError'
      x-codeSamples:
      - lang: cURL
        source: "export TOKEN=...\n\ncurl --url \"https://aec.cintoo.com/api/2/accounts\" \\\n  --header \"Authorization: Bearer $TOKEN\"\n"
      - lang: Python
        source: "import requests\n\nhost = \"aec.cintoo.com\"\ntoken = \"...\"\n\nresponse = requests.get(\n  \"https://%s/api/2/accounts\" % host,\n  headers = { \"Authorization\": \"Bearer %s\" % token}\n)\nprint(response.status_code)\nprint(response.json())\n"
      - lang: TypeScript
        source: "const host = \"aec.cintoo.com\";\nconst token = \"...\";\n\nconst url = `https://${host}/api/2/accounts`;\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"
  /api/2/accounts/{accountRef}:
    get:
      summary: Get account
      operationId: getAccount
      description: 'BETAGet an account details


        Requires the permission `account:account:read` on the account (in other words to be a member of the account).'
      tags:
      - Account
      parameters:
      - $ref: '#/components/parameters/accountRef'
      responses:
        '200':
          description: Content of the requested Account
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Account'
        4XX:
          $ref: '#/components/responses/UnexpectedError'
      x-codeSamples:
      - lang: cURL
        source: 'export TOKEN=...

          export ACCOUNTUUID=...


          curl --url "https://aec.cintoo.com/api/2/accounts/$ACCOUNTUUID" --header "Authorization: Bearer $TOKEN"

          '
      - lang: Python
        source: "import requests\n\nhost = \"aec.cintoo.com\"\naccountUUID = \"...\"\ntoken = \"...\"\n\nresponse = requests.get(\n  \"https://%s/api/2/accounts/%s\" % (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}`;\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"
  /api/2/accounts/{accountRef}/members:
    delete:
      summary: Remove users from an account
      operationId: removeUsersFromAccount
      description: 'BETARemove users from an account


        Requires to be either owner, administrator or manager of the account.


        Notes:

        - The Account Owner cannot be removed from the account. An account cannot be orphaned.

        - Project Owners cannot be removed from the account. Projects cannot be orphaned.'
      tags:
      - Account
      parameters:
      - $ref: '#/components/parameters/accountRef'
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/UserUrn'
              example:
              - userRef1
              - userRef2
      responses:
        '204':
          description: The users were successfully removed from the account
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ErrorForbidden'
                - type: object
                  properties:
                    errorCode:
                      type: string
                      description: '* `remove-user-from-account-forbidden`

                        '
              examples:
                remove-user-from-account-forbidden:
                  value:
                    status: 403
                    title: Forbidden
                    detail: You do not have the permission to remove users from this account. It requires to be owner, administrator or manager of the account
                    errorCode: remove-user-from-account-forbidden
                remove-owner-from-account-forbidden:
                  value:
                    status: 403
                    title: Forbidden
                    detail: Account Owner cannot be removed from the account. An account must always have a owner.
                    errorCode: delete-account-owner-forbidden
                    errorValues:
                    - user: ownerId
        4XX:
          $ref: '#/components/responses/UnexpectedError'
      x-codeSamples:
      - lang: cURL
        source: "export TOKEN=...\nexport ACCOUNTID=...\nexport USERID=...\n\ncurl --request DELETE --url \"https://aec.cintoo.com/api/2/accounts/$ACCOUNTID/members\" \\\n  --header \"Authorization: Bearer $TOKEN\" \\\n  --header \"Content-Type: application/json\" \\\n  --data '[ \"$USERID\" ]'\n"
      - lang: Python
        source: "import requests\n\nhost = \"aec.cintoo.com\"\naccountID = \"...\"\nuserId = \"...\"\ntoken = \"...\"\n\nresponse = requests.delete(\n  \"https://%s/api/2/accounts/%s/members\" % (host, accountID),\n  headers = { \"Authorization\": \"Bearer %s\" % token},\n  json = [ userId ]\n)\nprint(response.status_code)\n"
      - lang: TypeScript
        source: "const host = \"aec.cintoo.com\";\nconst accountId = \"...\";\nconst token = \"...\";\nconst userId = \"...\";\n\nconst url = `https://${host}/api/2/accounts/${accountId}/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    [ userId ]\n  ),\n});\n\nconsole.log(res.status);\nif (res.status !== 204) {\n  const data = await res.json();\n  console.log(data);\n}\n"
  /api/2/accounts/{accountRef}/members/{userRef}/roles:
    put:
      summary: Update the account roles of a user
      operationId: updateUserAccountRoles
      description: 'BETAUpdate the account roles of a user


        Requires to be either owner or administrator of the account.


        To grant/revoke an account role, the permissions are checked:

        - For administrator: `account:administrators:write`

        - For project manager: `account:project-managers:write`

        - For project lister: `account:project-listers:write`'
      tags:
      - Account
      parameters:
      - $ref: '#/components/parameters/accountRef'
      - $ref: '#/components/parameters/userRef'
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/AccountRoles'
      responses:
        '204':
          description: the roles have been correctly updated
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ErrorForbidden'
                - type: object
                  properties:
                    errorCode:
                      type: string
                      description: '* `update-user-account-roles-forbidden`

                        '
              examples:
                update-user-account-roles-forbidden:
                  value:
                    status: 403
                    title: Forbidden
                    detail: You do not have the permission to update user-account-roles
                    errorCode: update-user-account-roles-forbidden
        4XX:
          $ref: '#/components/responses/UnexpectedError'
      x-codeSamples:
      - lang: cURL
        source: "export TOKEN=...\nexport ACCOUNTID=...\nexport USERID=...\n\ncurl --request PUT --url \"https://aec.cintoo.com/api/2/accounts/$ACCOUNTID/members/$USERID/roles\" \\\n  --header \"Authorization: Bearer $TOKEN\" \\\n  --header \"Content-Type: application/json\" \\\n  --data '[\"administrator\", \"projectManager\", \"projectLister\"]'\n"
      - lang: Python
        source: "import requests\n\nhost = \"aec.cintoo.com\"\naccountID = \"...\"\nuserID = \"...\"\ntoken = \"...\"\n\nresponse = requests.put(\n  \"https://%s/api/2/accounts/%s/members/%s/roles\" % (host, accountID, userID),\n  headers = { \"Authorization\": \"Bearer %s\" % token },\n  json = [\"administrator\", \"projectManager\", \"projectLister\"]\n)\nprint(response.status_code)\n"
      - lang: TypeScript
        source: "const host = \"aec.cintoo.com\";\nconst accountId = \"...\";\nconst userId = \"...\";\nconst token = \"...\";\n\nconst url = `https://${host}/api/2/accounts/${accountId}/members/${userId}/roles`;\nconst res = await fetch(url, {\n  method: \"PUT\",\n  headers: {\n    \"Authorization\": `Bearer ${token}`,\n    \"Content-Type\": \"application/json\",\n  },\n  body: JSON.stringify(\n    [\"administrator\", \"projectManager\", \"projectLister\"]\n  ),\n});\n\nconsole.log(res.status);\nif (res.status !== 204) {\n  const data = await res.json();\n  console.log(data);\n}\n"
components:
  schemas:
    AccountRegion:
      type: object
      required:
      - id
      - name
      - provider
      x-tags:
      - Region
      properties:
        id:
          type: string
        name:
          type: string
        provider:
          description: The storage used in this region
          type: string
          enum:
          - azure
          - s3
          - minio
        cloudProvider:
          description: The Cloud Platform managing this region
          type: string
          enum:
          - azure
          - s3
          - gcp
          - minio
        region:
          description: A unique region identifier used by the Cloud Platform
          type: string
        countryCode:
          description: The country in which the region is physically located
          type: string
        hasCdn:
          description: true if a CDN system is enabled with this region
          type: boolean
        selected:
          description: true if the region is available for this account
          type: boolean
        default:
          description: true if this region is the default one for this account
          type: boolean
    UserRef:
      oneOf:
      - $ref: '#/components/schemas/UserUrn'
      - $ref: '#/components/schemas/UserId'
    AccountRoles:
      type: string
      enum:
      - administrator
      - projectLister
      - projectManager
    SubscriptionUrn:
      type: string
      description: '"urn:cintoo:subscription:" followed by an UUIDv4

        '
    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
    AccountUrn:
      type: string
      description: '"urn:cintoo:account:" followed by an UUIDv4

        '
    AccountPermissions:
      type: object
      required:
      - isOwner
      - isAdmin
      - isManager
      - isProjectLister
      properties:
        isOwner:
          type: boolean
        isAdmin:
          type: boolean
        isManager:
          type: boolean
        isProjectLister:
          type: boolean
    UserId:
      allOf:
      - $ref: '#/components/schemas/Uuid'
      example: 8196e320-8a4d-4d29-b0a9-077cd7ed3368
    UserUrn:
      type: string
      description: '"urn:cintoo:user:" followed by an UUIDv4

        '
    Uuid:
      type: string
      description: UUIDv4
      format: uuid
      example: 156fff1a-0ef7-4335-891a-627928a19e29
    Account:
      type: object
      required:
      - id
      - type
      - api1Id
      - name
      - ownerId
      - permissions
      - subscriptions
      - regions
      x-tags:
      - Account
      properties:
        id:
          readOnly: true
          $ref: '#/components/schemas/AccountUrn'
        type:
          type: string
          enum:
          - account
        name:
          type: string
          example: My Account
        createdAt:
          type: string
          allOf:
          - $ref: '#/components/schemas/DateTime'
        updatedAt:
          type: string
          allOf:
          - $ref: '#/components/schemas/DateTime'
        ownerId:
          $ref: '#/components/schemas/UserUrn'
        permissions:
          $ref: '#/components/schemas/AccountPermissions'
        subscriptions:
          type: array
          items:
            $ref: '#/components/schemas/Subscription'
        regions:
          type: array
          items:
            $ref: '#/components/schemas/AccountRegion'
    Subscription:
      type: object
      required:
      - id
      - type
      - api1Id
      - accountId
      - isVa
      - isActive
      - isTrial
      - geoImageCapacity
      - tagCapacity
      - scanCapacity
      x-tags:
      - Subscription
      properties:
        id:
          readOnly: true
          $ref: '#/components/schemas/SubscriptionUrn'
        type:
          type: string
          enum:
          - subscription
        accountId:
          $ref: '#/components/schemas/AccountUrn'
        isVa:
          type: boolean
        isActive:
          type: boolean
        isTrial:
          type: boolean
          description: 'Indicates whether this subscription is a trial (Free Plan).

            '
        name:
          type: string
          example: My Subscription
        start:
          $ref: '#/components/schemas/DateTime'
        end:
          $ref: '#/components/schemas/DateTime'
          description: 'Subscription end date. This property is only included when the requester has the `account:subscriptions:read-sensitive-infos` permission (account owner or administrator).

            '
        tagCapacity:
          type: integer
          example: 50
        geoImageCapacity:
          type: integer
          example: 50
        scanCapacity:
          type: integer
          example: 500
        createdAt:
          $ref: '#/components/schemas/DateTime'
        updatedAt:
          $ref: '#/components/schemas/DateTime'
        inviteAccountOwnerInNewProjects:
          type: boolean
          description: 'When true, the account owner is automatically invited to every new project in the subscription. This property is only included in responses when the requester is the account owner.

            '
    AccountId:
      allOf:
      - $ref: '#/components/schemas/Uuid'
      example: 8196e320-8a4d-4d29-b0a9-077cd7ed3368
    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'
    ErrorForbidden:
      type: object
      required:
      - status
      - title
      properties:
        status:
          type: integer
          format: int32
          enum:
          - 403
        title:
          type: string
          enum:
          - Forbidden
        detail:
          type: string
          description: human readable description of the error in english
  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'
    userRef:
      name: userRef
      in: path
      required: true
      description: The Id or Urn of the user
      schema:
        $ref: '#/components/schemas/UserRef'
  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