{ "openapi": "3.0.0", "info": { "title": "", "version": "" }, "components": { "schemas": { "A_collection_of_row_objects": { "type": "array", "items": { "type": "object", "additionalProperties": {}, "description": "A row object 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\"fullName\": \"Alex Bard\",\n\t\"invoiceDate\": \"2024-07-29T14:04:15.561Z\",\n\t\"totalAmount\": 34.50,\n\t\"amountPaid\": 0\n}\n```", "example": { "fullName": "Alex Bard", "invoiceDate": "2024-07-29T14:04:15.561Z", "totalAmount": 34.5, "amountPaid": 0 } }, "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 } ] } }, "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": "ID of the row, e.g., `zcJWnyI8Tbam21V34K8MNA`", "example": "zcJWnyI8Tbam21V34K8MNA" }, "description": "Row IDs of added rows, returned in the same order as the input rows, e.g., \n\n```json\n[\n\t\"zcJWnyI8Tbam21V34K8MNA\",\n\t\"93a19-cf7c-44437-b8c1-e9acbbb\"\n]\n```", "example": [ "zcJWnyI8Tbam21V34K8MNA", "93a19-cf7c-44437-b8c1-e9acbbb" ] }, "linkedAppIDs": { "type": "array", "items": { "type": "string" }, "description": "An array of appIDs which were successfully linked." } }, "required": [ "tableID", "rowIDs" ], "additionalProperties": false } }, "required": [ "data" ], "additionalProperties": false } } } }, "202": { "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" }, "jobID": { "type": "string", "description": "The ID of the asynchronous job" } }, "required": [ "tableID", "jobID" ], "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 } } } }, "402": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "payment_required" ] }, "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 } } } } }, "parameters": [ { "name": "x-glide-asynchronous", "in": "header", "schema": { "type": "string", "enum": [ "true", "false" ], "description": "Allow asynchronous processing, which will return a job ID. Note that this does not force asynchronouys processing. The caller must handle both synchronous and asynchronous responses." }, "required": false }, { "name": "name", "in": "query", "schema": { "type": "string", "description": "Name of the table. Required when the name is not passed in the request body. It is an error to pass a name in both this query parameter and the request body.", "example": "Invoices" }, "required": false }, { "name": "appsToLink", "in": "query", "schema": { "type": "array", "items": { "type": "string" }, "description": "An array of app IDs to link the new table to." }, "required": false }, { "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": "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", "uri", "imageURI", "audioURI", "markdown", "phoneNumber", "emailAddress", "emoji", "date", "time", "dateTime", "duration", "number", "boolean", "json" ] }, { "anyOf": [ { "type": "object", "properties": { "kind": { "type": "string", "enum": [ "string", "uri", "imageURI", "audioURI", "markdown", "phoneNumber", "emailAddress", "emoji", "date", "time", "dateTime", "duration", "number", "boolean", "json" ] } }, "required": [ "kind" ], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "type": "string", "enum": [ "array" ] }, "items": { "type": "object", "properties": { "kind": { "type": "string", "enum": [ "string", "uri", "imageURI", "audioURI", "markdown", "phoneNumber", "emailAddress", "emoji", "date", "time", "dateTime", "duration", "number", "boolean", "json" ] } }, "required": [ "kind" ], "additionalProperties": false } }, "required": [ "kind", "items" ], "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. If this is not provided, the schema will be inferred from the data.", "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": [ { "$ref": "#/components/schemas/A_collection_of_row_objects" }, { "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." } ] }, "appsToLink": { "type": "array", "items": { "type": "string" }, "description": "An array of app IDs to link the new table to." } }, "required": [ "name", "rows" ], "additionalProperties": false }, { "$ref": "#/components/schemas/A_collection_of_row_objects" } ] } }, "text/csv": { "schema": { "type": "string", "description": "A CSV string. The first line is column IDs, and each subsequent line is a row of data. The schema will be inferred from the data. The name of the table must be passed in the query parameter `name`.", "example": "Name,Age,Birthday\nAlice,25,2024-08-29T09:46:16.722Z\nBob,30,2020-01-15T09:00:16.722Z" } }, "text/tab-separated-values": { "schema": { "type": "string", "description": "A TSV string. The first line is column IDs, and each subsequent line is a row of data. The schema will be inferred from the data. The name of the table must be passed in the query parameter `name`.", "example": "Name\tAge\tBirthday\nAlice\t25\t2024-08-29T09:46:16.722Z\nBob\t30\t2020-01-15T09:00:16.722Z" } } } }, "description": "Creates a new Big Table" } }, "/tables/import": { "post": { "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "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": "ID of the row, e.g., `zcJWnyI8Tbam21V34K8MNA`", "example": "zcJWnyI8Tbam21V34K8MNA" }, "description": "Row IDs of added rows, returned in the same order as the input rows, e.g., \n\n```json\n[\n\t\"zcJWnyI8Tbam21V34K8MNA\",\n\t\"93a19-cf7c-44437-b8c1-e9acbbb\"\n]\n```", "example": [ "zcJWnyI8Tbam21V34K8MNA", "93a19-cf7c-44437-b8c1-e9acbbb" ] }, "linkedAppIDs": { "type": "array", "items": { "type": "string" }, "description": "An array of appIDs which were successfully linked." } }, "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 } } } }, "402": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "payment_required" ] }, "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 } } } } }, "parameters": [ { "name": "appsToLink", "in": "query", "schema": { "type": "array", "items": { "type": "string" }, "description": "An array of app IDs to link the new table to." }, "required": false }, { "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": { "displayName": { "type": "string", "description": "Name of the table, e.g., `Invoices`", "example": "Invoices" }, "fromUrl": { "type": "string", "format": "uri", "description": "The url of the table to fetch from. Required when the name is not passed in the request body. It is an error to pass a name in both this query parameter and the request body." }, "appsToLink": { "type": "array", "items": { "type": "string" }, "description": "An array of app IDs to link the new table to." } }, "required": [ "fromUrl" ], "additionalProperties": false } }, "text/csv": { "schema": { "type": "string", "description": "A CSV string. The first line is column IDs, and each subsequent line is a row of data. The schema will be inferred from the data. The name of the table must be passed in the query parameter `name`.", "example": "Name,Age,Birthday\nAlice,25,2024-08-29T09:46:16.722Z\nBob,30,2020-01-15T09:00:16.722Z" } }, "text/tab-separated-values": { "schema": { "type": "string", "description": "A TSV string. The first line is column IDs, and each subsequent line is a row of data. The schema will be inferred from the data. The name of the table must be passed in the query parameter `name`.", "example": "Name\tAge\tBirthday\nAlice\t25\t2024-08-29T09:46:16.722Z\nBob\t30\t2020-01-15T09:00:16.722Z" } } } }, "description": "Creates a new Big Table from a URL" } }, "/tables/{tableID}": { "put": { "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "object", "properties": { "rowIDs": { "type": "array", "items": { "type": "string", "description": "ID of the row, e.g., `zcJWnyI8Tbam21V34K8MNA`", "example": "zcJWnyI8Tbam21V34K8MNA" }, "description": "Row IDs of added rows, returned in the same order as the input rows, e.g., \n\n```json\n[\n\t\"zcJWnyI8Tbam21V34K8MNA\",\n\t\"93a19-cf7c-44437-b8c1-e9acbbb\"\n]\n```", "example": [ "zcJWnyI8Tbam21V34K8MNA", "93a19-cf7c-44437-b8c1-e9acbbb" ] } }, "required": [ "rowIDs" ], "additionalProperties": false } }, "required": [ "data" ], "additionalProperties": false } } } }, "202": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "object", "properties": { "jobID": { "type": "string", "description": "The ID of the asynchronous job" } }, "required": [ "jobID" ], "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 } } } }, "402": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "payment_required" ] }, "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 } } } }, "412": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "precondition_failed" ] }, "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 } } } } }, "parameters": [ { "name": "x-glide-asynchronous", "in": "header", "schema": { "type": "string", "enum": [ "true", "false" ], "description": "Allow asynchronous processing, which will return a job ID. Note that this does not force asynchronouys processing. The caller must handle both synchronous and asynchronous responses." }, "required": false }, { "name": "if-match", "in": "header", "schema": { "type": "string", "pattern": "^\"[0-9]+\"$", "description": "ETag of the current table version. If provided, the request will fail if the table has been updated since the given version. See [Data Versioning](/api-reference/v2/tables/versioning)." }, "required": false }, { "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": "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", "uri", "imageURI", "audioURI", "markdown", "phoneNumber", "emailAddress", "emoji", "date", "time", "dateTime", "duration", "number", "boolean", "json" ] }, { "anyOf": [ { "type": "object", "properties": { "kind": { "type": "string", "enum": [ "string", "uri", "imageURI", "audioURI", "markdown", "phoneNumber", "emailAddress", "emoji", "date", "time", "dateTime", "duration", "number", "boolean", "json" ] } }, "required": [ "kind" ], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "type": "string", "enum": [ "array" ] }, "items": { "type": "object", "properties": { "kind": { "type": "string", "enum": [ "string", "uri", "imageURI", "audioURI", "markdown", "phoneNumber", "emailAddress", "emoji", "date", "time", "dateTime", "duration", "number", "boolean", "json" ] } }, "required": [ "kind" ], "additionalProperties": false } }, "required": [ "kind", "items" ], "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": [ { "$ref": "#/components/schemas/A_collection_of_row_objects" }, { "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": [ "rows" ], "additionalProperties": false }, { "$ref": "#/components/schemas/A_collection_of_row_objects" } ] } }, "text/csv": { "schema": { "type": "string", "description": "A CSV string. The first line is column IDs, and each subsequent line is a row of data.", "example": "Name,Age,Birthday\nAlice,25,2024-08-29T09:46:16.722Z\nBob,30,2020-01-15T09:00:16.722Z" } }, "text/tab-separated-values": { "schema": { "type": "string", "description": "A TSV string. The first line is column IDs, and each subsequent line is a row of data.", "example": "Name\tAge\tBirthday\nAlice\t25\t2024-08-29T09:46:16.722Z\nBob\t30\t2020-01-15T09:00:16.722Z" } } } }, "description": "Replaces the schema and/or data of a Big Table" } }, "/tables/{tableID}/rows": { "head": { "responses": { "200": { "description": "", "headers": { "ETag": { "schema": { "type": "string", "description": "The current version of the table" }, "required": true } } }, "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 } } } } }, "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 } ], "description": "Gets information about the data in a Big Table" }, "get": { "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "additionalProperties": {}, "description": "A row object 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\"fullName\": \"Alex Bard\",\n\t\"invoiceDate\": \"2024-07-29T14:04:15.561Z\",\n\t\"totalAmount\": 34.50,\n\t\"amountPaid\": 0\n}\n```", "example": { "fullName": "Alex Bard", "invoiceDate": "2024-07-29T14:04:15.561Z", "totalAmount": 34.5, "amountPaid": 0 } }, "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 } ] }, "continuation": { "type": "string", "description": "A continuation token for fetching the next set of rows. If this is not provided, this response contains the last set of rows." } }, "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 } } } }, "402": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "payment_required" ] }, "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 } } } } }, "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": "limit", "in": "query", "schema": { "type": "number", "description": "Maximum number of rows to return in a single response. No more than this number of rows will be returned, however fewer rows may be returned, even if there are more rows to fetch. If there are more rows, the response will include a continuation token that can be used to fetch the next set of rows." }, "required": false }, { "name": "continuation", "in": "query", "schema": { "type": "string", "description": "A continuation token from a previous response. If provided, the next set of rows will be returned. If not provided, the first set of rows will be returned." }, "required": false } ], "description": "Gets rows from a Big Table" }, "post": { "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "object", "properties": { "rowIDs": { "type": "array", "items": { "type": "string", "description": "ID of the row, e.g., `zcJWnyI8Tbam21V34K8MNA`", "example": "zcJWnyI8Tbam21V34K8MNA" }, "description": "Row IDs of added rows, returned in the same order as the input rows, e.g., \n\n```json\n[\n\t\"zcJWnyI8Tbam21V34K8MNA\",\n\t\"93a19-cf7c-44437-b8c1-e9acbbb\"\n]\n```", "example": [ "zcJWnyI8Tbam21V34K8MNA", "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 } } } }, "402": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "payment_required" ] }, "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 } } } } }, "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 row object 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\"fullName\": \"Alex Bard\",\n\t\"invoiceDate\": \"2024-07-29T14:04:15.561Z\",\n\t\"totalAmount\": 34.50,\n\t\"amountPaid\": 0\n}\n```", "example": { "fullName": "Alex Bard", "invoiceDate": "2024-07-29T14:04:15.561Z", "totalAmount": 34.5, "amountPaid": 0 } }, "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." } ] } }, "text/csv": { "schema": { "type": "string", "description": "A CSV string. The first line is column IDs, and each subsequent line is a row of data.", "example": "Name,Age,Birthday\nAlice,25,2024-08-29T09:46:16.722Z\nBob,30,2020-01-15T09:00:16.722Z" } }, "text/tab-separated-values": { "schema": { "type": "string", "description": "A TSV string. The first line is column IDs, and each subsequent line is a row of data.", "example": "Name\tAge\tBirthday\nAlice\t25\t2024-08-29T09:46:16.722Z\nBob\t30\t2020-01-15T09:00:16.722Z" } } } }, "description": "Adds rows to a Big Table" } }, "/tables/{tableID}/rows/{rowID}": { "get": { "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "object", "additionalProperties": {}, "description": "A row object 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\"fullName\": \"Alex Bard\",\n\t\"invoiceDate\": \"2024-07-29T14:04:15.561Z\",\n\t\"totalAmount\": 34.50,\n\t\"amountPaid\": 0\n}\n```", "example": { "fullName": "Alex Bard", "invoiceDate": "2024-07-29T14:04:15.561Z", "totalAmount": 34.5, "amountPaid": 0 } } }, "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 } } } }, "402": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "payment_required" ] }, "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", "row_not_found" ] }, "message": { "type": "string" } }, "required": [ "type", "message" ], "additionalProperties": false } }, "required": [ "error" ], "additionalProperties": false } } } } }, "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": "rowID", "in": "path", "schema": { "type": "string", "description": "ID of the row, e.g., `zcJWnyI8Tbam21V34K8MNA`", "example": "zcJWnyI8Tbam21V34K8MNA" }, "required": true } ], "description": "Gets a single row from a Big Table by row ID" }, "patch": { "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": {}, "additionalProperties": false, "description": "A 200 HTTP response code indicates that the row was successfully updated." } } } }, "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 } } } }, "402": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "payment_required" ] }, "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": [ "row_not_found", "table_not_found", "table_not_big_table" ] }, "message": { "type": "string" } }, "required": [ "type", "message" ], "additionalProperties": false } }, "required": [ "error" ], "additionalProperties": false } } } }, "412": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "precondition_failed" ] }, "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 } } } } }, "parameters": [ { "name": "if-match", "in": "header", "schema": { "type": "string", "pattern": "^\"[0-9]+\"$", "description": "ETag of the current table version. If provided, the request will fail if this row has been updated since the given version. See [Data Versioning](/api-reference/v2/tables/versioning)." }, "required": false }, { "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": "rowID", "in": "path", "schema": { "type": "string", "description": "ID of the row, e.g., `zcJWnyI8Tbam21V34K8MNA`", "example": "zcJWnyI8Tbam21V34K8MNA" }, "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", "additionalProperties": {}, "description": "A row object 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\"fullName\": \"Alex Bard\",\n\t\"invoiceDate\": \"2024-07-29T14:04:15.561Z\",\n\t\"totalAmount\": 34.50,\n\t\"amountPaid\": 0\n}\n```", "example": { "fullName": "Alex Bard", "invoiceDate": "2024-07-29T14:04:15.561Z", "totalAmount": 34.5, "amountPaid": 0 } } } } }, "description": "Updates a row in a Big Table" }, "delete": { "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": {}, "additionalProperties": false, "description": "A 200 HTTP response code indicates that the row does not exist or 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 } } } }, "402": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "payment_required" ] }, "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 } } } } }, "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": "rowID", "in": "path", "schema": { "type": "string", "description": "ID of the row, e.g., `zcJWnyI8Tbam21V34K8MNA`", "example": "zcJWnyI8Tbam21V34K8MNA" }, "required": true } ], "description": "Deletes a row from a Big Table" } }, "/jobs/{jobID}": { "get": { "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "object", "properties": { "status": { "type": "string", "enum": [ "running", "succeeded", "failed" ], "description": "The current status of the job" }, "result": { "description": "The result of the job, if it `succeeded`" }, "error": { "type": "object", "properties": { "message": { "type": "string", "description": "A message describing the error" } }, "required": [ "message" ], "additionalProperties": false, "description": "The error information, if the job `failed`" } }, "required": [ "status" ], "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": [ "job_not_found" ] }, "message": { "type": "string" } }, "required": [ "type", "message" ], "additionalProperties": false } }, "required": [ "error" ], "additionalProperties": false } } } } }, "parameters": [ { "name": "jobID", "in": "path", "schema": { "type": "string", "description": "The ID of the job to check" }, "required": true } ], "description": "Check whether a job is finished, and get its result" } }, "/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 } } } } }, "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 row object 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\"fullName\": \"Alex Bard\",\n\t\"invoiceDate\": \"2024-07-29T14:04:15.561Z\",\n\t\"totalAmount\": 34.50,\n\t\"amountPaid\": 0\n}\n```", "example": { "fullName": "Alex Bard", "invoiceDate": "2024-07-29T14:04:15.561Z", "totalAmount": 34.5, "amountPaid": 0 } }, "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 } ] } }, "text/csv": { "schema": { "type": "string", "description": "A CSV string. The first line is column IDs, and each subsequent line is a row of data.", "example": "Name,Age,Birthday\nAlice,25,2024-08-29T09:46:16.722Z\nBob,30,2020-01-15T09:00:16.722Z" } }, "text/tab-separated-values": { "schema": { "type": "string", "description": "A TSV string. The first line is column IDs, and each subsequent line is a row of data.", "example": "Name\tAge\tBirthday\nAlice\t25\t2024-08-29T09:46:16.722Z\nBob\t30\t2020-01-15T09:00:16.722Z" } } } }, "description": "Sets the content of a chunk of data inside a stash" } }, "/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 } } } } }, "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 } ], "description": "Deletes a stash and all its data" } }, "/apps/{appID}/uploads": { "post": { "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "object", "properties": { "uploadID": { "type": "string", "description": "ID of the upload, e.g., `upload-123`", "example": "upload-123" }, "uploadLocation": { "type": "string", "description": "Pre-signed upload URL for the file bytes", "example": "https://storage.googleapis.com/glide-uploads/example?X-Goog-Algorithm=GOOG4-RSA-SHA256" } }, "required": [ "uploadID", "uploadLocation" ], "additionalProperties": false } }, "required": [ "data" ], "additionalProperties": false } } } }, "402": { "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 } } } }, "403": { "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 } } } }, "413": { "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 } } } } }, "parameters": [ { "name": "appID", "in": "path", "schema": { "type": "string", "description": "ID of the app, e.g., `mT91fPcZCWigkZXgSZGJ`", "example": "mT91fPcZCWigkZXgSZGJ" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "contentType": { "type": "string", "description": "MIME type of the file, e.g., `image/png`", "example": "image/png" }, "fileName": { "type": "string", "description": "Name of the file", "example": "logo.png" } }, "required": [ "contentType", "fileName" ], "additionalProperties": false } } } } } }, "/apps/{appID}/uploads/{uploadID}/complete": { "post": { "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "object", "properties": { "url": { "type": "string", "description": "Public URL for the uploaded file", "example": "https://storage.googleapis.com/glide-uploads/example.png" } }, "required": [ "url" ], "additionalProperties": false } }, "required": [ "data" ], "additionalProperties": false } } } }, "402": { "description": "Upload quota exceeded", "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 } } } }, "403": { "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" }, "message": { "type": "string" } }, "required": [ "type", "message" ], "additionalProperties": false } }, "required": [ "error" ], "additionalProperties": false } } } }, "409": { "description": "Upload incomplete", "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 } } } }, "413": { "description": "File too large", "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 } } } } }, "parameters": [ { "name": "appID", "in": "path", "schema": { "type": "string", "description": "ID of the app, e.g., `mT91fPcZCWigkZXgSZGJ`", "example": "mT91fPcZCWigkZXgSZGJ" }, "required": true }, { "name": "uploadID", "in": "path", "schema": { "type": "string", "description": "ID of the upload, e.g., `upload-123`", "example": "upload-123" }, "required": true } ] } } }, "security": [ { "BearerAuth": [] } ], "tags": [], "servers": [ { "description": "Production", "url": "https://api.glideapps.com" } ] }