openapi: 3.0.1 info: title: Stacker Accounts Records API description: The Stacker API provides programmatic access to objects, records, accounts, and stacks within the Stacker no-code platform. It enables external integrations, automation workflows, and data operations across Stacker applications. Authentication uses an integration key passed via the X-Integration-Key request header. version: 1.0.0 contact: url: https://stacker.ai/ termsOfService: https://stacker.ai/terms servers: - url: https://api.go.stackerhq.com description: Stacker API security: - IntegrationKey: [] tags: - name: Records description: CRUD operations on records within an object paths: /api/external/objects/{object_sid}/search/: post: operationId: searchRecords summary: Search Records description: 'Returns a paginated list of records within the specified object. Supports filtering, sorting, field selection, and full-text search. Returns JSON by default; set Accept: text/csv to receive CSV output.' tags: - Records security: - IntegrationKey: [] parameters: - name: object_sid in: path required: true schema: type: string description: The object SID - name: X-Account-Id in: header required: true schema: type: string - name: X-Stack-Id in: header required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/SearchRequest' responses: '200': description: List of records content: application/json: schema: $ref: '#/components/schemas/RecordListResponse' text/csv: schema: type: string /api/external/objects/{object_sid}/records/: post: operationId: createRecord summary: Create Record description: Creates a new record in the specified object. tags: - Records security: - IntegrationKey: [] parameters: - name: object_sid in: path required: true schema: type: string description: The object SID - name: X-Account-Id in: header required: true schema: type: string - name: X-Stack-Id in: header required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/RecordCreateRequest' responses: '201': description: Created record content: application/json: schema: $ref: '#/components/schemas/Record' /api/external/objects/{object_sid}/records/{record_sid}/: get: operationId: getRecord summary: Get Record description: Returns a single record by its SID. tags: - Records security: - IntegrationKey: [] parameters: - name: object_sid in: path required: true schema: type: string - name: record_sid in: path required: true schema: type: string - name: include_fields in: query required: false schema: type: string description: JSON array string of field API names to include in response - name: X-Account-Id in: header required: true schema: type: string - name: X-Stack-Id in: header required: true schema: type: string responses: '200': description: Record object content: application/json: schema: $ref: '#/components/schemas/Record' patch: operationId: updateRecord summary: Update Record description: Partially updates a record. Only provided fields are updated. tags: - Records security: - IntegrationKey: [] parameters: - name: object_sid in: path required: true schema: type: string - name: record_sid in: path required: true schema: type: string - name: X-Account-Id in: header required: true schema: type: string - name: X-Stack-Id in: header required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/RecordUpdateRequest' responses: '200': description: Updated record content: application/json: schema: $ref: '#/components/schemas/Record' delete: operationId: deleteRecord summary: Delete Record description: Deletes a record by its SID. tags: - Records security: - IntegrationKey: [] parameters: - name: object_sid in: path required: true schema: type: string - name: record_sid in: path required: true schema: type: string - name: X-Account-Id in: header required: true schema: type: string - name: X-Stack-Id in: header required: true schema: type: string responses: '204': description: Record deleted /api/external/objects/{object_sid}/bulk-records/: post: operationId: bulkUpsertRecords summary: Bulk Upsert Records description: Creates and updates up to 1000 records in a single request. Each record is provided as a JSON object with field API names as keys. tags: - Records security: - IntegrationKey: [] parameters: - name: object_sid in: path required: true schema: type: string - name: X-Account-Id in: header required: true schema: type: string - name: X-Stack-Id in: header required: true schema: type: string requestBody: required: true content: application/json: schema: type: array items: type: object additionalProperties: true maxItems: 1000 responses: '200': description: Bulk operation result content: application/json: schema: $ref: '#/components/schemas/BulkUpsertResponse' components: schemas: Record: type: object properties: sid: type: string description: Record system identifier additionalProperties: true SearchRequest: type: object properties: search: type: string description: String to filter records by across specified search fields search_fields: type: array items: type: string description: Field API names to run the search against include_fields: type: array items: type: string description: Field API names to include in the response count: type: integer default: 1000 description: Number of records to return start: type: integer default: 0 description: Offset for pagination order_by: type: string description: Field API name to order results by filters: type: array items: $ref: '#/components/schemas/SearchFilter' BulkUpsertResponse: type: object properties: created: type: array items: type: string description: SIDs of created records updated: type: array items: type: string description: SIDs of updated records RecordCreateRequest: type: object description: Key-value pairs where keys are field API names and values are the field values. Optionally include include_fields to filter the response. additionalProperties: true SearchFilter: type: object properties: target: type: string description: Field API name to filter on operation: type: string description: Comparison operator (e.g., eq, neq, contains, gt, lt) value: description: Value to compare against RecordUpdateRequest: type: object description: Key-value pairs for fields to update. Only specified fields are modified. additionalProperties: true RecordListResponse: type: object properties: records: type: array items: $ref: '#/components/schemas/Record' total: type: integer count: type: integer start: type: integer securitySchemes: IntegrationKey: type: apiKey in: header name: X-Integration-Key description: Personal integration key from Account Settings > Integrations