openapi: 3.1.0 info: title: Caspio REST Applications Tables API description: 'The Caspio Bridge REST API (v3) provides programmatic access to tables, views, records, files, users, applications, and tasks in a Caspio account. The base URL is account-specific (per-tenant integration URL) and authentication uses an OAuth 2.0 client credentials flow to obtain a bearer access token. This best-effort OpenAPI is derived from the public help documentation at https://howto.caspio.com/web-services-api/rest-api/ and the demo Swagger at https://demo.caspio.com/integrations/rest/swagger. ' version: 3.0.0 contact: name: Caspio url: https://www.caspio.com/ servers: - url: https://{account}.caspio.com/rest/v3 description: Per-account Caspio Bridge REST endpoint variables: account: default: demo description: Caspio account subdomain security: - bearerAuth: [] tags: - name: Tables description: Table schema and record operations paths: /tables: get: tags: - Tables summary: List all tables in the account operationId: listTables responses: '200': description: A list of table names content: application/json: schema: type: object properties: Result: type: array items: type: string /tables/{tableName}: get: tags: - Tables summary: Get a table's metadata operationId: getTable parameters: - $ref: '#/components/parameters/TableName' responses: '200': description: Table metadata /tables/{tableName}/fields: get: tags: - Tables summary: List fields (columns) for a table operationId: listTableFields parameters: - $ref: '#/components/parameters/TableName' responses: '200': description: Field definitions /tables/{tableName}/records: get: tags: - Tables summary: Query table records operationId: queryTableRecords parameters: - $ref: '#/components/parameters/TableName' - in: query name: q.select schema: type: string - in: query name: q.where schema: type: string - in: query name: q.orderBy schema: type: string - in: query name: q.groupBy schema: type: string - in: query name: q.limit schema: type: integer - in: query name: q.pageNumber schema: type: integer - in: query name: q.pageSize schema: type: integer responses: '200': description: Records page content: application/json: schema: $ref: '#/components/schemas/RecordsPage' post: tags: - Tables summary: Insert one record into a table operationId: insertTableRecord parameters: - $ref: '#/components/parameters/TableName' - in: query name: response schema: type: string enum: - rows requestBody: required: true content: application/json: schema: type: object responses: '201': description: Record created put: tags: - Tables summary: Update table records matching a where clause operationId: updateTableRecords parameters: - $ref: '#/components/parameters/TableName' - in: query name: q.where required: true schema: type: string requestBody: required: true content: application/json: schema: type: object responses: '200': description: Records updated delete: tags: - Tables summary: Delete table records matching a where clause operationId: deleteTableRecords parameters: - $ref: '#/components/parameters/TableName' - in: query name: q.where required: true schema: type: string responses: '200': description: Records deleted components: parameters: TableName: in: path name: tableName required: true schema: type: string schemas: RecordsPage: type: object properties: Result: type: array items: type: object securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: JWT