TetraScience Tenants API

The Tenants API from TetraScience — 4 operation(s) for tenants.

Operations 6

GET /v1/tenants/{tenantId}/organizations Get all organizations in a tenant
GET /v1/tenants/{tenantId}/users Get all users in a tenant
GET /v1/tenants/{tenantId} Get tenant information
PUT /v1/tenants/{tenantId} Update tenant information
GET /v1/tenants Get list of tenants
POST /v1/tenants Create a new tenant.

Documentation

Specifications

Other Resources

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/tetrascience-tenants-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

tetrascience-tenants-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: TetraScience Data and AI Cloud Access Groups Tenants API
  version: '4.0'
  description: Programmatic access to the TetraScience Scientific Data and AI Platform — manage tenants, organizations, users, roles, agents, integrations, pipelines, files, datasets, schemas, and search across the Tetra Data Platform.
  contact:
    name: TetraScience
    url: https://www.tetrascience.com/
  license:
    name: Proprietary
servers:
- url: https://api.tetrascience.com
  description: Production Server
- url: https://api.tetrascience-uat.com
  description: User Acceptance Server
- url: https://api.tetrascience-dev.com
  description: Development Server
- url: https://api.tetrascience-uat.com
  description: User Acceptabce Server
- url: api.tetrascience.com
security:
- token: []
  orgSlug: []
- orgSlug: []
  tsAuthToken: []
tags:
- name: Tenants
paths:
  /v1/tenants/{tenantId}/organizations:
    get:
      description: Get all organizations in a tenant, needs to be system admin.
      tags:
      - Tenants
      summary: Get all organizations in a tenant
      parameters:
      - $ref: '#/paths/~1v1~1tenants~1%7BtenantId%7D/get/parameters/0'
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id'
                    orgSlug:
                      $ref: '#/paths/~1%7Bsubdomain%7D~1login~1config/get/parameters/0/schema'
                    name:
                      type: string
        '401':
          description: Invalid token
        '403':
          description: Caller is not authorized to perform this action
  /v1/tenants/{tenantId}/users:
    get:
      description: Get all users in a tenant, needs to be org or system admin.
      tags:
      - Tenants
      summary: Get all users in a tenant
      parameters:
      - $ref: '#/paths/~1v1~1tenants~1%7BtenantId%7D/get/parameters/0'
      - name: email
        required: false
        description: Optional email parameter for filtering users
        in: query
        schema:
          type: string
          minLength: 3
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id'
                    firstName:
                      type: string
                      example: John
                    lastName:
                      type: string
                      example: Doe
                    email:
                      $ref: '#/paths/~1login/post/requestBody/content/application~1json/schema/properties/email'
                    status:
                      type: string
                      enum:
                      - active
                      - inactive
        '401':
          description: Invalid token
        '403':
          description: Caller is not authorized to perform this action
  /v1/tenants/{tenantId}:
    get:
      description: Get tenant by ID, needs to be org or system admin.
      tags:
      - Tenants
      summary: Get tenant information
      parameters:
      - name: tenantId
        required: true
        in: path
        schema:
          $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id'
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/paths/~1v1~1tenants/post/responses/201/content/application~1json/schema'
        '401':
          description: Invalid token
        '403':
          description: Caller is not authorized to perform this action
    put:
      description: Update tenant by ID, needs to be system admin.
      tags:
      - Tenants
      summary: Update tenant information
      parameters:
      - $ref: '#/paths/~1v1~1tenants~1%7BtenantId%7D/get/parameters/0'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                disclaimer:
                  type: string
                refreshTokenExpiration:
                  type: number
                authTokenExpiration:
                  type: number
                idleTimeout:
                  type: number
                continuousVerificationEnabled:
                  type: boolean
                ssoEnabled:
                  type: boolean
                defaultIdp:
                  type: string
                idpConfigs:
                  type: array
                  items:
                    type: object
                    properties:
                      ssoMetadataUrl:
                        type: string
                      ssoMetadataXml:
                        type: string
                      ssoProvider:
                        type: string
                      ssoEmailFieldMapping:
                        type: string
                      ssoFirstNameFieldMapping:
                        type: string
                      ssoLastNameFieldMapping:
                        type: string
                      ssoGroupsFieldMapping:
                        type: string
                    required:
                    - ssoProvider
                    - ssoEmailFieldMapping
                    - ssoFirstNameFieldMapping
                    - ssoLastNameFieldMapping
                    - ssoGroupsFieldMapping
                    anyOf:
                    - required:
                      - ssoMetadataUrl
                    - required:
                      - ssoMetadataXml
                passwordExpiryDays:
                  type: number
                passwordComplexity:
                  type: boolean
                noPasswordReuse:
                  type: boolean
                passwordExpiry:
                  type: boolean
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/paths/~1v1~1tenants/post/responses/201/content/application~1json/schema'
        '401':
          description: Invalid token
        '403':
          description: Caller is not authorized to perform this action
  /v1/tenants:
    get:
      description: Get all tenants, needs to be system admin.
      tags:
      - Tenants
      summary: Get list of tenants
      parameters:
      - name: subdomain
        required: false
        description: Optional parameter to return a tenant by subdomain
        in: query
        schema:
          type: string
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id'
                    name:
                      type: string
                    subdomain:
                      type: string
                    createdBy:
                      $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id'
                    modifiedBy:
                      $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id'
                    organizations:
                      type: array
                      items:
                        type: object
                        properties:
                          id:
                            $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id'
                          orgSlug:
                            $ref: '#/paths/~1%7Bsubdomain%7D~1login~1config/get/parameters/0/schema'
                          name:
                            type: string
                          emailDomain:
                            type: string
                          tenantId:
                            $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id'
        '401':
          description: Invalid token
        '403':
          description: Caller is not authorized to perform this action
    post:
      description: Create a new tenant, must be system admin.
      tags:
      - Tenants
      summary: Create a new tenant.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              allOf:
              - type: object
                properties:
                  name:
                    type: string
                  disclaimer:
                    type: string
                  refreshTokenExpiration:
                    type: number
                  authTokenExpiration:
                    type: number
                  idleTimeout:
                    type: number
                  continuousVerificationEnabled:
                    type: boolean
                  ssoEnabled:
                    type: boolean
                  defaultIdp:
                    type: string
                  idpConfigs:
                    type: array
                    items:
                      type: object
                      properties:
                        ssoMetadataUrl:
                          type: string
                        ssoMetadataXml:
                          type: string
                        ssoProvider:
                          type: string
                        ssoEmailFieldMapping:
                          type: string
                        ssoFirstNameFieldMapping:
                          type: string
                        ssoLastNameFieldMapping:
                          type: string
                        ssoGroupsFieldMapping:
                          type: string
                      required:
                      - ssoProvider
                      - ssoEmailFieldMapping
                      - ssoFirstNameFieldMapping
                      - ssoLastNameFieldMapping
                      - ssoGroupsFieldMapping
                      anyOf:
                      - required:
                        - ssoMetadataUrl
                      - required:
                        - ssoMetadataXml
                  passwordExpiryDays:
                    type: number
                  passwordComplexity:
                    type: boolean
                  noPasswordReuse:
                    type: boolean
                  passwordExpiry:
                    type: boolean
              - type: object
                properties:
                  subdomain:
                    type: string
                    minLength: 3
                    maxLength: 22
                required:
                - subdomain
      responses:
        '201':
          description: Successfully created tenant.
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id'
                  name:
                    type: string
                  subdomain:
                    type: string
                  disclaimer:
                    type: string
                  features:
                    type: object
                  settings:
                    type: object
                    properties:
                      ssoEnabled:
                        type: boolean
                      defaultIdp:
                        type: string
                      namedUserClientId:
                        type: string
                      namedUserClientSecret:
                        type: string
                      ssoDomain:
                        type: string
                      ssoRedirectUri:
                        type: string
                      authTokenExpiration:
                        description: Value in a minute. Default=240. min=1, max=720
                        type: string
                      refreshTokenExpiration:
                        description: Value in a minute. Default=720. min=1, max=720
                        type: string
                      idleTimeout:
                        type: string
                        description: Value in a minute. Default=60. min=1, max=720
                      resetPassword:
                        type: string
                      passwordComplexity:
                        type: string
                      passwordExpiryDays:
                        type: integer
                      passwordExpiry:
                        type: boolean
                      accountLock:
                        type: boolean
                      maxFailedLogins:
                        type: integer
                      noPasswordReuse:
                        type: boolean
                      idpConfigs:
                        type: array
                        items:
                          type: object
                          properties:
                            ssoMetadataUrl:
                              type: string
                            ssoMetadataXml:
                              type: string
                            ssoProvider:
                              type: string
                            ssoEmailFieldMapping:
                              type: string
                            ssoFirstNameFieldMapping:
                              type: string
                            ssoLastNameFieldMapping:
                              type: string
                            ssoGroupsFieldMapping:
                              type: string
                          required:
                          - ssoProvider
                          - ssoEmailFieldMapping
                          - ssoFirstNameFieldMapping
                          - ssoLastNameFieldMapping
                          - ssoGroupsFieldMapping
                          anyOf:
                          - required:
                            - ssoMetadataUrl
                          - required:
                            - ssoMetadataXml
        '401':
          description: Invalid token
        '403':
          description: Caller is not authorized to perform this action
        '409':
          description: Bad request, Tenant already exists.
components:
  securitySchemes:
    token:
      type: apiKey
      description: JWT Token for authentication
      in: header
      name: ts-auth-token
    orgSlug:
      type: apiKey
      description: Your organization slug
      in: header
      name: x-org-slug
    tsAuthToken:
      type: apiKey
      in: header
      name: ts-auth-token