OpenAPI Specification
openapi: 3.0.3
info:
title: Coalesce Environments Runs API
description: REST API for integrating with Coalesce, a unified data transformation platform built for Snowflake. Enables automation of pipeline runs, querying metadata about nodes and environments, user management, git account configuration, project management, and CI/CD integration for data warehouse transformation pipelines.
version: '1'
contact:
name: Coalesce Support
email: support@coalesce.io
url: https://docs.coalesce.io/docs/api
x-api-id: coalesce-api
x-audience: public
servers:
- url: https://app.coalescesoftware.io/api/v1
description: US (default)
- url: https://app.us-east-1.aws.coalescesoftware.io/api/v1
description: US East (AWS)
- url: https://app.eu.coalescesoftware.io/api/v1
description: Europe
- url: https://app.northamerica-northeast1.gcp.coalescesoftware.io/api/v1
description: Canada (GCP)
- url: https://app.australia-southeast1.gcp.coalescesoftware.io/api/v1
description: Australia (GCP)
security:
- bearerAuth: []
tags:
- name: Runs
description: List and inspect pipeline run records
paths:
/runs:
get:
operationId: listRuns
summary: List Runs
description: Returns a paginated list of pipeline runs.
tags:
- Runs
parameters:
- $ref: '#/components/parameters/limitParam'
- $ref: '#/components/parameters/orderByParam'
- $ref: '#/components/parameters/orderByDirectionParam'
- $ref: '#/components/parameters/startingFromParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/RunList'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/runs/{runID}:
parameters:
- name: runID
in: path
required: true
description: Unique identifier of the run
schema:
type: string
get:
operationId: getRun
summary: Get Run
description: Returns details for a specific pipeline run.
tags:
- Runs
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/Run'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/runs/{runID}/results:
get:
operationId: listRunResults
summary: List Run Results
description: Returns the results for a specific pipeline run.
tags:
- Runs
parameters:
- name: runID
in: path
required: true
description: Unique identifier of the run
schema:
type: string
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/RunResultList'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
components:
schemas:
RunResult:
type: object
properties:
nodeID:
type: string
description: Node identifier
nodeName:
type: string
description: Node name
status:
type: string
description: Result status for this node
rowsAffected:
type: integer
description: Number of rows affected
RunResultList:
allOf:
- $ref: '#/components/schemas/PaginatedResponse'
- type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/RunResult'
Run:
type: object
properties:
runCounter:
type: integer
description: Unique run counter / ID
status:
type: string
description: Run status
enum:
- queued
- running
- success
- failed
- cancelled
environmentID:
type: string
description: Environment the run executed in
startedAt:
type: string
format: date-time
description: Timestamp when the run started
completedAt:
type: string
format: date-time
nullable: true
description: Timestamp when the run completed
PaginatedResponse:
type: object
properties:
data:
type: array
items: {}
next:
type: string
nullable: true
description: Cursor for the next page of results; null when exhausted
Error:
type: object
properties:
error:
type: string
description: Error message
code:
type: string
description: Error code
RunList:
allOf:
- $ref: '#/components/schemas/PaginatedResponse'
- type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Run'
parameters:
startingFromParam:
name: startingFrom
in: query
description: Cursor value from the previous response's `next` field for pagination
required: false
schema:
type: string
orderByDirectionParam:
name: orderByDirection
in: query
description: Sort direction
required: false
schema:
type: string
enum:
- asc
- desc
default: asc
limitParam:
name: limit
in: query
description: Maximum number of results to return per page
required: false
schema:
type: integer
orderByParam:
name: orderBy
in: query
description: Field name to sort results by
required: false
schema:
type: string
responses:
BadRequest:
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
Unauthorized:
description: Unauthorized - invalid or missing bearer token
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: Bearer token obtained from the Deploy tab in the Coalesce application. Tokens never expire and remain valid across all environments and projects.