{ "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", "json" ] }, { "type": "object", "properties": { "kind": { "type": "string", "enum": [ "string", "number", "boolean", "uri", "dateTime", "json" ] } }, "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", "description": "ID of the stash whose data should be used", "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", "json" ] }, { "type": "object", "properties": { "kind": { "type": "string", "enum": [ "string", "number", "boolean", "uri", "dateTime", "json" ] } }, "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", "description": "ID of the stash whose data should be used", "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", "description": "ID of the stash whose data should be used", "example": "20240215-job32" } }, "required": [ "$stashID" ], "additionalProperties": false, "description": "A single reference to a [stash](/api-reference/v2/stashing) whose data should be used" } ] } } } } } }, "/stashes": { "post": { "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "object", "properties": { "stashID": { "type": "string", "description": "The newly created stash" } }, "required": [ "stashID" ], "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 } } } } }, "operationId": "Create stash", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": {}, "additionalProperties": false } } } } } }, "/stashes/{stashID}/{serial}": { "post": { "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": "Adds data to a stash", "parameters": [ { "name": "stashID", "in": "path", "schema": { "type": "string", "description": "ID of the stash to add data to, e.g., `20240215-job32`", "example": "20240215-job32" }, "required": true }, { "name": "serial", "in": "path", "schema": { "type": "string", "description": "Serial identifier of the chunk of data to add to the stash. Chunks will be assembled in the sort order of their serials, so utilize ordered identifiers for each chunk if a specific ordering of data is required, e.g., `1`, `2`, etc...\nIf the order of data is not important, random, but unique, values can be used, e.g., `c2a4567`." }, "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 its data", "parameters": [ { "name": "stashID", "in": "path", "schema": { "type": "string", "description": "ID of the stash to delete, e.g., `20240215-job32`", "example": "20240215-job32" }, "required": true } ] } } }, "security": [ { "BearerAuth": [] } ], "tags": [], "servers": [ { "description": "Production", "url": "https://api.glideapps.com" } ] }