openapi: 3.2.0 info: license: name: Apache 2.0 url: http://www.apache.org/licenses/LICENSE-2.0.html title: Benchling Sql Dashboard API version: 2.0.0 description: 'A SqlDashboard is a configurable analytics page that displays one or more SQL-driven visualizations within Benchling Insights. Dashboards belong to a Project and contain ordered blocks (see SqlDashboardBlock), each with its own SQL query and chart or table visualization. Dashboards support parameterConfigs (see SqlParameterConfig) that allow users to filter data dynamically through dropdowns, date pickers, or entity selectors. SQL Dashboards query Benchling''s data warehouse.' servers: - url: /api/v3 security: - oAuth: [] - basicApiKeyAuth: [] tags: - description: 'A SqlDashboard is a configurable analytics page that displays one or more SQL-driven visualizations within Benchling Insights. Dashboards belong to a Project and contain ordered blocks (see SqlDashboardBlock), each with its own SQL query and chart or table visualization. Dashboards support parameterConfigs (see SqlParameterConfig) that allow users to filter data dynamically through dropdowns, date pickers, or entity selectors. SQL Dashboards query Benchling''s data warehouse.' name: SqlDashboard x-bnch-organization: Benchling paths: /sql-dashboard/items: get: description: List SqlDashboard items. operationId: SqlDashboard.List parameters: - $ref: '#/components/parameters/createdAt.gt' - $ref: '#/components/parameters/createdAt.gte' - $ref: '#/components/parameters/createdAt.lt' - $ref: '#/components/parameters/createdAt.lte' - $ref: '#/components/parameters/creator.anyOf' - $ref: '#/components/parameters/id.anyOf' - $ref: '#/components/parameters/modifiedAt.gt' - $ref: '#/components/parameters/modifiedAt.gte' - $ref: '#/components/parameters/modifiedAt.lt' - $ref: '#/components/parameters/modifiedAt.lte' - $ref: '#/components/parameters/name.anyOf' - $ref: '#/components/parameters/name.anyOf.caseSensitive' - $ref: '#/components/parameters/nextToken' - $ref: '#/components/parameters/omit' - $ref: '#/components/parameters/pageSize' - $ref: '#/components/parameters/returning' - description: 'Method by which to order results. Valid sorts are: createdAt (created time, oldest first) and modifiedAt (modified time, oldest first). Use :asc or :desc to specify ascending or descending order. Default is modifiedAt:desc.' in: query name: sort schema: default: modifiedAt:desc enum: - createdAt:asc - createdAt:desc - modifiedAt:asc - modifiedAt:desc type: string - description: Set to true to access beta operations via /api/v3. in: header name: EARLY-ACCESS required: false schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/SqlDashboardPaginatedList' description: OK headers: {} '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' summary: List SqlDashboard items tags: - SqlDashboard x-bnch-rate-limit-tier: 4 /sql-dashboard/{sql_dashboard_id}: get: description: Get a single SqlDashboard by ID. operationId: SqlDashboard.Get parameters: - description: ID of the SqlDashboard. in: path name: sql_dashboard_id required: true schema: type: string - $ref: '#/components/parameters/returning' - $ref: '#/components/parameters/omit' - description: Set to true to access beta operations via /api/v3. in: header name: EARLY-ACCESS required: false schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/SqlDashboard' description: OK headers: {} '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' summary: Get SqlDashboard by ID tags: - SqlDashboard x-bnch-rate-limit-tier: 5 /sql-dashboard/{sql_dashboard_id}/blocks/items: get: description: List SqlDashboardBlock items. operationId: SqlDashboard.blocks.List parameters: - description: ID of the SqlDashboard. in: path name: sql_dashboard_id required: true schema: type: string - description: Set to true to access beta operations via /api/v3. in: header name: EARLY-ACCESS required: false schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/SqlDashboardBlockUnpaginatedList' description: OK headers: {} '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' summary: List SqlDashboardBlock items tags: - SqlDashboard x-bnch-rate-limit-tier: 4 components: schemas: SqlDashboardBlock: description: 'Represents a single query and visualization pane within a SqlDashboard. Each block contains a SQL query (sqlQuery) that runs against the Benchling data warehouse, along with a BlockVisualization that defines how the query results are displayed (as a chart, table, heatmap, etc.). Blocks are ordered by index within their parent dashboard and have a name and description for identification. SQL Dashboard Blocks enable users to build interactive analytics dashboards by combining multiple query-driven visualizations on a single page.' properties: __typename: type: string description: type: string id: type: string index: type: integer name: type: string sqlQuery: type: string type: object ProjectRef: properties: __typename: type: string id: format: api_id type: string type: object InternalServerError: properties: detail: type: - 'null' - string - object errorId: type: string instance: type: string status: type: integer title: type: - 'null' - string type: type: string required: - type - title - detail - status - instance type: object PrincipalRef: properties: __typename: type: string id: format: api_id type: string type: object SqlDashboardBlockUnpaginatedList: additionalProperties: false properties: items: items: $ref: '#/components/schemas/SqlDashboardBlock' type: array type: object SqlDashboardPaginatedList: additionalProperties: false properties: items: items: $ref: '#/components/schemas/SqlDashboard' type: array nextToken: type: string type: object SqlDashboard: description: 'A SqlDashboard is a configurable analytics page that displays one or more SQL-driven visualizations within Benchling Insights. Dashboards belong to a Project and contain ordered blocks (see SqlDashboardBlock), each with its own SQL query and chart or table visualization. Dashboards support parameterConfigs (see SqlParameterConfig) that allow users to filter data dynamically through dropdowns, date pickers, or entity selectors. SQL Dashboards query Benchling''s data warehouse.' properties: __typename: type: string blocks: format: uri type: string createdAt: format: datetime type: string creator: $ref: '#/components/schemas/PrincipalRef' description: type: string id: type: string modifiedAt: format: datetime type: string name: type: string project: $ref: '#/components/schemas/ProjectRef' type: object GeneralError: properties: detail: type: - 'null' - string - object instance: type: string status: type: integer title: type: - 'null' - string type: type: string required: - type - title - detail - status - instance type: object parameters: pageSize: description: Number of results to return. Defaults to 50, maximum of 100. in: query name: pageSize schema: type: integer createdAt.gte: description: Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those created at or after the specified time. e.g. >= 2017-04-30. in: query name: createdAt.gte schema: format: datetime type: string modifiedAt.gt: description: Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those modified after the specified time. e.g. > 2017-04-30. in: query name: modifiedAt.gt schema: format: datetime type: string modifiedAt.lte: description: Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those modified at or before the specified time. e.g. <= 2017-04-30. in: query name: modifiedAt.lte schema: format: datetime type: string id.anyOf: description: Restricts results to those matching any of the specified IDs. Comma-separated list. explode: false in: query name: id.anyOf schema: items: type: string maxItems: 100 type: array omit: description: Comma-separated list of top-level fields to omit from each returned item. Cannot overlap with returning. explode: false in: query name: omit schema: items: type: string type: array modifiedAt.lt: description: Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those modified before the specified time. e.g. < 2017-04-30. in: query name: modifiedAt.lt schema: format: datetime type: string creator.anyOf: description: Restricts results to those created by any of the specified user IDs. Comma-separated list. explode: false in: query name: creator.anyOf schema: items: type: string maxItems: 100 type: array createdAt.gt: description: Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those created after the specified time. e.g. > 2017-04-30. in: query name: createdAt.gt schema: format: datetime type: string createdAt.lt: description: Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those created before the specified time. e.g. < 2017-04-30. in: query name: createdAt.lt schema: format: datetime type: string returning: description: Comma-separated list of top-level fields to include in each returned item. Cannot overlap with omit. explode: false in: query name: returning schema: items: type: string type: array nextToken: description: Token for pagination in: query name: nextToken schema: type: string name.anyOf: description: Restricts results to those that match any of the specified names. Case insensitive. Warning - this filter can be non-performant due to case insensitivity. Ensure only one name filter is used at a time. Comma-separated list. explode: false in: query name: name.anyOf schema: items: type: string maxItems: 100 type: array name.anyOf.caseSensitive: description: Restricts results to those that match any of the specified names. Case sensitive. Ensure only one name filter is used at a time. Comma-separated list. explode: false in: query name: name.anyOf.caseSensitive schema: items: type: string maxItems: 100 type: array modifiedAt.gte: description: Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those modified at or after the specified time. e.g. >= 2017-04-30. in: query name: modifiedAt.gte schema: format: datetime type: string createdAt.lte: description: Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those created at or before the specified time. e.g. <= 2017-04-30. in: query name: createdAt.lte schema: format: datetime type: string responses: NotFound: content: application/problem+json: schema: $ref: '#/components/schemas/GeneralError' description: Not Found TooManyRequests: content: application/problem+json: schema: $ref: '#/components/schemas/GeneralError' description: Too Many Requests BadRequest: content: application/problem+json: schema: $ref: '#/components/schemas/GeneralError' description: Bad Request Forbidden: content: application/problem+json: schema: $ref: '#/components/schemas/GeneralError' description: Forbidden InternalServerError: content: application/problem+json: schema: $ref: '#/components/schemas/InternalServerError' description: Internal Server Error securitySchemes: basicApiKeyAuth: description: Use issued API key for standard access to the API scheme: basic type: http basicClientIdSecretAuth: description: Auth used as part of client credentials OAuth flow prior to receiving a bearer token. scheme: basic type: http oAuth: description: OAuth2 Client Credentials flow intended for service access flows: clientCredentials: scopes: {} tokenUrl: /oauth/token type: oauth2