Broad Institute Terms of Service API

The Terms of Service API from Broad Institute — 4 operation(s) for terms of service.

Operations 5

GET /tos/text gets terms of service text #
POST /register/user/v1/termsofservice Passes through to Sam API and accepts Terra Terms of Service #
DELETE /register/user/v1/termsofservice Passes through to Sam API and rejects Terra Terms of Service #
GET /register/user/v1/termsofservice/status Check whether user has accepted the current version of the Terms of Service #
GET /register/user/v2/self/termsOfServiceDetails gets terms of service details, including user's accepted version #

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/broad-institute:broad-institute-terms-of-service-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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

broad-institute-terms-of-service-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Terra Terms of Service API
  description: Terra API
  termsOfService: https://app.terra.bio/#terms-of-service
  license:
    name: BSD
    url: http://opensource.org/licenses/BSD-3-Clause
  version: '0.1'
servers:
- url: /
security:
- oidc: []
tags:
- name: Terms of Service
paths:
  /tos/text:
    get:
      tags:
      - Terms of Service
      summary: gets terms of service text
      operationId: getTermsOfServiceText
      responses:
        200:
          description: success
          content:
            text/plain:
              schema:
                type: string
  /register/user/v1/termsofservice:
    post:
      tags:
      - Terms of Service
      summary: Passes through to Sam API and accepts Terra Terms of Service
      operationId: acceptTermsOfService
      requestBody:
        description: Must equal the (double-quoted) url of the Terra Terms of Service
        content:
          application/json:
            schema:
              type: string
        required: true
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RawlsMe'
        404:
          description: User Not Found.
          content: {}
    delete:
      tags:
      - Terms of Service
      summary: Passes through to Sam API and rejects Terra Terms of Service
      operationId: rejectTermsOfService
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RawlsMe'
        404:
          description: User Not Found.
          content: {}
  /register/user/v1/termsofservice/status:
    get:
      tags:
      - Terms of Service
      summary: Check whether user has accepted the current version of the Terms of Service
      operationId: getTermsOfServiceStatus
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                type: boolean
        404:
          description: User Not Found.
          content: {}
  /register/user/v2/self/termsOfServiceDetails:
    get:
      tags:
      - Terms of Service
      summary: gets terms of service details, including user's accepted version
      operationId: getTermsOfServiceDetails
      responses:
        200:
          description: success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TermsOfServiceDetails'
components:
  schemas:
    ExtendedEnabled:
      allOf:
      - $ref: '#/components/schemas/Enabled'
    RawlsMe:
      type: object
      properties:
        userInfo:
          $ref: '#/components/schemas/UserInfo'
        enabled:
          $ref: '#/components/schemas/ExtendedEnabled'
    Enabled:
      type: object
      properties:
        google:
          type: boolean
          description: User enabled via Google?
        ldap:
          type: boolean
          description: User enabled in LDAP?
        allUsersGroup:
          type: boolean
          description: User is a member of the "All Users" group?
        adminEnabled:
          type: boolean
          description: User is enabled in the system?
        tosAccepted:
          type: boolean
          description: User has accepted the latest Terms of Service?
    TermsOfServiceDetails:
      required:
      - isEnabled
      - isGracePeriodEnabled
      - currentVersion
      - userAcceptedVersion
      type: object
      properties:
        isEnabled:
          type: boolean
          description: true if terms of service is enforced in Sam
        isGracePeriodEnabled:
          type: boolean
          description: true if there is currently a grace period enabled, letting users use the system without accepting the terms of service
        currentVersion:
          type: string
          description: the current version of terms of service for the system
        userAcceptedVersion:
          type: string
          description: the version of the terms of service the user has accepted
    UserInfo:
      type: object
      properties:
        userSubjectId:
          type: string
          description: User's ID (subject id from Google)
        userEmail:
          type: string
          description: User's email
  securitySchemes:
    oidc:
      type: oauth2
      x-tokenName: id_token
      flows:
        authorizationCode:
          authorizationUrl: OAUTH_AUTHORIZATION_URL
          scopes: {}
          tokenUrl: OAUTH_TOKEN_URL
    oidc_google_billing_scope:
      type: oauth2
      x-tokenName: id_token
      flows:
        authorizationCode:
          authorizationUrl: OAUTH_AUTHORIZATION_URL_WITH_GOOGLE_BILLING_SCOPE
          scopes: {}
          tokenUrl: OAUTH_TOKEN_URL_WITH_GOOGLE_BILLING_SCOPE