openapi: 3.2.0 info: title: Zoca Platform Updates API description: 'The Zoca platform API behind the Zoca web app and mobile apps: scheduling, website generation, Google Business Profile, discovery/local SEO, social media, booking enquiries, offers, clients, staff, billing and the Zoca "brain" agent layer.' version: 3.20.10 contact: {} x-apievangelist-note: Harvested verbatim from https://api.zoca.ai/swagger.json. The provider ships the default NestJS Swagger metadata (title "API Documentation", empty servers[]); title/description/servers were set by API Evangelist for identification and the unmodified original is preserved at openapi/_original/zoca-platform-swagger.json. Every path, operation, summary, parameter and response is exactly as published. servers: - url: https://api.zoca.ai description: Production tags: - name: updates paths: /updates: post: operationId: t_value parameters: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/e' responses: '201': description: The update has been successfully created. summary: Create a new update record tags: - updates /updates/backfill-gbp-posts: post: description: Finds posts that were successfully published on GBP but do not have corresponding updates, and creates the missing updates with createdAt set to the original executedAt timestamp. operationId: t_value parameters: [] requestBody: required: true content: application/json: schema: type: object properties: date: type: string description: Date in YYYY-MM-DD format example: '2026-01-31' required: - date responses: '200': description: Backfill operation completed. content: application/json: schema: type: object properties: success: type: boolean createdCount: type: number errors: type: array items: type: string summary: Backfill missing GBP post updates for a specific date tags: - updates /updates/{id}: patch: operationId: t_value parameters: [] responses: '200': description: The update has been successfully patched. summary: Patch an update record tags: - updates get: operationId: t_value parameters: - name: id required: true in: path description: ID of the update schema: {} responses: '200': description: The update details. summary: Get a single update by its ID tags: - updates /updates/entity/{entityId}: get: operationId: t_value parameters: - name: isApproved required: false in: query description: Filter for approved updates (status = APPROVED) schema: type: boolean - name: isPending required: false in: query description: Filter for pending updates (status != APPROVED) schema: type: boolean - name: updateType required: false in: query description: Type of updates to filter (UPDATE or APPROVAL) schema: enum: - UPDATE - APPROVAL type: string - name: limit required: false in: query description: Number of items per page schema: type: number - name: page required: false in: query description: Page number schema: type: number - name: entityId required: true in: path description: ID of the entity schema: {} responses: '200': description: List of updates for the entity. summary: Get all updates for a specific entity tags: - updates patch: operationId: t_value parameters: - name: entityId required: true in: path description: ID of the entity schema: {} responses: '200': description: '' summary: Mark all updates as read for a specific entity tags: - updates /updates/count/{entityId}: get: operationId: t_value parameters: - name: updateType required: false in: query description: Type of updates to filter (UPDATE or APPROVAL) schema: enum: - UPDATE - APPROVAL type: string - name: entityId required: true in: path description: ID of the entity schema: {} responses: '200': description: '' summary: Get the count of updates for a specific entity tags: - updates /updates/highlights/entity/{entityId}: get: operationId: t_value parameters: - name: entityId required: true in: path description: ID of the entity schema: {} responses: '200': description: '' summary: Get the highlights for a specific entity tags: - updates /updates/templates: post: operationId: t_value parameters: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/e' responses: '201': description: The template has been successfully created. summary: Create a new update template tags: - updates get: operationId: t_value parameters: [] responses: '200': description: List of all update templates. summary: Get all update templates tags: - updates /updates/templates/{key}: get: operationId: t_value parameters: - name: key required: true in: path description: Key of the template schema: {} responses: '200': description: The template details. summary: Get a single update template by key tags: - updates patch: operationId: t_value parameters: - name: key required: true in: path description: Key of the template schema: {} requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/e' responses: '200': description: The template has been successfully updated. summary: Update an existing update template tags: - updates components: schemas: e: type: object properties: id: type: number entityId: type: string attribute: type: string value: type: - object - 'null' metadata: type: - object - 'null' createdAt: type: - object - 'null' required: - id - entityId - attribute securitySchemes: access-token: scheme: bearer bearerFormat: JWT type: http name: Authorization description: Enter JWT token in the format Bearer in: header