{ "openapi": "3.0.0", "info": { "title": "", "version": "" }, "components": { "schemas": {}, "responses": {}, "parameters": {}, "examples": {}, "requestBodies": {}, "headers": {}, "securitySchemes": { "BearerAuth": { "type": "http", "scheme": "bearer", "description": "Bearer authentication header of the form Bearer ``, where `` is your [auth token](/api-reference/v2/general/authentication)." } }, "links": {}, "callbacks": {} }, "paths": { "/tables": { "get": { "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "ID of the table, e.g., `2a1bad8b-cf7c-44437-b8c1-e3782df6`", "example": "2a1bad8b-cf7c-44437-b8c1-e3782df6" }, "name": { "type": "string", "description": "Name of the table, e.g., `Invoices`", "example": "Invoices" } }, "required": [ "id", "name" ], "additionalProperties": false }, "description": "A collection of table objects, each with `id` and `name`" } }, "required": [ "data" ], "additionalProperties": false } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "object", "properties": { "type": { "type": "string" }, "message": { "type": "string" } }, "required": [ "type", "message" ], "additionalProperties": false } }, "required": [ "error" ], "additionalProperties": false } } } } }, "description": "Gets all Big Tables in the current team" }, "post": { "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "object", "properties": { "tableID": { "type": "string", "description": "ID of the table, e.g., `2a1bad8b-cf7c-44437-b8c1-e3782df6`", "example": "2a1bad8b-cf7c-44437-b8c1-e3782df6" }, "rowIDs": { "type": "array", "items": { "type": "string" }, "description": "Row IDs of added rows, e.g., \n\n```json\n[\n\t\"2a1bad8b-cf7c-44437-b8c1-e3782df6\",\n\t\"93a19-cf7c-44437-b8c1-e9acbbb\"\n]\n```", "example": [ "2a1bad8b-cf7c-44437-b8c1-e3782df6", "93a19-cf7c-44437-b8c1-e9acbbb" ] } }, "required": [ "tableID", "rowIDs" ], "additionalProperties": false } }, "required": [ "data" ], "additionalProperties": false } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "object", "properties": { "type": { "type": "string" }, "message": { "type": "string" } }, "required": [ "type", "message" ], "additionalProperties": false } }, "required": [ "error" ], "additionalProperties": false } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "column_id_reserved", "column_id_not_unique", "column_has_invalid_value", "column_id_not_found" ] }, "message": { "type": "string" } }, "required": [ "type", "message" ], "additionalProperties": false } }, "required": [ "error" ], "additionalProperties": false } } } } }, "description": "Creates a new Big Table", "parameters": [ { "name": "onSchemaError", "in": "query", "schema": { "type": "string", "enum": [ "abort", "dropColumns", "updateSchema" ], "description": "The action to take when the passed data does not match the table schema:\n\n- `abort`: Abort the entire operation and return an error.\n- `dropColumns`: Ignore the data that caused the error, and do not import those columns in the affected rows.\n- `updateSchema`: Update the schema as needed to add any missing columns or widen the data types of existing columns, and then import the data from them.", "example": "updateSchema" }, "required": false } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the table, e.g., `Invoices`", "example": "Invoices" }, "schema": { "type": "object", "properties": { "columns": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "Internal ID of the column, e.g., `fullName`. This value cannot be changed once created.", "example": "fullName" }, "displayName": { "type": "string", "description": "Human-readable display name of the column, e.g., `Full Name`. Can be modified once created.", "example": "Full Name" }, "type": { "anyOf": [ { "type": "string", "enum": [ "string", "number", "boolean", "uri", "dateTime" ] }, { "type": "object", "properties": { "kind": { "type": "string", "enum": [ "string", "number", "boolean", "uri", "dateTime" ] } }, "required": [ "kind" ], "additionalProperties": false } ], "description": "The type of the column" } }, "required": [ "id", "type" ], "additionalProperties": false }, "description": "A collection of column definitions, in the order that they are to be displayed in the table" } }, "required": [ "columns" ], "additionalProperties": false, "description": "The schema of the table as a collection of column definitions", "example": { "columns": [ { "id": "fullName", "displayName": "Full Name", "type": "string" }, { "id": "invoiceDate", "displayName": "Invoice Date", "type": "dateTime" }, { "id": "totalAmount", "displayName": "Total", "type": "number" }, { "id": "amountPaid", "displayName": "Paid", "type": "number" } ] } }, "rows": { "anyOf": [ { "type": "array", "items": { "type": "object", "additionalProperties": {} }, "description": "A collection of row objects conforming to the schema of the table where keys are the column IDs and values are the column values:\n\n```json\n[\n\t{\n\t\t\"fullName\": \"Alex Bard\",\n\t\t\"invoiceDate\": \"2024-07-29T14:04:15.561Z\",\n\t\t\"totalAmount\": 34.50,\n\t\t\"amountPaid\": 0\n\t},\n\t{\n\t\t\"fullName\": \"Alicia Hines\",\n\t\t\"invoiceDate\": \"2023-06-15T10:30:00.000Z\",\n\t\t\"totalAmount\": 50.75,\n\t\t\"amountPaid\": 20\n\t}\n]\n```", "example": [ { "fullName": "Alex Bard", "invoiceDate": "2024-07-29T14:04:15.561Z", "totalAmount": 34.5, "amountPaid": 0 }, { "fullName": "Alicia Hines", "invoiceDate": "2023-06-15T10:30:00.000Z", "totalAmount": 50.75, "amountPaid": 20 } ] }, { "type": "object", "properties": { "$stashID": { "type": "string", "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,255}$", "description": "ID of the stash, e.g., `20240215-job32`", "example": "20240215-job32" } }, "required": [ "$stashID" ], "additionalProperties": false, "description": "A single reference to a [stash](/api-reference/v2/stashing) whose data should be used" } ] } }, "required": [ "name", "schema", "rows" ], "additionalProperties": false } } } } } }, "/tables/{tableID}": { "put": { "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "object", "properties": { "rowIDs": { "type": "array", "items": { "type": "string" }, "description": "Row IDs of added rows, e.g., \n\n```json\n[\n\t\"2a1bad8b-cf7c-44437-b8c1-e3782df6\",\n\t\"93a19-cf7c-44437-b8c1-e9acbbb\"\n]\n```", "example": [ "2a1bad8b-cf7c-44437-b8c1-e3782df6", "93a19-cf7c-44437-b8c1-e9acbbb" ] } }, "required": [ "rowIDs" ], "additionalProperties": false } }, "required": [ "data" ], "additionalProperties": false } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "object", "properties": { "type": { "type": "string" }, "message": { "type": "string" } }, "required": [ "type", "message" ], "additionalProperties": false } }, "required": [ "error" ], "additionalProperties": false } } } }, "404": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "table_not_found", "table_not_big_table" ] }, "message": { "type": "string" } }, "required": [ "type", "message" ], "additionalProperties": false } }, "required": [ "error" ], "additionalProperties": false } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "column_id_reserved", "column_id_not_unique", "column_has_invalid_value", "column_id_not_found" ] }, "message": { "type": "string" } }, "required": [ "type", "message" ], "additionalProperties": false } }, "required": [ "error" ], "additionalProperties": false } } } } }, "description": "Overwrites a Big Table with new schema and/or data", "parameters": [ { "name": "tableID", "in": "path", "schema": { "type": "string", "description": "ID of the table, e.g., `2a1bad8b-cf7c-44437-b8c1-e3782df6`", "example": "2a1bad8b-cf7c-44437-b8c1-e3782df6" }, "required": true }, { "name": "onSchemaError", "in": "query", "schema": { "type": "string", "enum": [ "abort", "dropColumns", "updateSchema" ], "description": "The action to take when the passed data does not match the table schema:\n\n- `abort`: Abort the entire operation and return an error.\n- `dropColumns`: Ignore the data that caused the error, and do not import those columns in the affected rows.\n- `updateSchema`: Update the schema as needed to add any missing columns or widen the data types of existing columns, and then import the data from them.", "example": "updateSchema" }, "required": false } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "schema": { "type": "object", "properties": { "columns": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "Internal ID of the column, e.g., `fullName`. This value cannot be changed once created.", "example": "fullName" }, "displayName": { "type": "string", "description": "Human-readable display name of the column, e.g., `Full Name`. Can be modified once created.", "example": "Full Name" }, "type": { "anyOf": [ { "type": "string", "enum": [ "string", "number", "boolean", "uri", "dateTime" ] }, { "type": "object", "properties": { "kind": { "type": "string", "enum": [ "string", "number", "boolean", "uri", "dateTime" ] } }, "required": [ "kind" ], "additionalProperties": false } ], "description": "The type of the column" } }, "required": [ "id", "type" ], "additionalProperties": false }, "description": "A collection of column definitions, in the order that they are to be displayed in the table" } }, "required": [ "columns" ], "additionalProperties": false, "description": "The schema of the table as a collection of column definitions", "example": { "columns": [ { "id": "fullName", "displayName": "Full Name", "type": "string" }, { "id": "invoiceDate", "displayName": "Invoice Date", "type": "dateTime" }, { "id": "totalAmount", "displayName": "Total", "type": "number" }, { "id": "amountPaid", "displayName": "Paid", "type": "number" } ] } }, "rows": { "anyOf": [ { "type": "array", "items": { "type": "object", "additionalProperties": {} }, "description": "A collection of row objects conforming to the schema of the table where keys are the column IDs and values are the column values:\n\n```json\n[\n\t{\n\t\t\"fullName\": \"Alex Bard\",\n\t\t\"invoiceDate\": \"2024-07-29T14:04:15.561Z\",\n\t\t\"totalAmount\": 34.50,\n\t\t\"amountPaid\": 0\n\t},\n\t{\n\t\t\"fullName\": \"Alicia Hines\",\n\t\t\"invoiceDate\": \"2023-06-15T10:30:00.000Z\",\n\t\t\"totalAmount\": 50.75,\n\t\t\"amountPaid\": 20\n\t}\n]\n```", "example": [ { "fullName": "Alex Bard", "invoiceDate": "2024-07-29T14:04:15.561Z", "totalAmount": 34.5, "amountPaid": 0 }, { "fullName": "Alicia Hines", "invoiceDate": "2023-06-15T10:30:00.000Z", "totalAmount": 50.75, "amountPaid": 20 } ] }, { "type": "object", "properties": { "$stashID": { "type": "string", "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,255}$", "description": "ID of the stash, e.g., `20240215-job32`", "example": "20240215-job32" } }, "required": [ "$stashID" ], "additionalProperties": false, "description": "A single reference to a [stash](/api-reference/v2/stashing) whose data should be used" } ] } }, "required": [ "schema", "rows" ], "additionalProperties": false } } } } } }, "/tables/{tableID}/rows": { "post": { "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "object", "properties": { "rowIDs": { "type": "array", "items": { "type": "string" }, "description": "Row IDs of added rows, e.g., \n\n```json\n[\n\t\"2a1bad8b-cf7c-44437-b8c1-e3782df6\",\n\t\"93a19-cf7c-44437-b8c1-e9acbbb\"\n]\n```", "example": [ "2a1bad8b-cf7c-44437-b8c1-e3782df6", "93a19-cf7c-44437-b8c1-e9acbbb" ] } }, "required": [ "rowIDs" ], "additionalProperties": false } }, "required": [ "data" ], "additionalProperties": false } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "object", "properties": { "type": { "type": "string" }, "message": { "type": "string" } }, "required": [ "type", "message" ], "additionalProperties": false } }, "required": [ "error" ], "additionalProperties": false } } } }, "404": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "table_not_found", "table_not_big_table" ] }, "message": { "type": "string" } }, "required": [ "type", "message" ], "additionalProperties": false } }, "required": [ "error" ], "additionalProperties": false } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "column_has_invalid_value", "column_id_reserved", "column_id_not_found" ] }, "message": { "type": "string" } }, "required": [ "type", "message" ], "additionalProperties": false } }, "required": [ "error" ], "additionalProperties": false } } } } }, "description": "Adds rows to a Big Table", "parameters": [ { "name": "tableID", "in": "path", "schema": { "type": "string", "description": "ID of the table, e.g., `2a1bad8b-cf7c-44437-b8c1-e3782df6`", "example": "2a1bad8b-cf7c-44437-b8c1-e3782df6" }, "required": true }, { "name": "onSchemaError", "in": "query", "schema": { "type": "string", "enum": [ "abort", "dropColumns", "updateSchema" ], "description": "The action to take when the passed data does not match the table schema:\n\n- `abort`: Abort the entire operation and return an error.\n- `dropColumns`: Ignore the data that caused the error, and do not import those columns in the affected rows.\n- `updateSchema`: Update the schema as needed to add any missing columns or widen the data types of existing columns, and then import the data from them.", "example": "updateSchema" }, "required": false } ], "requestBody": { "content": { "application/json": { "schema": { "anyOf": [ { "type": "array", "items": { "type": "object", "additionalProperties": {} }, "description": "A collection of row objects conforming to the schema of the table where keys are the column IDs and values are the column values:\n\n```json\n[\n\t{\n\t\t\"fullName\": \"Alex Bard\",\n\t\t\"invoiceDate\": \"2024-07-29T14:04:15.561Z\",\n\t\t\"totalAmount\": 34.50,\n\t\t\"amountPaid\": 0\n\t},\n\t{\n\t\t\"fullName\": \"Alicia Hines\",\n\t\t\"invoiceDate\": \"2023-06-15T10:30:00.000Z\",\n\t\t\"totalAmount\": 50.75,\n\t\t\"amountPaid\": 20\n\t}\n]\n```", "example": [ { "fullName": "Alex Bard", "invoiceDate": "2024-07-29T14:04:15.561Z", "totalAmount": 34.5, "amountPaid": 0 }, { "fullName": "Alicia Hines", "invoiceDate": "2023-06-15T10:30:00.000Z", "totalAmount": 50.75, "amountPaid": 20 } ] }, { "type": "object", "properties": { "$stashID": { "type": "string", "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,255}$", "description": "ID of the stash, e.g., `20240215-job32`", "example": "20240215-job32" } }, "required": [ "$stashID" ], "additionalProperties": false, "description": "A single reference to a [stash](/api-reference/v2/stashing) whose data should be used" } ] } } } } } }, "/stashes/{stashID}/{serial}": { "put": { "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": {}, "additionalProperties": false, "description": "A 200 HTTP response code indicates that the data was successfully stashed into the stash with the given stash ID." } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "object", "properties": { "type": { "type": "string" }, "message": { "type": "string" } }, "required": [ "type", "message" ], "additionalProperties": false } }, "required": [ "error" ], "additionalProperties": false } } } } }, "description": "Sets the content of a chunk of data inside a stash", "parameters": [ { "name": "stashID", "in": "path", "schema": { "type": "string", "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,255}$", "description": "ID of the stash. The stash will be created if it doesn't already exist.", "example": "20240215-job32" }, "required": true }, { "name": "serial", "in": "path", "schema": { "type": "string", "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,255}$", "description": "Serial identifier of the chunk of data to set in the stash. If a chunk has already been sent with the same serial, its data will be overwritten. Chunks will be assembled in the sort order of their serials, so utilize ordered identifiers for each chunk if a specific ordering of data in the stash is desired, e.g., `1`, `2`, etc...\nIf the order of data is not important, random, but unique, values can be used, e.g., `c2a4567`.", "example": "1" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "additionalProperties": {} }, "description": "A collection of row objects conforming to the schema of the table where keys are the column IDs and values are the column values:\n\n```json\n[\n\t{\n\t\t\"fullName\": \"Alex Bard\",\n\t\t\"invoiceDate\": \"2024-07-29T14:04:15.561Z\",\n\t\t\"totalAmount\": 34.50,\n\t\t\"amountPaid\": 0\n\t},\n\t{\n\t\t\"fullName\": \"Alicia Hines\",\n\t\t\"invoiceDate\": \"2023-06-15T10:30:00.000Z\",\n\t\t\"totalAmount\": 50.75,\n\t\t\"amountPaid\": 20\n\t}\n]\n```", "example": [ { "fullName": "Alex Bard", "invoiceDate": "2024-07-29T14:04:15.561Z", "totalAmount": 34.5, "amountPaid": 0 }, { "fullName": "Alicia Hines", "invoiceDate": "2023-06-15T10:30:00.000Z", "totalAmount": 50.75, "amountPaid": 20 } ] } } } } } }, "/stashes/{stashID}": { "delete": { "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": {}, "additionalProperties": false, "description": "A 200 HTTP response code indicates that the stash with the given stash ID was successfully deleted." } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "object", "properties": { "type": { "type": "string" }, "message": { "type": "string" } }, "required": [ "type", "message" ], "additionalProperties": false } }, "required": [ "error" ], "additionalProperties": false } } } } }, "description": "Deletes a stash and all its data", "parameters": [ { "name": "stashID", "in": "path", "schema": { "type": "string", "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,255}$", "description": "ID of the stash, e.g., `20240215-job32`", "example": "20240215-job32" }, "required": true } ] } } }, "security": [ { "BearerAuth": [] } ], "tags": [], "servers": [ { "description": "Production", "url": "https://api.glideapps.com" } ] }