Fresnel Software Auth API

The Auth API from Fresnel Software — 11 operation(s) for auth.

Operations 23

GET /auth/permissions/ List Permissions #
POST /auth/permissions/ Create Permission #
GET /auth/permissions/{id}/ Get Permission #
PUT /auth/permissions/{id}/ Update Permission #
PATCH /auth/permissions/{id}/ Patch Permission #
DELETE /auth/permissions/{id}/ Delete Permission #
GET /auth/security_groups/ List Security Groups #
POST /auth/security_groups/ Create Security Group #
GET /auth/security_groups/{id}/ Get Security Group #
PUT /auth/security_groups/{id}/ Update Security Group #
PATCH /auth/security_groups/{id}/ Patch Security Group #
DELETE /auth/security_groups/{id}/ Delete Security Group #
POST /auth/token/obtain Obtain JWT #
POST /auth/token/refresh Refresh JWT #
POST /auth/token/verify Verify JWT #
GET /auth/user_info Get Current User Info #
GET /auth/users/ List Accounts #
POST /auth/users/ Create Account #
GET /auth/users/{id}/ Retrieve Account #
PUT /auth/users/{id}/ Update Account #
PATCH /auth/users/{id}/ Partial Update Account #
DELETE /auth/users/{id}/ Delete Account #
GET /auth/v1/workato_embedded_url Get integration engine url #

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/vitruvi:vitruvi-auth-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

vitruvi-auth-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Vitruvi API Documentation Auth API
  version: 1.0.0
  description: Vitruvi API reference documentation.
servers:
- url: https://{workspace}.api.vitruvi.cc
  variables:
    workspace:
      default: demo
      description: The name of the workspace to connect to
tags:
- name: Auth
paths:
  /auth/permissions/:
    get:
      operationId: list_permissions
      description: Returns a list of all permissions.
      summary: List Permissions
      parameters:
      - in: query
        name: codename
        schema:
          type: string
      - name: filter_expression
        required: false
        in: query
        description: A generic expression to filter the list with.
        schema:
          type: string
      - in: query
        name: group
        schema:
          type: array
          items:
            type: integer
        explode: true
        style: form
      - in: query
        name: limit
        schema:
          type: integer
          default: 1000
        description: The number of records returned in the single call. See [API Paging](https://developers.vitruvi.cc/docs/paging).
      - in: query
        name: offset
        schema:
          type: integer
          default: 0
        description: The number of records to skip. The offset value is usually equal to the page_number * limit. See [API Paging](https://developers.vitruvi.cc/docs/paging).
      - in: query
        name: ordering
        schema:
          type: string
        description: The name of the fields to order the results by. Multiple columns can be specified as a comma separated list (i.e. id,name). Columns can also be ordered in descending order by prefixing with a hyphen (i.e. -id).
      - in: query
        name: search
        schema:
          type: string
        description: 'A term that will be (case-insensitive) searched for in each of the fields: (''name'', ''codename'')'
      tags:
      - Auth
      security:
      - basicAuth: []
      - jwtAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedPermissionList'
          description: ''
      x-internal: false
      x-vitruvi-sdk: true
    post:
      operationId: create_permission
      description: Create a new permission record.
      summary: Create Permission
      tags:
      - Auth
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Permission'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Permission'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Permission'
        required: true
      security:
      - basicAuth: []
      - jwtAuth: []
      - tokenAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Permission'
          description: ''
      x-internal: false
      x-vitruvi-sdk: true
  /auth/permissions/{id}/:
    get:
      operationId: get_permission
      description: Get the permission record details by its id.
      summary: Get Permission
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this permission.
        required: true
      tags:
      - Auth
      security:
      - basicAuth: []
      - jwtAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Permission'
          description: ''
      x-internal: false
      x-vitruvi-sdk: true
    put:
      operationId: update_permission
      description: Update the entire permission record details by its id.
      summary: Update Permission
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this permission.
        required: true
      tags:
      - Auth
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Permission'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Permission'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Permission'
        required: true
      security:
      - basicAuth: []
      - jwtAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Permission'
          description: ''
      x-internal: false
      x-vitruvi-sdk: true
    patch:
      operationId: patch_permission
      description: Partial update the permission record details by its id.
      summary: Patch Permission
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this permission.
        required: true
      tags:
      - Auth
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedPermission'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedPermission'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedPermission'
      security:
      - basicAuth: []
      - jwtAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Permission'
          description: ''
      x-internal: false
      x-vitruvi-sdk: true
    delete:
      operationId: delete_permission
      description: Delete the permission record details by its id.
      summary: Delete Permission
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this permission.
        required: true
      tags:
      - Auth
      security:
      - basicAuth: []
      - jwtAuth: []
      - tokenAuth: []
      responses:
        '204':
          description: No response body
      x-internal: false
      x-vitruvi-sdk: true
  /auth/security_groups/:
    get:
      operationId: list_security_groups
      description: Returns a list of all security groups.
      summary: List Security Groups
      parameters:
      - name: filter_expression
        required: false
        in: query
        description: A generic expression to filter the list with.
        schema:
          type: string
      - in: query
        name: limit
        schema:
          type: integer
          default: 1000
        description: The number of records returned in the single call. See [API Paging](https://developers.vitruvi.cc/docs/paging).
      - in: query
        name: offset
        schema:
          type: integer
          default: 0
        description: The number of records to skip. The offset value is usually equal to the page_number * limit. See [API Paging](https://developers.vitruvi.cc/docs/paging).
      - in: query
        name: ordering
        schema:
          type: string
        description: The name of the fields to order the results by. Multiple columns can be specified as a comma separated list (i.e. id,name). Columns can also be ordered in descending order by prefixing with a hyphen (i.e. -id).
      - in: query
        name: permissions
        schema:
          type: array
          items:
            type: integer
        explode: true
        style: form
      - in: query
        name: search
        schema:
          type: string
        description: 'A term that will be (case-insensitive) searched for in each of the fields: (''name'',)'
      tags:
      - Auth
      security:
      - basicAuth: []
      - jwtAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedRoleList'
          description: ''
      x-internal: false
      x-vitruvi-sdk: true
    post:
      operationId: create_security_group
      description: Create a new security group record.
      summary: Create Security Group
      tags:
      - Auth
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Role'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Role'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Role'
        required: true
      security:
      - basicAuth: []
      - jwtAuth: []
      - tokenAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Role'
          description: ''
      x-internal: false
      x-vitruvi-sdk: true
  /auth/security_groups/{id}/:
    get:
      operationId: get_security_group
      description: Get the security group record details by its id.
      summary: Get Security Group
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this group.
        required: true
      tags:
      - Auth
      security:
      - basicAuth: []
      - jwtAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Role'
          description: ''
      x-internal: false
      x-vitruvi-sdk: true
    put:
      operationId: update_security_group
      description: Update the entire security group record details by its id.
      summary: Update Security Group
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this group.
        required: true
      tags:
      - Auth
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Role'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Role'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Role'
        required: true
      security:
      - basicAuth: []
      - jwtAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Role'
          description: ''
      x-internal: false
      x-vitruvi-sdk: true
    patch:
      operationId: patch_security_group
      description: Partial update the security group record details by its id.
      summary: Patch Security Group
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this group.
        required: true
      tags:
      - Auth
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedRole'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedRole'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedRole'
      security:
      - basicAuth: []
      - jwtAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Role'
          description: ''
      x-internal: false
      x-vitruvi-sdk: true
    delete:
      operationId: delete_security_group
      description: Delete the security group record details by its id.
      summary: Delete Security Group
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this group.
        required: true
      tags:
      - Auth
      security:
      - basicAuth: []
      - jwtAuth: []
      - tokenAuth: []
      responses:
        '204':
          description: No response body
      x-internal: false
      x-vitruvi-sdk: true
  /auth/token/obtain:
    post:
      operationId: obtain_token
      description: 'API View that receives a POST with a user''s email and password.


        Returns a JSON Web Token that can be used for authenticated requests.'
      summary: Obtain JWT
      tags:
      - Auth
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WebToken'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/WebToken'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/WebToken'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserInfo'
          description: ''
      x-internal: false
      x-vitruvi-sdk: true
  /auth/token/refresh:
    post:
      operationId: refresh_token
      description: API View that returns a refreshed token (with new expiration) based on existing token.
      summary: Refresh JWT
      tags:
      - Auth
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RefreshToken'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/RefreshToken'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/RefreshToken'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RefreshToken'
          description: ''
      x-internal: false
      x-vitruvi-sdk: true
  /auth/token/verify:
    post:
      operationId: verify_token
      description: API View that checks the veracity of a token, returning the token if it is valid.
      summary: Verify JWT
      tags:
      - Auth
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VerifyJSONWebToken'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/VerifyJSONWebToken'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/VerifyJSONWebToken'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VerifyJSONWebToken'
          description: ''
      x-internal: false
      x-vitruvi-sdk: true
  /auth/user_info:
    get:
      operationId: current_user_info
      description: Returns the current logged in user information including their profile and permissions.
      summary: Get Current User Info
      tags:
      - Auth
      security:
      - basicAuth: []
      - jwtAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserInfo'
          description: ''
      x-internal: false
      x-vitruvi-sdk: true
  /auth/users/:
    get:
      operationId: list_auth_users
      description: Returns a list of all accounts.
      summary: List Accounts
      parameters:
      - name: filter_expression
        required: false
        in: query
        description: A generic expression to filter the list with.
        schema:
          type: string
      - in: query
        name: is_active
        schema:
          type: boolean
      - in: query
        name: is_staff
        schema:
          type: boolean
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - name: search
        required: false
        in: query
        description: A search term.
        schema:
          type: string
      tags:
      - Auth
      security:
      - basicAuth: []
      - jwtAuth: []
      - tokenAuth: []
      deprecated: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedAccountList'
          description: ''
      x-internal: false
      x-vitruvi-sdk: false
    post:
      operationId: create_auth_users
      description: Creates a new account record.
      summary: Create Account
      tags:
      - Auth
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Account'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Account'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Account'
        required: true
      security:
      - basicAuth: []
      - jwtAuth: []
      - tokenAuth: []
      deprecated: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Account'
          description: ''
      x-internal: false
      x-vitruvi-sdk: false
  /auth/users/{id}/:
    get:
      operationId: get_auth_users
      description: Retrieve account record using the parameter criteria.
      summary: Retrieve Account
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this account.
        required: true
      tags:
      - Auth
      security:
      - basicAuth: []
      - jwtAuth: []
      - tokenAuth: []
      deprecated: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Account'
          description: ''
      x-internal: false
      x-vitruvi-sdk: false
    put:
      operationId: update_auth_users
      description: Update account record using the parameter criteria.
      summary: Update Account
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this account.
        required: true
      tags:
      - Auth
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Account'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Account'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Account'
        required: true
      security:
      - basicAuth: []
      - jwtAuth: []
      - tokenAuth: []
      deprecated: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Account'
          description: ''
      x-internal: false
      x-vitruvi-sdk: false
    patch:
      operationId: patch_auth_users
      description: Partial update account record using the parameter criteria.
      summary: Partial Update Account
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this account.
        required: true
      tags:
      - Auth
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedAccount'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedAccount'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedAccount'
      security:
      - basicAuth: []
      - jwtAuth: []
      - tokenAuth: []
      deprecated: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Account'
          description: ''
      x-internal: false
      x-vitruvi-sdk: false
    delete:
      operationId: delete_auth_users
      description: Delete account record using the parameter criteria.
      summary: Delete Account
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this account.
        required: true
      tags:
      - Auth
      security:
      - basicAuth: []
      - jwtAuth: []
      - tokenAuth: []
      deprecated: true
      responses:
        '204':
          description: No response body
      x-internal: false
      x-vitruvi-sdk: false
  /auth/v1/workato_embedded_url:
    get:
      operationId: get_integration_engine_url
      tags:
      - Auth
      security:
      - basicAuth: []
      - jwtAuth: []
      - tokenAuth: []
      responses:
        '200':
          description: No response body
      x-internal: false
      x-vitruvi-sdk: false
      summary: Get integration engine url
      x-summary-source: derived
components:
  schemas:
    BlankEnum:
      enum:
      - ''
    Role:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 150
        permissions:
          type: array
          items:
            type: integer
      required:
      - id
      - name
    PatchedPermission:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 255
        codename:
          type: string
          maxLength: 100
    PatchedAccount:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        date_joined:
          type: string
          format: date-time
        email:
          type: string
          format: email
          title: Email address
          maxLength: 254
        first_name:
          type:
          - string
          - 'null'
          maxLength: 255
        last_name:
          type:
          - string
          - 'null'
          maxLength: 255
        profile:
          $ref: '#/components/schemas/Profile'
    PaginatedRoleList:
      type: object
      properties:
        count:
          type: integer
          example: 123
        next:
          type:
          - string
          - 'null'
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type:
          - string
          - 'null'
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/Role'
    CompanyTypeEnum:
      enum:
      - 'NO'
      - EPC
      - SC
      type: string
      description: '* `NO` - NO

        * `EPC` - EPC

        * `SC` - SC'
    VerifyJSONWebToken:
      type: object
      description: Check the veracity of an access token.
      properties:
        token:
          type: string
      required:
      - token
    WebToken:
      type: object
      description: 'Serializer class used to validate a username and password.


        ''username'' is identified by the custom UserModel.USERNAME_FIELD.


        Returns a JSON Web Token that can be used to authenticate later calls.'
      properties:
        email:
          type: string
        password:
          type: string
          writeOnly: true
      required:
      - email
      - password
    RefreshToken:
      type: object
      description: Refresh an access token.
      properties:
        token:
          type: string
      required:
      - token
    FullCrewPersonRole:
      type: object
      properties:
        crew:
          type: integer
          readOnly: true
        crew_name:
          type: string
          readOnly: true
        role:
          type: integer
          readOnly: true
        role_name:
          type: string
          readOnly: true
      required:
      - crew
      - crew_name
      - role
      - role_name
    Account:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        date_joined:
          type: string
          format: date-time
        email:
          type: string
          format: email
          title: Email address
          maxLength: 254
        first_name:
          type:
          - string
          - 'null'
          maxLength: 255
        last_name:
          type:
          - string
          - 'null'
          maxLength: 255
        profile:
          $ref: '#/components/schemas/Profile'
      required:
      - email
      - id
      - profile
    UserInfo:
      type: object
      properties:
        token:
          type: string
        refresh_token:
          type: string
        user:
          type: object
          additionalProperties: {}
        modules:
          type: array
          items:
            type: string
        permissions:
          type: string
      required:
      - modules
      - permissions
      - refresh_token
      - token
      - user
    PaginatedAccountList:
      type: object
      properties:
        count:
          type: integer
          example: 123
        next:
          type:
          - string
          - 'null'
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type:
          - string
          - 'null'
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/Account'
    PatchedRole:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 150
        permissions:
          type: array
          items:
            type: integer
    PaginatedPermissionList:
      type: object
      properties:
        count:
          type: integer
          example: 123
        next:
          type:
          - string
          - 'null'
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type:
          - string
          - 'null'
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/Permission'
    UserTierEnum:
      enum:
      - Office User
      - Field User
      - Read Only
      - Support
      - Service
      - No Login
      type: string
      description: '* `Office User` - Office User

        * `Field User` - Field User

        * `Read Only` - Read Only

        * `Support` - Support

        * `Service` - Service

        * `No Login` - No Login'
    Permission:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 255
        codename:
          type: string
          maxLength: 100
      required:
      - codename
      - id
      - name
    Profile:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        email:
          type: string
        password:
          type: string
          writeOnly: true
        first_name:
          type: string
        last_name:
          type: string
        full_name:
          type: string
          readOnly: true
        avatar:
          type:
          - string
          - 'null'
          format: uri
        account:
          type: integer
          readOnly: true
        city:
          type:
          - string
          - 'null'
          maxLength: 30
        region:
          type:
          - string
          - 'null'
          maxLength: 30
        country:
          type:
          - string
          - 'null'
          maxLength: 30
        address1:
          type:
          - string
          - 'null'
          maxLength: 255
        address2:
          type:
          - string
          - 'null'
          maxLength: 255
        post_code:
          type:
          - string
          - 'null'
          maxLength: 10
        phone1:
          type:
          - string
          - 'null'
          maxLength: 20
        phone2:
          type:
          - string
          - 'null'
          maxLength: 20
        division:
          type:
          - string
          - 'null'
          maxLength: 30
        notes:
          type:
          - string
          - 'null'
          maxLength: 65535
        roles:
          type: array
          items:
            type: integer
        role_names:
          type: string
          readOnly: true
        company:
          type: integer
        company_name:
          type: string
          readOnly: true
        company_type:
          allOf:
          - $ref: '#/components/schemas/CompanyTypeEnum'
          readOnly: true
        qualifications:
          type: array
          items:
            type: integer
        assigned_crews:
          type: array
          items:
            $ref: '#/components/schemas/FullCrewPersonRole'
          readOnly: true
        supervisor_full_name:
          type: string
          readOnly: true
        supervisor:
          type:
          - integer
          - 'null'
        employee_id:
          type:
          - string
          - 'null'
          maxLength: 16
        crew_leads:
          type: array
          items:
            type: integer
          readOnly: true
        related_crews_names:
          type: string
          readOnly: true
        user_tier:
          oneOf:
          - $ref: '#/components/schemas/UserTierEnum'
          - $ref: '#/components/schemas/BlankEnum'
        full_name_with_email:
          type: string
          readOnly: true
        supervisor_full_name_with_email:
          type: string
          readOnly: true
        is_active:
          type: boolean
          title: Active
          description: Designates whether this user should be treated as active. Unselect this instead of deleting accounts.
          readOnly: true
        show_coded_labor_material_only:
          type: boolean
          readOnly: true
      required:
      - account
      - assigned_crews
      - company_name
      - company_type
      - crew_leads
      - email
      - first_name
      - full_name
      - full_name_with_email
      - id
      - is_active
      - last_name
      - related_crews_names
      - role_names
      - show_coded_labor_material_only
      - supervisor_full_name
      - supervisor_full_name_with_email
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
    jwtAuth:
      type: apiKey
      in: header
      name: Authorization
      description: Token-based authentication with required prefix "JWT"
    tokenAuth:
      type: http
      scheme: bearer
x-provenance:
  method: searched
  source: https://developers.vitruvi.cc/reference
  harvested: '2026-10-19'
  tool: harvest-readme-openapi.py
  note: Assembled verbatim from the OpenAPI definition ReadMe embeds in each operation page of the provider's developer portal; paths and components merged by API title, nothing authored.
  assembled_from:
  - https://developers.vitruvi.cc/reference/accounts_payable_items_export.md
  - https://developers.vitruvi.cc/reference/accounts_receivable_items_export.md
  - https://developers.vitruvi.cc/reference/api_v1_aggregation_design_elements_files_retrieve.md
  - https://developers.vitruvi.cc/reference/api_v1_aggregation_mobile_filter_options_retrieve.md


# --- truncated at 32 KB (114 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/vitruvi/refs/heads/main/openapi/vitruvi-auth-api-openapi.yml