openapi: 3.2.0 info: title: Zoca Platform Domain Transfer 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: Domain Transfer paths: /domain-transfer/initiate: post: description: Start the domain transfer process with ACM certificate creation and Route53 setup. Automatically fetches all active domains from custom_domains table and combines them with payload domains. Supports both subdomain transfers (CloudFront only) and full domain transfers (Route53 hosted zone creation). For full domain transfers, automatically creates hosted zone, A records, and CNAME validation records. Primary domain is added as-is (e.g., dev.com) along with its wildcard (*.dev.com). Additional full domains (e.g., example.com) are added with their wildcards (*.example.com), while subdomains (e.g., www.example.com) are added without wildcards. All additional domains from payload are registered in custom_domains table as active. Certificate details are stored in acm_certificates table. operationId: t_value parameters: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/e' responses: '200': description: Domain transfer initiated successfully with certificate and DNS configuration content: application/json: schema: $ref: '#/components/schemas/e' '400': description: Invalid input data or exceeds ACM limit of 100 domains '500': description: Failed to initiate domain transfer security: - bearer: [] summary: Initiate domain transfer process tags: - Domain Transfer /domain-transfer/aggregate-domains: post: description: Aggregate multiple subdomains and variations for SSL certificate creation operationId: t_value parameters: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/e' responses: '200': description: Domains aggregated successfully content: application/json: schema: $ref: '#/components/schemas/e' '400': description: Invalid domain data security: - bearer: [] summary: Aggregate multiple domains for certificate tags: - Domain Transfer /domain-transfer/status/{certificateArn}: get: description: Check the current status of a domain transfer by certificate ARN operationId: t_value parameters: - name: certificateArn required: true in: path description: The ARN of the certificate to check schema: example: arn:aws:acm:us-east-1:123456789:certificate/abc-123 responses: '200': description: Domain transfer status retrieved content: application/json: schema: $ref: '#/components/schemas/e' '404': description: Certificate not found security: - bearer: [] summary: Get domain transfer status tags: - Domain Transfer /domain-transfer/zoca-certificate/add-domain: post: description: Automatically fetches the latest zoca.com certificate, filters out inactive domains from custom_domains table, and creates a new certificate with all active domains plus the new domain(s) operationId: t_value parameters: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/e' responses: '201': description: Domain added successfully and new certificate created content: application/json: schema: $ref: '#/components/schemas/e' '400': description: Invalid domain data or exceeds ACM limit of 100 SANs '500': description: Failed to create certificate security: - bearer: [] summary: Add domain to zoca.com certificate tags: - Domain Transfer /domain-transfer/kvs/add-entries: post: description: 'Creates CloudFront KeyValueStore entries to map a custom domain to an internal subdomain. Creates two entries: one for the domain (e.g., example.com) and one for www subdomain (e.g., www.example.com), both pointing to the specified internal subdomain. These mappings are used by CloudFront functions to route requests from custom domains to their corresponding internal Zoca subdomains.' operationId: t_value parameters: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/e' responses: '200': description: KVS entries created successfully content: application/json: schema: $ref: '#/components/schemas/e' '400': description: Invalid domain or internal subdomain format '500': description: Failed to create KVS entries security: - bearer: [] summary: Add CloudFront KVS entries for domain mapping tags: - Domain Transfer 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