openapi: 3.0.3
info:
title: Visier Data Out APIs
description: Visier APIs for getting data out of Visier, such as aggregate data and data version information.
license:
name: Apache License, Version 2.0
url: https://www.apache.org/licenses/LICENSE-2.0
version: 22222222.99201.3040
paths:
/v1/data/query/aggregate:
post:
tags:
- DataQuery
summary: Query aggregate data
description: "To retrieve aggregated values from your data in Visier, you can perform an aggregation. Usually, an aggregation\n retrieves values over a period of time, such as multiple months. You can also group and filter your data in an\n aggregation query to retrieve detailed information."
operationId: DataQuery_Aggregate
parameters:
- name: TargetTenantID
in: header
description: Optionally, specify the tenant that you want to execute the API call on. This defines the tenant that you're logged into. If omitted, the request uses the administrating tenant as the login tenant.
schema:
type: string
- name: ProjectID
in: header
description: Optionally, specify a project in which to make the request. If omitted, the request uses the production version.
schema:
type: string
format: uuid
- name: DataVersionID
in: header
description: Optionally, specify a data version against which to execute the query. If omitted, the request uses the current project's data version or the production version if no project is specified.
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/dataservices.query.AggregationQueryExecutionDTO'
required: true
responses:
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
'200':
description: Aggregate query response
content:
application/json:
schema:
$ref: '#/components/schemas/dataservices.query.CellSetOrErrorDTO'
application/jsonlines:
schema:
type: string
text/csv:
schema:
type: string
/v1/data/query/connector-version:
get:
tags:
- DataQuery
summary: Retrieve a data out connector's latest version
description: Retrieve the latest released version of a data out connector. Use this endpoint to automate checking connector release versions.
operationId: DataQuery_ConnectorVersion
parameters:
- name: connectorId
in: query
description: "The name of the connector for which to retrieve the latest version. Valid values:\n - `powerbi`: Retrieve the latest version of Visier's Power BI connector.\n - `tableau`: Retrieve the latest version of Visier's Tableau connector."
schema:
enum:
- powerbi
- tableau
type: string
format: enum
responses:
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/dataservices.query.ConnectorVersionDTO'
security:
- {}
/v1/data/query/list:
post:
tags:
- DataQuery
summary: Query a list of details
description: "To retrieve a list of values for specific objects, you can perform a list query. A list query provides information\n about values for selected data points, and is not an aggregated value. In Visier's interface, a list query is\n comparable to View Details for a specific data point in a visualization."
operationId: DataQuery_List
parameters:
- name: TargetTenantID
in: header
description: Optionally, specify the tenant that you want to execute the API call on. This defines the tenant that you're logged into. If omitted, the request uses the administrating tenant as the login tenant.
schema:
type: string
- name: ProjectID
in: header
description: Optionally, specify a project in which to make the request. If omitted, the request uses the production version.
schema:
type: string
format: uuid
- name: DataVersionID
in: header
description: Optionally, specify a data version against which to execute the query. If omitted, the request uses the data version released by the current project or production version, if no project is specified.
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/dataservices.query.ListQueryExecutionDTO'
required: true
responses:
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
'200':
description: List query response
content:
application/json:
schema:
$ref: '#/components/schemas/data_out.ListResponse'
application/jsonlines:
schema:
type: string
text/csv:
schema:
type: string
/v1/data/query/snapshot:
post:
tags:
- DataQuery
summary: Query a series of detailed snapshots
description: "To retrieve a collection of `list` query-style snapshots taken at the defined intervals, execute a `snapshot` query.\n Each snapshot in the result is associated with a timestamp, or the \"effective date\" at which date snapshot data was valid.\n This API allows you to request a detailed time series from Visier.\n\n Structurally, a `snapshot` query is similar to a `list` query, but has the following differences:\n * The `snapshot` query may contain a column, `effectiveDateProperty`, that specifies the time for each snapshot. To include the `effectiveDateProperty` column, add the following object to the columns array:\n ```json\n {\n \"columnName\": \"Snapshot_Date\",\n \"columnDefinition\": {\n \"effectiveDateProperty\": {}\n }\n }\n ```\n * The `snapshot` query uses `timeIntervals` (like an `aggregate` query) instead of `timeInterval` (like a `list` query) because the `snapshot` query\n must specify the number of snapshots to generate. To specify the number of snapshots to generate, use the `intervalCount` property in the `timeIntervals` object, as shown next.\n ```json\n {\n \"timeIntervals\": {\n \"fromDateTime\": \"2022-01-01\",\n \"intervalPeriodType\": \"MONTH\",\n \"intervalPeriodCount\": 6,\n \"intervalCount\": 4\n }\n ```"
operationId: Query_Snapshot
parameters:
- name: TargetTenantID
in: header
description: Optionally, specify the tenant that you want to execute the API call on. This defines the tenant that you're logged into. If omitted, the request uses the administrating tenant as the login tenant.
schema:
type: string
- name: ProjectID
in: header
description: Optionally, specify a project in which to make the request. If omitted, the request uses the production version.
schema:
type: string
format: uuid
- name: DataVersionID
in: header
description: Optionally, specify a data version against which to execute the query. If omitted, the request uses the data version released by the current project or production version, if no project is specified.
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/dataservices.query.SnapshotQueryExecutionDTO'
required: true
responses:
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
'200':
description: List query response
content:
application/json:
schema:
$ref: '#/components/schemas/data_out.ListResponse'
application/jsonlines:
schema:
type: string
text/csv:
schema:
type: string
/v1/data/query/sql:
post:
tags:
- DataQuery
summary: Query aggregate or list data using SQL-like syntax
description: "To retrieve a list of values for specific objects or aggregate values from metrics, you can write queries using SQL-like syntax.\n The response format matches the query type whether aggregate or list. If requested, aggregate query results may be flattened into tabular format.\n\n A SQL-like query is an aggregate if it contains at least one metric. Aggregate queries must specify a time interval divided into periods; for example:\n ```sql\n SELECT\n employeeCount() AS \"Employee Count\",\n level(Gender, \"Gender\") AS Gender\n FROM\n Employee\n WHERE\n Visier_Time IN periods(date(\"2023-01-01\"), 4, period(3, Month));\n ```\n\n A SQL-like query is a list if it does not contain any metrics. List queries define time intervals as simple intervals; for example:\n ```sql\n SELECT\n EmployeeID AS \"Employee ID\",\n level(Gender, \"Gender\") AS Gender\n FROM\n Employee\n WHERE\n Visier_Time BETWEEN date(\"2022-01-01\") AND date(\"2023-01-01\");\n ```"
operationId: DataQuery_SqlLike
parameters:
- name: TargetTenantID
in: header
description: Optionally, specify the tenant that you want to execute the API call on. This defines the tenant that you're logged into. If omitted, the request uses the administrating tenant as the login tenant.
schema:
type: string
- name: ProjectID
in: header
description: Optionally, specify a project in which to make the request. If omitted, the request uses the production version.
schema:
type: string
format: uuid
- name: DataVersionID
in: header
description: Optionally, specify a data version against which to execute the query. If omitted, the request uses the data version released by the current project or production version, if no project is specified.
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/dataservices.query.SqlLikeQueryExecutionDTO'
required: true
responses:
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
'200':
description: List query response
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/TableResponseDTO'
- $ref: '#/components/schemas/dataservices.query.CellSetDTO'
application/jsonlines:
schema:
type: string
text/csv:
schema:
type: string
/v1/vee/feedback:
post:
tags:
- VeeV1
summary: Submit Vee feedback
description: "Give Vee feedback for a previous answer. To submit feedback, include:\n * The conversation details from the `/question` response.\n * A rating of Vee's answer. If `isApproved` is `true`, Vee answered the question correctly. If `isApproved` is `false`, Vee's answer was incorrect or lacked details.\n * A description of how Vee should have answered the question or how Vee can improve the answer, such as \"Expected Headcount metric, but Vee returned Average Headcount\"."
operationId: VeeV1_VeeFeedback
parameters:
- name: TargetTenantID
in: header
description: Optionally, specify the tenant that you want to execute the API call on. This defines the tenant that you're logged into. If omitted, the request uses the administrating tenant as the login tenant.
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/analysis.common.VeeFeedbackDTO'
required: true
responses:
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/analysis.common.VeeStatusCodeDTO'
/v1/vee/question:
post:
tags:
- VeeV1
summary: Ask Vee a question
description: "Use plain language to ask Vee a people question. Use body parameters to specify how Vee should respond, such as returning a visualization, data, or rewording the question.\n\n The response always returns a `conversationState` object containing a unique ID for the conversation. To ask a follow-up question or continue the conversation with Vee, include the `conversationState` from the response in your next `/question` call. To submit feedback about Vee's answer, copy the entire response into your `/feedback` call."
operationId: VeeV1_VeeQuestionRequest
parameters:
- name: TargetTenantID
in: header
description: Optionally, specify the tenant that you want to execute the API call on. This defines the tenant that you're logged into. If omitted, the request uses the administrating tenant as the login tenant.
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/analysis.common.VeeQuestionDTO'
required: true
responses:
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/analysis.common.VeeResponseDTO'
/v1/vee/sample-question-categories:
get:
tags:
- VeeV1
summary: Retrieve a list of Vee question categories
description: Get a list of categories for the Vee sample questions displayed in the conversation interface.
operationId: VeeV1_VeeSampleQuestionCategories
parameters:
- name: TargetTenantID
in: header
description: Optionally, specify the tenant that you want to execute the API call on. This defines the tenant that you're logged into. If omitted, the request uses the administrating tenant as the login tenant.
schema:
type: string
responses:
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/analysis.common.VeeQuestionCategoriesAPIResponseDTO'
/v1/vee/sample-question-categories/{questionCategoryId}:
get:
tags:
- VeeV1
summary: Retrieve a Vee question category's details
description: Get the details of a specific Vee sample question category where the ID is the `categoryID` returned by `GET /v1/vee/sample-question-categories`.
operationId: VeeV1_VeeSampleQuestionCategory
parameters:
- name: questionCategoryId
in: path
required: true
schema:
type: string
- name: TargetTenantID
in: header
description: Optionally, specify the tenant that you want to execute the API call on. This defines the tenant that you're logged into. If omitted, the request uses the administrating tenant as the login tenant.
schema:
type: string
responses:
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/analysis.common.VeeQuestionCategoryAPIResponseDTO'
/v1/vee/sample-questions:
get:
tags:
- VeeV1
summary: Retrieve a list of sample questions to ask Vee
description: "Get a list of sample questions to help you start using Vee. The response returns a list of questions that you can ask Vee, such as \"What is the turnover rate?\".\n You may occasionally encounter a sample question that can't be answered due to data availability or your data access"
operationId: VeeV1_VeeSampleQuestions
parameters:
- name: TargetTenantID
in: header
description: Optionally, specify the tenant that you want to execute the API call on. This defines the tenant that you're logged into. If omitted, the request uses the administrating tenant as the login tenant.
schema:
type: string
responses:
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/analysis.common.VeeSampleQuestionLibraryDTO'
/v1/vee/status:
get:
tags:
- VeeV1
summary: Check the overall current status of Vee
description: "Check the current overall status of Vee.\n\n The overall status is one of:\n * `UP` : Vee is operational.\n * `DOWN`: Vee is not operational."
operationId: VeeV1_VeeStatus
parameters:
- name: TargetTenantID
in: header
description: Optionally, specify the tenant that you want to execute the API call on. This defines the tenant that you're logged into. If omitted, the request uses the administrating tenant as the login tenant.
schema:
type: string
responses:
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/systemstatus.VeeStatusDTO'
/v1alpha/data/data-version-exports/data-versions:
get:
tags:
- DataVersionExport
summary: Retrieve a list of all data versions
description: "Retrieve a list of all data versions in the tenant.\n\n **Note:** <em>This API is in **alpha**. While in alpha, APIs may change in a breaking way without notice; functionality may be removed, and no deprecation notices will be issued.\n If you are interested in using this API, please contact your Customer Success Manager (CSM).</em>"
operationId: DataVersionExport_GetAvailableDataVersions
parameters:
- name: TargetTenantID
in: header
description: Optionally, specify the tenant that you want to execute the API call on. This defines the tenant that you're logged into. If omitted, the request uses the administrating tenant as the login tenant.
schema:
type: string
responses:
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/DvExportStatus'
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/designer.DataVersionExportDataVersionsDTO'
/v1alpha/data/data-version-exports/exports:
get:
tags:
- DataVersionExport
summary: Retrieve the details of all data version exports
description: "Retrieve the information for all available data version exports.\n **Note:** Data version exports are available for 14 days after export job completes.\n\n **Note:** <em>This API is in **alpha**. While in alpha, APIs may change in a breaking way without notice; functionality may be removed, and no deprecation notices will be issued.\n If you are interested in using this API, please contact your Customer Success Manager (CSM).</em>"
operationId: DataVersionExport_GetAvailableExports
parameters:
- name: TargetTenantID
in: header
description: Optionally, specify the tenant that you want to execute the API call on. This defines the tenant that you're logged into. If omitted, the request uses the administrating tenant as the login tenant.
schema:
type: string
responses:
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/DvExportStatus'
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/designer.DataVersionExportsDTO'
/v1alpha/data/data-version-exports/exports/{exportUuid}:
get:
tags:
- DataVersionExport
summary: Retrieve the details of a data version export
description: "Retrieve information for a specific data version export.\n **Note:** Data version exports are available for 14 days after export job completes.\n\n **Note:** <em>This API is in **alpha**. While in alpha, APIs may change in a breaking way without notice; functionality may be removed, and no deprecation notices will be issued.\n If you are interested in using this API, please contact your Customer Success Manager (CSM).</em>"
operationId: DataVersionExport_GetExport
parameters:
- name: exportUuid
in: path
description: The unique identifier of the data version export.
required: true
schema:
type: string
- name: TargetTenantID
in: header
description: Optionally, specify the tenant that you want to execute the API call on. This defines the tenant that you're logged into. If omitted, the request uses the administrating tenant as the login tenant.
schema:
type: string
responses:
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/DvExportStatus'
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/designer.DataVersionExportDTO'
/v1alpha/data/data-version-exports/jobs:
post:
tags:
- DataVersionExport
summary: Schedule a data version export job
description: "Schedule a data version export job. The job schedules immediately and will begin when resources are available. The response returns a `jobUuid` that you can use to check the export job status.\n\n **Note:** There is a limit of 10 export jobs per tenant per day.\n\n **Note:** <em>This API is in **alpha**. While in alpha, APIs may change in a breaking way without notice; functionality may be removed, and no deprecation notices will be issued.\n If you are interested in using this API, please contact your Customer Success Manager (CSM).</em>"
operationId: DataVersionExport_ScheduleExportJob
parameters:
- name: TargetTenantID
in: header
description: Optionally, specify the tenant that you want to execute the API call on. This defines the tenant that you're logged into. If omitted, the request uses the administrating tenant as the login tenant.
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/designer.DataVersionExportScheduleJobRequestDTO'
required: true
responses:
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/DvExportStatus'
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/designer.DataVersionExportScheduleJobResponseDTO'
/v1alpha/data/data-version-exports/jobs/{jobUuid}:
get:
tags:
- DataVersionExport
summary: Retrieve a data version export job's status
description: "Retrieve the status of a data version export job. After the job completes successfully, this endpoint returns an `exportUuid` that you can use to retrieve the export information and download export files.\n\n **Note:** <em>This API is in **alpha**. While in alpha, APIs may change in a breaking way without notice; functionality may be removed, and no deprecation notices will be issued.\n If you are interested in using this API, please contact your Customer Success Manager (CSM).</em>"
operationId: DataVersionExport_GetExportJobStatus
parameters:
- name: jobUuid
in: path
description: The unique identifier of the data version export job.
required: true
schema:
type: string
- name: TargetTenantID
in: header
description: Optionally, specify the tenant that you want to execute the API call on. This defines the tenant that you're logged into. If omitted, the request uses the administrating tenant as the login tenant.
schema:
type: string
responses:
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/DvExportStatus'
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/designer.DataVersionExportJobStatusDTO'
/v1alpha/data/export-connectors/connectors:
get:
tags:
- DataExportConnectorsAPI
summary: Retrieve data export connectors
description: "Retrieve a list of data export connectors. Each data export connector defines the Data Exports it runs and the credentials it uses.\n\n <br>**Note:** <em>This API is in **alpha**. While in alpha, APIs may change in a breaking way without notice, functionality may be removed, and no deprecation notices will be issued.\n If you are interested in using this API, please contact your Customer Success Manager (CSM).</em>"
operationId: DataExportConnectorsAPI_ListConnectors
responses:
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/servicing.dataexportconnector.DataExportConnectorListResponse'
/v1alpha/data/export-connectors/connectors/{connectorId}/jobs:
post:
tags:
- DataExportConnectorsAPI
summary: Run a data export connector job
description: "Dispatch a job for the specified data export connector. The job runs the connector's exports using the production version. The response returns an `id` that you can use to monitor the job's progress with `GET /v1alpha/data/export-connectors/jobs/{jobId}`.\n\n <br>**Note:** <em>This API is in **alpha**. While in alpha, APIs may change in a breaking way without notice, functionality may be removed, and no deprecation notices will be issued.\n If you are interested in using this API, please contact your Customer Success Manager (CSM).</em>"
operationId: DataExportConnectorsAPI_DispatchJob
parameters:
- name: connectorId
in: path
description: The unique identifier of the data export connector to run a job for.
required: true
schema:
type: string
responses:
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/servicing.dataexportconnector.DataExportConnectorJobDispatched'
/v1alpha/data/export-connectors/credentials:
get:
tags:
- DataExportConnectorsAPI
summary: Retrieve data export connector credentials
description: "Retrieve a list of data export connector credentials. The response returns each credential's identifying fields and authentication parameters. Sensitive fields, such as secrets and private keys, are masked.\n\n <br>**Note:** <em>This API is in **alpha**. While in alpha, APIs may change in a breaking way without notice, functionality may be removed, and no deprecation notices will be issued.\n If you are interested in using this API, please contact your Customer Success Manager (CSM).</em>"
operationId: DataExportConnectorsAPI_ListCredentials
responses:
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/servicing.dataexportconnector.DataExportConnectorCredentialListResponse'
post:
tags:
- DataExportConnectorsAPI
summary: Create a data export connector credential
description: "Create a data export connector credential. Credentials authenticate with external systems, such as Databricks or Snowflake. When creating a credential, do not provide an `id`. Visier generates the credential ID automatically.\n\n <br>**Note:** <em>This API is in **alpha**. While in alpha, APIs may change in a breaking way without notice, functionality may be removed, and no deprecation notices will be issued.\n If you are interested in using this API, please contact your Customer Success Manager (CSM).</em>"
operationId: DataExportConnectorsAPI_CreateCredential
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/servicing.dataexportconnector.DataExportConnectorCredential'
required: true
responses:
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/servicing.dataexportconnector.DataExportConnectorCredential'
/v1alpha/data/export-connectors/credentials/validations:
post:
tags:
- DataExportConnectorsAPI
summary: Validate a data export connector credential
description: "Validate that a data export connector credential can connect to its destination. Validation runs asynchronously. The response returns an `id` that you can use to poll for the validation result with `GET /v1alpha/data/export-connectors/credentials/validations/{id}`.\n\n Specify an `id` to validate an existing credential or `parameters` to validate a new set of credential values without persisting the credentials.\n\n <br>**
# --- truncated at 32 KB (202 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/visier/refs/heads/main/openapi/visier-data-out-apis-openapi.yaml