Download OpenAPI specification:Download
You can use the Imply Polaris API to programmatically manage your tables, files, and ingestion tasks. See API overview for information and examples on how to get started.
The legacy APIs documented in this reference are provided for backwards compatibility and will be removed by the end of September 2024. We strongly recommend updating API requests to use the v1 version that includes the project ID in the base URL. For more information, see Migration guide for deprecated APIs.
For the latest version, see Polaris API reference.
{- "values": [
- {
- "modifiedByUser": {
- "username": "user@imply.io",
- "userId": "631db145-a6d9-492f-9c9e-99240345628a"
}, - "modifiedOnTimestamp": "2019-08-24T14:15:22Z",
- "name": "example-connection",
- "submittedByUser": {
- "username": "user@imply.io",
- "userId": "631db145-a6d9-492f-9c9e-99240345628a"
}, - "submittedOnTimestamp": "2019-08-24T14:15:22Z",
- "type": "confluent",
- "description": "string"
}
]
}
Creates a new connection.
For AWS-based connections, ensure you have the correct roles and permissions in AWS Identity and Access Management (IAM). See Access to AWS resources.
A connection to be created.
bootstrapServers required | string List of host and port pairs used for establishing the initial connection to the Kafka cluster. |
name required | string (ConnectionNamePayload) [ 1 .. 64 ] characters The name of a connection. A connection name can only contain ASCII letters, numbers, and the following characters: |
required | object (ConnectionSecretsRequiredPayload) Base type for connection secrets. |
topicName required | string Name of the Kafka topic in Confluent. |
type required | string (ConnectionTypePayload) |
description | string (ConnectionDescriptionPayload) Description for a connection. |
{- "name": "example-connection",
- "type": "confluent",
- "description": "string",
- "bootstrapServers": "pkc-xxxxx.us-east-1.aws.confluent.cloud:9092",
- "topicName": "example-topic",
- "secrets": {
- "type": "aws_iam"
}
}
{- "modifiedByUser": {
- "username": "user@imply.io",
- "userId": "631db145-a6d9-492f-9c9e-99240345628a"
}, - "modifiedOnTimestamp": "2019-08-24T14:15:22Z",
- "name": "example-connection",
- "submittedByUser": {
- "username": "user@imply.io",
- "userId": "631db145-a6d9-492f-9c9e-99240345628a"
}, - "submittedOnTimestamp": "2019-08-24T14:15:22Z",
- "type": "confluent",
- "description": "string",
- "bootstrapServers": "pkc-xxxxx.us-east-1.aws.confluent.cloud:9092",
- "topicName": "example-topic",
- "secrets": {
- "type": "aws_iam"
}
}
Returns information for a single connection.
name required | string (ConnectionNamePayload) [ 1 .. 64 ] characters Example: example-connection The name of the connection to get. |
{- "modifiedByUser": {
- "username": "user@imply.io",
- "userId": "631db145-a6d9-492f-9c9e-99240345628a"
}, - "modifiedOnTimestamp": "2019-08-24T14:15:22Z",
- "name": "example-connection",
- "submittedByUser": {
- "username": "user@imply.io",
- "userId": "631db145-a6d9-492f-9c9e-99240345628a"
}, - "submittedOnTimestamp": "2019-08-24T14:15:22Z",
- "type": "confluent",
- "description": "string",
- "bootstrapServers": "pkc-xxxxx.us-east-1.aws.confluent.cloud:9092",
- "topicName": "example-topic",
- "secrets": {
- "type": "aws_iam"
}
}
Updates details for a specific connection.
name required | string The name of the connection to update. |
The updated connection spec.
type required | string (ConnectionTypePayload) |
bootstrapServers | string List of host and port pairs used for establishing the initial connection to the Kafka cluster. |
description | string (ConnectionDescriptionPayload) Description for a connection. |
object (ConnectionSecretsOptionalPayload) Base type for updating connection secrets. | |
topicName | string Name of the Kafka topic in Confluent. |
{- "type": "confluent",
- "description": "string",
- "bootstrapServers": "pkc-xxxxx.us-east-1.aws.confluent.cloud:9092",
- "topicName": "example-topic",
- "secrets": {
- "type": "aws_iam"
}
}
{- "modifiedByUser": {
- "username": "user@imply.io",
- "userId": "631db145-a6d9-492f-9c9e-99240345628a"
}, - "modifiedOnTimestamp": "2019-08-24T14:15:22Z",
- "name": "example-connection",
- "submittedByUser": {
- "username": "user@imply.io",
- "userId": "631db145-a6d9-492f-9c9e-99240345628a"
}, - "submittedOnTimestamp": "2019-08-24T14:15:22Z",
- "type": "confluent",
- "description": "string",
- "bootstrapServers": "pkc-xxxxx.us-east-1.aws.confluent.cloud:9092",
- "topicName": "example-topic",
- "secrets": {
- "type": "aws_iam"
}
}
Returns meta information related to connections.
{- "externalId": "123e4567-e89b-12d3-a456-426614174000",
- "implyArn": "arn:aws:iam::123456789012:role/imply-cluster-1234567"
}
Returns all jobs.
connectionName | Array of strings (ConnectionNamePayload) [ items [ 1 .. 64 ] characters ] Example: connectionName=example-connection The connection to filter jobs by. |
executionStatus | Array of strings (JobExecutionStatusV2) Items Enum: "pending" "running" "completed" "idle" "canceled" "failed" "unknown" Filters results with a certain execution status. For example, to list running jobs only, use the address |
healthStatus | Array of strings (JobHealthStatusV2) Items Enum: "ok" "warn" "error" Filters results with a certain health status. For example, to list jobs with warnings or errors, use the address |
paginationLimit | integer [ 1 .. 1000 ] Default: 100 A result limit for pagination. |
paginationOffset | integer >= 0 Default: 0 A result offset for pagination. |
searchString | string Filter results to those jobs where the given string is contained in one of the job's fields. |
sortColumn | string (JobSortSearchColumn) Default: "last_updated_date_time" Enum: "created_by_user_name" "created_date_time" "execution_status" "last_updated_date_time" "source_type" "source_connection_name" "source_table_name" "target_table_name" "type" The column to sort job results by. |
sortOrder | string (SortOrder) Default: "DESC" Enum: "ASC" "DESC" Example: sortOrder=ASC The order to sort job results by. |
targetTableId | string <uuid> (TableId) Filters results for jobs associated with a particular target table id. |
targetTableName | string (TableName) [ 1 .. 255 ] characters Example: targetTableName=example-table Filters results for jobs associated with a particular target table name. |
type | Array of strings (JobTypeV2) Items Enum: "batch" "delete_data" "drop_table" "streaming" "sql" Example: type=batch Filters results with a certain job type. For example, to select batch and streaming jobs, use the address |
{- "values": [
- {
- "createdBy": {
- "username": "user@imply.io",
- "userId": "631db145-a6d9-492f-9c9e-99240345628a"
}, - "createdTimestamp": "2021-06-06T00:00:00.000Z",
- "desiredExecutionStatus": "running",
- "executionStatus": "pending",
- "health": {
- "status": "ok"
}, - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "lastModifiedBy": {
- "username": "user@imply.io",
- "userId": "631db145-a6d9-492f-9c9e-99240345628a"
}, - "lastUpdatedTimestamp": "2021-06-06T00:00:00.000Z",
- "target": {
- "type": "table",
- "tableName": "example-table"
}, - "type": "batch",
- "completedTimestamp": "2021-06-06T00:00:00.000Z",
- "startedTimestamp": "2021-06-06T00:00:00.000Z"
}
], - "moreResultsAvailable": true
}
Creates a job.
A job to be created.
required | object (JobSourceV2) The source input of the job. |
required | object (JobTargetV2) The target output of the job. |
type required | string (JobTypeV2) Default: "sql" The type of job:
For information about ingestion jobs, see Create an ingestion job and Ingest using SQL. |
desiredExecutionStatus | string (DesiredJobExecutionStatusV2) Default: "running" Enum: "running" "canceled" The desired execution status of the job. This field only applies to updating an ingestion job and is ignored when creating jobs. You cannot update a deletion job. The default desired execution status is |
filterExpression | string SQL expression to use for filtering the source data. |
ingestionMode | string (IngestionModeV2) Default: "append" Enum: "append" "replace" The mode of ingestion:
|
Array of objects (InputToTableSchemaMappingsV2) Relationship between the input fields and the output columns of a table's schema.
Define the Polaris column name in For batch ingestion jobs, you must include a mapping for each field. Polaris ignores
unmapped input fields. Streaming ingestion jobs may apply schema auto-discovery for
Polaris to discover input fields and map them directly to table dimensions.
Always specify a mapping for For more information, see Map and transform data with input expressions and Schema auto-discovery on ingestion jobs. | |
maxParseExceptions | integer Default: 2147483647 Configuration parameter that specifies the maximum number of parse exceptions that a task can tolerate before failing. |
{- "type": "batch",
- "desiredExecutionStatus": "running",
- "source": {
- "type": "uploaded",
- "fileList": [
- "example-file.json"
], - "formatSettings": {
- "format": "nd-json"
}, - "inputSchema": [
- {
- "dataType": "string",
- "name": "example-col1"
}, - {
- "dataType": "long",
- "name": "example-col2"
}
]
}, - "target": {
- "type": "table",
- "tableName": "example-table"
}, - "filterExpression": "\"dimension\" > 0",
- "ingestionMode": "append",
- "mappings": [
- {
- "columnName": "example-column",
- "expression": "\"inputField1\" + \"inputField2\"",
- "isAggregation": true
}
], - "maxParseExceptions": 2147483647
}
{- "createdBy": {
- "username": "user@imply.io",
- "userId": "631db145-a6d9-492f-9c9e-99240345628a"
}, - "createdTimestamp": "2021-06-06T00:00:00.000Z",
- "desiredExecutionStatus": "running",
- "executionStatus": "pending",
- "health": {
- "status": "ok"
}, - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "lastModifiedBy": {
- "username": "user@imply.io",
- "userId": "631db145-a6d9-492f-9c9e-99240345628a"
}, - "lastUpdatedTimestamp": "2021-06-06T00:00:00.000Z",
- "spec": {
- "type": "batch",
- "desiredExecutionStatus": "running"
}, - "target": {
- "type": "table",
- "tableName": "example-table"
}, - "type": "batch",
- "completedTimestamp": "2021-06-06T00:00:00.000Z",
- "startedTimestamp": "2021-06-06T00:00:00.000Z",
- "source": {
- "type": "uploaded",
- "fileList": [
- "example-file.json"
], - "formatSettings": {
- "format": "nd-json"
}, - "inputSchema": [
- {
- "dataType": "string",
- "name": "example-col1"
}, - {
- "dataType": "long",
- "name": "example-col2"
}
]
}, - "filterExpression": "\"dimension\" > 0",
- "ingestionMode": "append",
- "mappings": [
- {
- "columnName": "example-column",
- "expression": "\"inputField1\" + \"inputField2\"",
- "isAggregation": true
}
], - "maxParseExceptions": 2147483647,
- "query": "string"
}
Returns information for a single job.
jobId required | string <uuid> (JobIdPayload) The server-generated ID of the job for which to get the metadata. |
{- "createdBy": {
- "username": "user@imply.io",
- "userId": "631db145-a6d9-492f-9c9e-99240345628a"
}, - "createdTimestamp": "2021-06-06T00:00:00.000Z",
- "desiredExecutionStatus": "running",
- "executionStatus": "pending",
- "health": {
- "status": "ok"
}, - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "lastModifiedBy": {
- "username": "user@imply.io",
- "userId": "631db145-a6d9-492f-9c9e-99240345628a"
}, - "lastUpdatedTimestamp": "2021-06-06T00:00:00.000Z",
- "spec": {
- "type": "batch",
- "desiredExecutionStatus": "running"
}, - "target": {
- "type": "table",
- "tableName": "example-table"
}, - "type": "batch",
- "completedTimestamp": "2021-06-06T00:00:00.000Z",
- "startedTimestamp": "2021-06-06T00:00:00.000Z",
- "source": {
- "type": "uploaded",
- "fileList": [
- "example-file.json"
], - "formatSettings": {
- "format": "nd-json"
}, - "inputSchema": [
- {
- "dataType": "string",
- "name": "example-col1"
}, - {
- "dataType": "long",
- "name": "example-col2"
}
]
}, - "filterExpression": "\"dimension\" > 0",
- "ingestionMode": "append",
- "mappings": [
- {
- "columnName": "example-column",
- "expression": "\"inputField1\" + \"inputField2\"",
- "isAggregation": true
}
], - "maxParseExceptions": 2147483647,
- "query": "string"
}
Updates a job.
You can update an ingestion job to cancel its execution. Polaris does not support other updates to ingestion jobs. Deletion jobs cannot be updated.
jobId required | string <uuid> (JobIdPayload) The server-generated ID of the job for which to get the metadata. |
The job to be updated.
desiredExecutionStatus required | string (DesiredJobExecutionStatusV2) Default: "running" Enum: "running" "canceled" The desired execution status of the job. This field only applies to updating an ingestion job and is ignored when creating jobs. You cannot update a deletion job. The default desired execution status is |
{- "desiredExecutionStatus": "running"
}
{- "createdBy": {
- "username": "user@imply.io",
- "userId": "631db145-a6d9-492f-9c9e-99240345628a"
}, - "createdTimestamp": "2021-06-06T00:00:00.000Z",
- "desiredExecutionStatus": "running",
- "executionStatus": "pending",
- "health": {
- "status": "ok"
}, - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "lastModifiedBy": {
- "username": "user@imply.io",
- "userId": "631db145-a6d9-492f-9c9e-99240345628a"
}, - "lastUpdatedTimestamp": "2021-06-06T00:00:00.000Z",
- "spec": {
- "type": "batch",
- "desiredExecutionStatus": "running"
}, - "target": {
- "type": "table",
- "tableName": "example-table"
}, - "type": "batch",
- "completedTimestamp": "2021-06-06T00:00:00.000Z",
- "startedTimestamp": "2021-06-06T00:00:00.000Z",
- "source": {
- "type": "uploaded",
- "fileList": [
- "example-file.json"
], - "formatSettings": {
- "format": "nd-json"
}, - "inputSchema": [
- {
- "dataType": "string",
- "name": "example-col1"
}, - {
- "dataType": "long",
- "name": "example-col2"
}
]
}, - "filterExpression": "\"dimension\" > 0",
- "ingestionMode": "append",
- "mappings": [
- {
- "columnName": "example-column",
- "expression": "\"inputField1\" + \"inputField2\"",
- "isAggregation": true
}
], - "maxParseExceptions": 2147483647,
- "query": "string"
}
Returns logs for a job.
jobId required | string <uuid> (JobIdPayload) The server-generated ID of the job for which to get the metadata. |
{- "logs": [
- {
- "timestamp": "2019-08-24T14:15:22Z",
- "healthStatus": "ok",
- "code": "string",
- "message": "string"
}
]
}
Returns detailed metrics about a job.
jobId required | string <uuid> (JobIdPayload) The server-generated ID of the job for which to get the metadata. |
{- "totals": {
- "numBytesProcessed": 0,
- "numRowsPersisted": 0,
- "numRowsProcessed": 0,
- "numRowsProcessedWithWarning": 0,
- "numRowsSkippedByError": 0,
- "numRowsSkippedByFilter": 0
}
}
Resets a streaming ingestion job.
This resets the point from which Polaris ingests streaming data to
readFromPoint
set in current streaming ingestion jobs. Only applies
when there was a previous streaming ingestion job that used the same
topic or stream name for the same target table. For more information,
see Reset streaming job offset.
jobId required | string <uuid> (JobIdPayload) The server-generated ID of the job |
{ }
{- "values": [
- {
- "availability": "available",
- "createdByUser": {
- "username": "user@imply.io",
- "userId": "631db145-a6d9-492f-9c9e-99240345628a"
}, - "createdOnTimestamp": "2019-08-24T14:15:22Z",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "modifiedByUser": {
- "username": "user@imply.io",
- "userId": "631db145-a6d9-492f-9c9e-99240345628a"
}, - "modifiedOnTimestamp": "2021-06-06T00:00:00.000Z",
- "name": "example-table",
- "partitioningGranularity": "day",
- "schemaMode": "flexible",
- "storagePolicy": {
- "retain": {
- "type": "period"
}
}, - "totalDataSizeBytes": 12345678,
- "totalRows": 1234,
- "type": "detail",
- "version": 0,
- "description": "Description of example-table"
}
]
}
Creates a table.
A table to be created.
name required | string (TableName) [ 1 .. 255 ] characters The unique, immutable name of the table. |
type required | string (TableType) The type of table. Once set, you cannot change a table's type. The following table types are supported:
|
version required | integer <int64> (TableVersion) Default: 0 The version number of the table. Newly created tables are always initialized at version 0. Do not provide the version number when creating a table. When updating a table, provide the current table version number. If the version number in the request is not the current version, Polaris raises a |
clusteringColumns | Array of strings or null (TableClusteringColumns) Table columns to use for clustering. Polaris sorts table columns within the partition based on their order in this array. For aggregate tables, only dimensions (not measures) are supported for clustering.
If a nonexistent column is specified, Polaris raises a For more information, see Clustering. |
description | string or null (TableDescription) The table's description, limited to 1000 characters. |
partitioningGranularity | string (TablePartitioningGranularity) Default: "day" Enum: "hour" "day" "week" "month" "year" The time partitioning of the table. The |
Array of objects (AggregateTableColumn) The table's schema. The order of the elements determines the order of the columns in the Polaris UI and in | |
schemaMode | string (TableSchemaMode) Enum: "flexible" "strict" The table's schema enforcement mode. |
object (TableStoragePolicy) Policy specifying which data to retain and which data to drop from the table. | |
timeResolution | string (TimeResolution) Default: "millisecond" Enum: "millisecond" "second" "minute" "fifteen_minute" "thirty_minute" "hour" "day" "week" "month" "quarter" "year" The table's rollup granularity. See Introduction to data rollup for more details. |
{- "name": "example-table",
- "type": "aggregate",
- "version": 0,
- "clusteringColumns": [
- "example-column"
], - "description": "Description of example-table",
- "partitioningGranularity": "day",
- "storagePolicy": {
- "retain": {
- "type": "period"
}
}, - "schemaMode": "flexible",
- "schema": [
- {
- "type": "dimension",
- "name": "example-column",
- "dataType": "string"
}
], - "timeResolution": "millisecond"
}
{- "name": "example-table",
- "type": "aggregate",
- "version": 0,
- "availability": "available",
- "clusteringColumns": [
- "example-column"
], - "createdByUser": {
- "username": "user@imply.io",
- "userId": "631db145-a6d9-492f-9c9e-99240345628a"
}, - "createdOnTimestamp": "2019-08-24T14:15:22Z",
- "description": "Description of example-table",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "modifiedByUser": {
- "username": "user@imply.io",
- "userId": "631db145-a6d9-492f-9c9e-99240345628a"
}, - "modifiedOnTimestamp": "2021-06-06T00:00:00.000Z",
- "partitioningGranularity": "day",
- "queryableSchema": [
- {
- "name": "example-column",
- "dataType": "string"
}
], - "storagePolicy": {
- "retain": {
- "type": "period"
}
}, - "schemaMode": "flexible",
- "segmentCompactedBytes": 12345678,
- "segmentTotalBytes": 12345678,
- "totalDataSizeBytes": 12345678,
- "totalRows": 1234,
- "schema": [
- {
- "type": "dimension",
- "name": "example-column",
- "dataType": "string"
}
], - "timeResolution": "millisecond"
}
Returns information for a single table.
tableRef required | string (TableName) [ 1 .. 255 ] characters Example: example-table Name of the table for which to get information. |
{- "name": "example-table",
- "type": "aggregate",
- "version": 0,
- "availability": "available",
- "clusteringColumns": [
- "example-column"
], - "createdByUser": {
- "username": "user@imply.io",
- "userId": "631db145-a6d9-492f-9c9e-99240345628a"
}, - "createdOnTimestamp": "2019-08-24T14:15:22Z",
- "description": "Description of example-table",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "modifiedByUser": {
- "username": "user@imply.io",
- "userId": "631db145-a6d9-492f-9c9e-99240345628a"
}, - "modifiedOnTimestamp": "2021-06-06T00:00:00.000Z",
- "partitioningGranularity": "day",
- "queryableSchema": [
- {
- "name": "example-column",
- "dataType": "string"
}
], - "storagePolicy": {
- "retain": {
- "type": "period"
}
}, - "schemaMode": "flexible",
- "segmentCompactedBytes": 12345678,
- "segmentTotalBytes": 12345678,
- "totalDataSizeBytes": 12345678,
- "totalRows": 1234,
- "schema": [
- {
- "type": "dimension",
- "name": "example-column",
- "dataType": "string"
}
], - "timeResolution": "millisecond"
}
Updates a table.
You can add columns to a table's schema at any point. You can only update or remove columns from a table's schema when the table is empty and has no active ingestion jobs.
tableRef required | string Name of the table to update. |
The table to be updated.
name required | string (TableName) [ 1 .. 255 ] characters The unique, immutable name of the table. |
type required | string (TableType) The type of table. Once set, you cannot change a table's type. The following table types are supported:
|
version required | integer <int64> (TableVersion) Default: 0 The version number of the table. Newly created tables are always initialized at version 0. Do not provide the version number when creating a table. When updating a table, provide the current table version number. If the version number in the request is not the current version, Polaris raises a |
clusteringColumns | Array of strings or null (TableClusteringColumns) Table columns to use for clustering. Polaris sorts table columns within the partition based on their order in this array. For aggregate tables, only dimensions (not measures) are supported for clustering.
If a nonexistent column is specified, Polaris raises a For more information, see Clustering. |
description | string or null (TableDescription) The table's description, limited to 1000 characters. |
partitioningGranularity | string (TablePartitioningGranularity) Default: "day" Enum: "hour" "day" "week" "month" "year" The time partitioning of the table. The |
Array of objects (AggregateTableColumn) The table's schema. The order of the elements determines the order of the columns in the Polaris UI and in | |
schemaMode | string (TableSchemaMode) Enum: "flexible" "strict" The table's schema enforcement mode. |
object (TableStoragePolicy) Policy specifying which data to retain and which data to drop from the table. | |
timeResolution | string (TimeResolution) Default: "millisecond" Enum: "millisecond" "second" "minute" "fifteen_minute" "thirty_minute" "hour" "day" "week" "month" "quarter" "year" The table's rollup granularity. See Introduction to data rollup for more details. |
{- "name": "example-table",
- "type": "aggregate",
- "version": 0,
- "clusteringColumns": [
- "example-column"
], - "description": "Description of example-table",
- "partitioningGranularity": "day",
- "storagePolicy": {
- "retain": {
- "type": "period"
}
}, - "schemaMode": "flexible",
- "schema": [
- {
- "type": "dimension",
- "name": "example-column",
- "dataType": "string"
}
], - "timeResolution": "millisecond"
}
{- "name": "example-table",
- "type": "aggregate",
- "version": 0,
- "availability": "available",
- "clusteringColumns": [
- "example-column"
], - "createdByUser": {
- "username": "user@imply.io",
- "userId": "631db145-a6d9-492f-9c9e-99240345628a"
}, - "createdOnTimestamp": "2019-08-24T14:15:22Z",
- "description": "Description of example-table",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "modifiedByUser": {
- "username": "user@imply.io",
- "userId": "631db145-a6d9-492f-9c9e-99240345628a"
}, - "modifiedOnTimestamp": "2021-06-06T00:00:00.000Z",
- "partitioningGranularity": "day",
- "queryableSchema": [
- {
- "name": "example-column",
- "dataType": "string"
}
], - "storagePolicy": {
- "retain": {
- "type": "period"
}
}, - "schemaMode": "flexible",
- "segmentCompactedBytes": 12345678,
- "segmentTotalBytes": 12345678,
- "totalDataSizeBytes": 12345678,
- "totalRows": 1234,
- "schema": [
- {
- "type": "dimension",
- "name": "example-column",
- "dataType": "string"
}
], - "timeResolution": "millisecond"
}