Zoca App API

Endpoints consumed by the mobile App

Operations 312

Showing the first 250 of 312. The full set is in the contract, and via get_provider_operations.

GET /business-profile Get business profile information by entity Id #
GET /business-profile/primary-category-suggestion Get primary category suggestions #
GET /business-profile/additional-category-suggestion Get additional category suggestions #
PUT /business-profile/additional-category-suggestion Get additional category suggestions (v2) #
GET /business-profile/booking-platforms Get all booking platforms #
GET /business-profile/social-platforms Get all social media platforms #
PUT /business-profile/{entityId}/booking-link Update booking link for a platform #
GET /business-profile/{entityId}/booking-link Update booking link for a platform #
PUT /business-profile/update-profile-data Update business profile data #
PUT /business-profile/website-domain/{entityId} Update website domain data #
PUT /business-profile/website-domain-quotation/{entityId} Get domain quotation #
GET /webview Get webviews by query parameters #
GET /app-blocker/updates/{id} Get update by ID #
DELETE /app-blocker/updates/{id} Delete an app blocker update #
GET /auth/check Check authentication status #
GET /auth/google-auth-url Google Authentication URL #
GET /auth/square/authorize Square OAuth Authorization URL #
GET /auth/instagram/authorize Instagram OAuth Authorization URL #
GET /auth/tiktok/authorize TikTok OAuth Authorization URL #
POST /auth/magic-link/verify Verify a magic link token and get auth tokens #
GET /campaigns/requests List campaign requests for an entity #
POST /campaigns/requests Create a new campaign request #
PATCH /campaigns/requests Update a campaign request #
GET /campaigns/requests/count Get campaign request counts by status #
GET /campaigns/requests/{id} Get a campaign request by ID #
DELETE /campaigns/requests/{id} Delete a campaign request #
GET /campaigns/suggestions List all campaign suggestions #
GET /campaigns/flyers List all campaign flyers #
GET /chatbot/calls/{callId} Get call details by call ID #
GET /chatbot/calls/{callId}/regenerate-summary Regenerate call summary by call ID #
PUT /chatbot/retell/phone/{phoneNumber} Update a phone number configuration #
POST /chatbot/phone/purchase Purchase a new phone number #
POST /chatbot/feedback Create a new feedback record #
GET /chatbot/feedback Get all feedback records for an entity with pagination #
PUT /chatbot/feedback/{id} Update an existing feedback record #
GET /chat/conversations Get conversations list or single conversation details #
POST /chat/message Create a new message in a conversation #
PUT /chat/message Update message text or soft delete #
POST /chat/reaction Add reaction to a message #
PUT /chat/reaction Update or soft delete a reaction #
POST /chat/message-receipt Mark messages as read in a conversation #
POST /clients Create a new client with contact information #
POST /clients/bulk Bulk create clients with contact information #
POST /clients/bulk-s3 Bulk import clients from S3 URL #
GET /clients/entity/{entityId} Get clients by entity ID with pagination #
PUT /clients/block Block or restore clients #
GET /clients/entity/{entityId}/blocked Get blocked clients for an entity with pagination #
GET /clients/{clientId} Get a client by ID #
POST /clients/{entityId}/clientFile Store a client file for an entity #
GET /clients/comm-types Get available communication types #
PATCH /clients/comms/{commId}/status Update communication status #
GET /booking-enquiries List all booking enquiries with pagination and filters #
GET /booking-enquiries/sources List distinct enquiry sources for an entity (source filter options) #
GET /booking-enquiries/enquiry-status Get enquiry status statistics for an entity #
GET /booking-enquiries/{entityId}/search Search clients by name, number, or query #
GET /booking-enquiries/enquiry-stats Get detailed enquiry statistics for an entity #
GET /booking-enquiries/multilocation/{businessEntityId} List enquiries across all locations of a business with network stats #
GET /booking-enquiries/{enquiryId}/enquiry Get enquiry details by ID #
PUT /booking-enquiries/{enquiryId}/status Update enquiry status with reason and services #
POST /booking-enquiries/{clientId}/notes Add a note to a client #
GET /booking-enquiries/{clientId}/notes Get all notes for a client #
GET /booking-enquiries/{clientId}/enquiries Get all enquiries for a client with status filter #
PUT /booking-enquiries/notes/{noteId} Update an existing client note #
DELETE /booking-enquiries/notes/{noteId} Delete a client note #
POST /booking-enquiries/{clientId}/communication-logs Add communication log for a client #
POST /booking-enquiries/client-conversation Add a conversation message for a client #
GET /booking-enquiries/{clientId}/app/chat Get chat data for mobile app #
GET /booking-enquiries/{clientId}/summary Get summary of client interactions #
GET /booking-enquiries/{entityId}/text-templates List all text templates for an entity #
PUT /booking-enquiries/text-templates/{templateId} Update an existing text template #
PUT /booking-enquiries/{entityId}/text-template-preferences Update text template preferences #
GET /booking-enquiries/{entityId}/text-template-preferences Get text template preferences for an entity #
PUT /booking-enquiries/formatted-text-template Format text template with client data #
GET /booking-enquiries/{entityId}/automated-text-templates Get default lead communication templates #
PUT /booking-enquiries/{entityId}/automated-text-templates Update lead communication templates #
GET /booking-enquiries/{locationEntityId}/automated-text-templates/variables Get lead communication template variable values #
GET /booking-enquiries/automated-text-templates/variables Get available automated communication variables #
GET /booking-enquiries/{entityId}/automated-text-templates/preferences Get automated communication template preferences #
PUT /booking-enquiries/{entityId}/automated-text-templates/preferences Update automated communication template preferences #
GET /booking-enquiries/{entityId}/text-template-order Get text template order for a client #
GET /booking-enquiries/conversation-activity Get conversation activity details for a client or enquiry #
GET /booking-enquiries/client-conversations Get client conversations including SMS and calls #
GET /entities/locations Get all locations for a user #
POST /entities/onboarding-state Update onboarding state for an entity #
PUT /entities/location/{entityId} Update location data #
GET /entities/location/{entityId}/details Get essential location details #
GET /entities/location/{entityId}/rwg-status Get Reserve with Google status #
GET /entities/{entityId}/more-tab-cards Get visibility markers for More tab cards #
GET /entities/products/{entityId} Get products for an entity #
PUT /entities/products/{entityId} Create or update a product entity relationship #
POST /entities/{entityId}/preferences Create or update an entity preference #
GET /entities/location/{entityId}/booking-link Get booking link for a location #
PUT /entities/location/{entityId}/booking-link Update booking link for a location #
GET /entities/offboarding-reason-templates Get active offboarding reason templates #
GET /entities/offboarding/active-subscriptions/v2/{entityId} Get active subscriptions and offboarding information for an entity (with HubSpot meeting) #
POST /entities/{entityId}/trigger-payment-link-comms Trigger payment link communications for an entity #
POST /entities/{entityId}/review-insights Get review insights for an entity #
GET /entities/{entityId}/hubspot/meetings Get upcoming HubSpot meetings for an entity #
POST /events Handle incoming event from Lambda #
GET /features Get all available features for an entity based on active products #
GET /features/insights-tabs Get Insights tabs with URLs based on active products #
GET /gbp-location/list List all locations for entity #
POST /gbp-location/create Onboard a gbp location for entity #
GET /gbp-location/posts/list List posts for location #
GET /gbp-location/posts Get a single post by name #
PATCH /gbp-location/posts Update a post #
DELETE /gbp-location/posts Delete a post #
GET /gbp-location/keyword-impression-insights Get keyword impression insights for a location #
GET /gbp-location/performance-insights Get performance insights for location #
GET /google-maps/place-auto-complete Get place autocomplete suggestions #
GET /google-maps/place-id-details Get place details by place ID #
GET /homepage/activation-steps Get activation steps status #
GET /homepage Get homepage data #
GET /homepage/homepage-components Get homepage components #
GET /homepage/activation-steps-data Get activation steps data #
GET /homepage/check-website-status Check website status #
GET /homepage/monthly-report Get monthly report(s) for an entity #
PUT /homepage/monthly-report Update monthly report status #
GET /homepage/referrals/link/{businessEntityId} Get referral link for business #
POST /homepage/referrals Create a referral #
GET /homepage/carousel-cards Get carousel cards for Win Agent onboarding #
GET /homepage/discovery-metrics Get cumulative discovery metrics since onboarding #
POST /media Create a new media #
GET /media Get all media #
DELETE /media Delete a media #
GET /media/scheduled-media Get scheduled media for a location #
GET /media/logo-and-cover-image Get logo and cover image for a location #
POST /media/log-failed-media-time Log failed media upload time #
GET /meta/business-discovery Get Instagram business discovery data #
GET /meta/media Get all media for a specific Instagram business account #
POST /meta/connect-instagram Connect an Instagram business account to a location entity #
POST /meta/upload-media Upload selected media to specified destinations #
GET /meta/account-status Check if an Instagram business account is already connected to a location entity #
POST /meta/disconnect-instagram Disconnect an Instagram business account from a location entity #
GET /tiktok/videos Get user's TikTok videos #
GET /tiktok/creator-info Get TikTok creator information for publishing #
POST /offers/draft Create a draft offer with optional fields #
PUT /offers/{id}/draft Update a draft offer with field-by-field updates #
GET /offers/{id} Get offer details #
DELETE /offers/{id} Soft delete an offer #
GET /offers/channels/{entityId} List available channels for offer creation with publishOn dates #
POST /offers/description/generate Generate AI-powered description for an offer #
POST /offers/description/validate Validate AI-powered description for an offer #
GET /offers/entities/{entityId}/status List all offers on an entity with status #
GET /offers/entities/{entityId}/status/count Get count of offers grouped by status for an entity #
GET /offers/entities/{entityId}/search Search offers by title with status calculation #
GET /offers/{offerId}/suggestions Get suggestions for an offer #
GET /onboarding/app-visitor Register app visitor #
POST /onboarding/update-user Update User Profile #
GET /onboarding/onboarding-state Get onboarding state for entity #
GET /onboarding/user-profile Get user profile information #
GET /onboarding/quick-recap Get onboarding quick recap pointers #
GET /onboarding/business-categories Get list of business categories #
GET /onboarding/customer-sources Get list of customer sources #
GET /onboarding/search-booking-link Search for booking platform link #
GET /onboarding/check-platform-selection/{locationEntityId} Check if specific platforms were selected during onboarding within 10 hours #
POST /onboarding/trigger-comms Trigger onboarding communications for MoEngage notifications #
POST /pipedrive/person/upsert Create Pipedirve Person #
POST /pipedrive/organization/upsert Create Pipedirve Organization #
GET /pipedrive/lead/status Get Lead Status #
GET /pipedrive/lead/callback Requested a callback #
POST /requests-api/fromTemplate Create a request from a template #
DELETE /requests-api/{id} Delete a request by ID #
PUT /requests-api/{id} Update a request by ID #
GET /requests-api/{entityId}/list List requests for an entity with optional pagination #
POST /requests-api/filters Filter requests excluding specified types #
PATCH /requests-api/{id}/additionalData Patch additional data for a request #
GET /requests-api/categories/{entityId} Get ticket categories for an entity #
GET /services-sync/request Get current sync request for a location #
POST /services-sync/resync/request Create a resync request #
GET /review-invites/client-sources Get available client sources for an entity #
GET /review-invites/clients Get clients filtered by source with pagination #
GET /review-invites/client-phone Get client phone numbers for an entity #
GET /review-invites/search-clients Search clients by term with pagination #
GET /review-invites/text-templates Get SMS text templates for review invites #
PUT /review-invites/text-templates/{templateId} Update a text template by ID #
GET /review-invites/invites-status Get all invite status counts for an entity #
GET /review-invites/invites-by-status Get invites filtered by status with pagination #
POST /review-invites/{entityId}/invite Send review invites to clients #
DELETE /review-invites/{entityId}/invite Delete a review invite #
POST /review-invites/{entityId}/invite-reminder Send review invite reminders to clients #
GET /review-invites/qr-code Get QR code for review invites #
PUT /review-invites/formatted-text-template Format a text template with client data #
POST /review-invites/email-ra-optin Store email review automation opt-in status #
GET /review-invites/email-ra-optin Get email review automation opt-in status #
GET /review-invites/review-link Get the review link for a location #
GET /reviews/{entityId}/reviews Get paginated reviews for an entity #
GET /reviews/review-id Get review by ID #
POST /reviews/{reviewId}/reply Create a reply to a review #
PUT /reviews/{reviewId}/reply Update a review reply #
DELETE /reviews/{reviewId}/reply Delete a review reply #
GET /reviews/stats Get review statistics #
POST /reviews/{entityId}/preferences Set review preferences #
GET /reviews/{entityId}/preferences Get review preferences #
GET /reviews/{entityId}/app/gbp-component Get Google Business Profile component data #
GET /reviews/{entityId}/app/card Get review cards for app dashboard #
GET /scheduling/bookings/{id} Get booking by ID with aggregated data #
GET /scheduling/onboarding/{entityId}/{locationEntityId}/status Get onboarding status for an entity and location #
POST /scheduling/stripe/terminal/connection-token Create Stripe Terminal connection token #
GET /scheduling/stripe/terminal/tap-to-pay-config Get Tap to Pay configuration #
POST /scheduling/stripe/terminal/ensure-location Provision Stripe Terminal location for a connected account #
GET /scheduling/checkout-tip-config List checkout tip presets for a location #
POST /scheduling/checkout/pay Process a payment for a sale #
POST /scheduling/checkout/processing-fee-quote Quote checkout processing fee #
PATCH /scheduling/checkout/sale/{saleId}/tip Update the tip on a sale #
POST /scheduling/checkout/cancel-payment/{paymentId} Cancel a payment #
GET /services/service/{id} Get service by ID #
PUT /services/service/{id} Update service #
DELETE /services/service/{id} Delete service #
POST /services/{entityId}/service Create a new service #
POST /services/category Create a new category (deprecated) #
GET /services/category/{id} Get a category by ID #
PUT /services/category/{id} Update a category #
DELETE /services/category/{id} Delete a category #
GET /services/{entityId}/categories Get all categories for an entity #
POST /services/service/{serviceId}/category/{categoryId} Assign a service to a category #
DELETE /services/service/{serviceId}/category/{categoryId} Remove a service from a category #
PUT /services/reorder-categories-services Reorder categories and their services #
GET /services/{serviceId}/images Get all images for a service #
POST /services/{serviceId}/images Add a new image to a service #
DELETE /services/{serviceId}/images/{imageId} Delete an image from a service #
PUT /services/variation/{id} Update a variation #
DELETE /services/variation/{id} Delete a variation #
GET /services/service/{serviceId}/variations Get variations for a service #
POST /services/service/{serviceId}/variation Create a new variation #
POST /services/{entityId}/categories-with-services Create categories with services #
PUT /services/variations/batch Batch update variations #
GET /services/{entityId}/categories/suggested Get suggested categories #
GET /services/{entityId}/{categoryId}/suggested Get suggested services for an entity and category #
GET /services/{entityId}/categories/suggested-services Get suggested services for all categories #
GET /services/{entityId}/categories/check-duplicate Check for duplicate category name #
POST /social-media/update-caption Update post caption #
POST /social-media/get-feed-posts Get feed posts with pagination #
GET /social-media/get-instagram-post Get Instagram post by ID #
POST /social-media/add-feedback-to-post Add feedback to a post #
GET /social-media/get-feedback-for-post Get feedback for a post #
PUT /social-media/remove-feedback-from-post Remove feedback from a post #
GET /social-media/get-user-insta-details Get user Instagram details #
PUT /social-media/set-user-insta-details Set user Instagram details #
GET /social-media/get-user-overdue-count Get user overdue post count #
PUT /social-media/approve-all-posts-by-uid Approve all posts by user ID #
PUT /social-media/set-user-post-status Set user post status #
PUT /social-media/approve-user-overdue-post-status Approve user overdue post status #
GET /social-media/get-all-posting-dates-for-month Get all posting dates for a month #
GET /social-media/get-preference-request Get preference update request status #
PUT /social-media/put-preference-request Update preference request status #
POST /social-media/add-instagram-post-rejection-reason Add Instagram post rejection reason #
GET /square/locations/{entityId} Get Square locations by entity ID #
GET /ui-components Get UI component by ID or get all components #
PATCH /updates/{id} Patch an update record #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/zoca-app-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

zoca-app-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Zoca App API
  contact: {}
  x-refined-note:
  - x-apievangelist-note differs across the merged source definitions and was not carried
  version: '1.0'
  description: 'Operations tagged App across 3 of this provider''s published API definitions: zoca-platform-openapi.yml, zoca-public-openapi.yml, zoca-tasks-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.zoca.ai
  description: Production
- url: https://public.zoca.com
  description: Production
- url: https://tasks.zoca.ai
  description: Production
tags:
- name: App
  description: Endpoints consumed by the mobile App
paths:
  /business-profile:
    get:
      operationId: t_value
      parameters: []
      responses:
        '201':
          description: Sucessfully onboarded the location for given entity id
      summary: Get business profile information by entity Id
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /business-profile/primary-category-suggestion:
    get:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: ''
      summary: Get primary category suggestions
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /business-profile/additional-category-suggestion:
    get:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: ''
      summary: Get additional category suggestions
      tags:
      - App
    put:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: ''
      summary: Get additional category suggestions (v2)
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /business-profile/booking-platforms:
    get:
      description: Retrieves a list of all active booking platforms including Vagaro, GlossGenius, StyleSeat, and Booksy.
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: List of booking platforms retrieved successfully
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/e'
      summary: Get all booking platforms
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /business-profile/social-platforms:
    get:
      description: Retrieves a list of all active social media platforms including Facebook, Instagram, LinkedIn, TikTok, Twitter, YouTube, and Pinterest.
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: List of social media platforms retrieved successfully
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/e'
      summary: Get all social media platforms
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /business-profile/{entityId}/booking-link:
    put:
      description: Updates the booking link for a specified platform, deactivating any existing active link for that platform.
      operationId: t_value
      parameters:
      - name: entityId
        required: true
        in: path
        description: Entity ID of the user/business
        schema:
          format: uuid
          type: string
      requestBody:
        required: true
        description: Service creation data
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/e'
      responses:
        '200':
          description: Booking link updated successfully
      summary: Update booking link for a platform
      tags:
      - App
    get:
      description: Updates the booking link for a specified platform, deactivating any existing active link for that platform.
      operationId: t_value
      parameters:
      - name: entityId
        required: true
        in: path
        description: Entity ID of the user/business
        schema:
          format: uuid
          type: string
      responses:
        '200':
          description: Booking link updated successfully
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/e'
      summary: Update booking link for a platform
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /business-profile/update-profile-data:
    put:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: ''
      summary: Update business profile data
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /business-profile/website-domain/{entityId}:
    put:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: ''
      summary: Update website domain data
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /business-profile/website-domain-quotation/{entityId}:
    put:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: ''
      summary: Get domain quotation
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /webview:
    get:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: ''
      summary: Get webviews by query parameters
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /app-blocker/updates/{id}:
    get:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: Update retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/e'
        '404':
          description: Update not found
      security:
      - bearer: []
      summary: Get update by ID
      tags:
      - App
    delete:
      operationId: t_value
      parameters: []
      responses:
        '204':
          description: Update deleted successfully
        '404':
          description: Update not found
      security:
      - bearer: []
      summary: Delete an app blocker update
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /auth/check:
    get:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: Returns authentication status
          content:
            application/json:
              schema:
                type: boolean
                example: true
      summary: Check authentication status
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /auth/google-auth-url:
    get:
      operationId: t_value
      parameters:
      - name: redirectUrl
        required: false
        in: query
        description: Optional redirect URL after authentication
        schema: {}
      - name: clientId
        required: true
        in: query
        description: Client application ID (e.g., zoca-web, zoca-app)
        schema: {}
      responses:
        '200':
          description: Google Authentication URL
          content:
            application/json:
              schema:
                example:
                  url: https://api.zoca.ai/auth/
      summary: Google Authentication URL
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /auth/square/authorize:
    get:
      description: Generates the Square OAuth authorization URL for entity integration. Use isWinAgent=true to request Win Agent specific permissions.
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: Square OAuth authorization URL generated successfully
          content:
            application/json:
              schema:
                example:
                  url: https://squareup.com/oauth2/authorize?client_id=...&scope=...
        '400':
          description: Invalid request - missing entityId
          content:
            application/json:
              schema:
                example:
                  message: entityId is required
                  error: Bad Request
                  statusCode: 400
      summary: Square OAuth Authorization URL
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /auth/instagram/authorize:
    get:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: Instagram OAuth authorization URL
          content:
            application/json:
              schema:
                example:
                  url: https://www.instagram.com/oauth/authorize?client_id=...
      summary: Instagram OAuth Authorization URL
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /auth/tiktok/authorize:
    get:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: TikTok OAuth authorization URL
          content:
            application/json:
              schema:
                example:
                  url: https://www.tiktok.com/v2/auth/authorize?client_key=...
      summary: TikTok OAuth Authorization URL
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /auth/magic-link/verify:
    post:
      description: Validates the magic link token and returns JWT access token and refresh token. Tokens are single-use - the magic link cannot be used again after verification.
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: Token verified, auth tokens returned
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/e'
        '400':
          description: Invalid or expired token
          content:
            application/json:
              schema:
                example:
                  statusCode: 400
                  message: Invalid or expired magic link
                  error: Bad Request
      summary: Verify a magic link token and get auth tokens
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /campaigns/requests:
    get:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: ''
      summary: List campaign requests for an entity
      tags:
      - App
    post:
      operationId: t_value
      parameters: []
      responses:
        '201':
          description: ''
      summary: Create a new campaign request
      tags:
      - App
    patch:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: ''
      summary: Update a campaign request
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /campaigns/requests/count:
    get:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: ''
      summary: Get campaign request counts by status
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /campaigns/requests/{id}:
    get:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: ''
      summary: Get a campaign request by ID
      tags:
      - App
    delete:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: ''
      summary: Delete a campaign request
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /campaigns/suggestions:
    get:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: ''
      summary: List all campaign suggestions
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /campaigns/flyers:
    get:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: ''
      summary: List all campaign flyers
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /chatbot/calls/{callId}:
    get:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: Call details retrieved successfully
      summary: Get call details by call ID
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /chatbot/calls/{callId}/regenerate-summary:
    get:
      operationId: t_value
      parameters:
      - name: callId
        required: true
        in: path
        description: Unique identifier for the call
        schema:
          type: string
      responses:
        '200':
          description: Call summary retrieved successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  summary:
                    type: string
                    description: The call summary or "No summary available"
                  regenerateSummary:
                    type: boolean
                    description: Indicates if the summary was newly generated
        '400':
          description: Bad request - CallId is required
        '404':
          description: Call record not found
      summary: Regenerate call summary by call ID
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /chatbot/retell/phone/{phoneNumber}:
    put:
      operationId: t_value
      parameters:
      - name: phoneNumber
        required: true
        in: path
        description: Phone number to update
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/e'
      responses:
        '200':
          description: Phone number configuration updated successfully
        '400':
          description: Invalid request payload
        '404':
          description: Phone number not found
      summary: Update a phone number configuration
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /chatbot/phone/purchase:
    post:
      operationId: t_value
      parameters: []
      responses:
        '201':
          description: ''
      summary: Purchase a new phone number
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /chatbot/feedback:
    post:
      operationId: t_value
      parameters: []
      responses:
        '201':
          description: Feedback created successfully
        '400':
          description: Invalid request payload or missing entityId
      summary: Create a new feedback record
      tags:
      - App
    get:
      operationId: t_value
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of items per page
        schema:
          type: number
      - name: page
        required: false
        in: query
        description: Page number (1-indexed)
        schema:
          type: number
      - name: entityId
        required: true
        in: query
        description: Entity ID to retrieve feedback for
        schema:
          type: string
      responses:
        '200':
          description: Feedback list retrieved successfully
        '400':
          description: entityId is required
      summary: Get all feedback records for an entity with pagination
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /chatbot/feedback/{id}:
    put:
      operationId: t_value
      parameters:
      - name: id
        required: true
        in: path
        description: Feedback record ID to update
        schema:
          type: string
      responses:
        '200':
          description: Feedback updated successfully
        '400':
          description: Invalid request payload or missing entityId
        '404':
          description: Feedback not found or not accessible
      summary: Update an existing feedback record
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /chat/conversations:
    get:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: Returns conversation(s) based on filters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/e'
        '400':
          description: Invalid parameters
      summary: Get conversations list or single conversation details
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /chat/message:
    post:
      operationId: t_value
      parameters: []
      responses:
        '201':
          description: Message created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/e'
        '400':
          description: Invalid message data
      summary: Create a new message in a conversation
      tags:
      - App
    put:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: Message updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/t'
        '400':
          description: Invalid update data
        '404':
          description: Message not found
      summary: Update message text or soft delete
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /chat/reaction:
    post:
      operationId: t_value
      parameters: []
      responses:
        '201':
          description: Reaction added successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/t'
        '400':
          description: Invalid reaction data
        '404':
          description: Message not found
      summary: Add reaction to a message
      tags:
      - App
    put:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: Reaction updated successfully
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/e'
        '400':
          description: Invalid update data
        '404':
          description: Reaction not found
      summary: Update or soft delete a reaction
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /chat/message-receipt:
    post:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: Messages marked as read
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/e'
        '400':
          description: Invalid receipt data
      summary: Mark messages as read in a conversation
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /clients:
    post:
      operationId: t_value
      parameters: []
      responses:
        '201':
          description: ''
      summary: Create a new client with contact information
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /clients/bulk:
    post:
      operationId: t_value
      parameters: []
      responses:
        '201':
          description: ''
      summary: Bulk create clients with contact information
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /clients/bulk-s3:
    post:
      operationId: t_value
      parameters: []
      responses:
        '201':
          description: ''
      summary: Bulk import clients from S3 URL
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /clients/entity/{entityId}:
    get:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: ''
      summary: Get clients by entity ID with pagination
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /clients/block:
    put:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: ''
      summary: Block or restore clients
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /clients/entity/{entityId}/blocked:
    get:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: ''
      summary: Get blocked clients for an entity with pagination
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /clients/{clientId}:
    get:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: ''
      summary: Get a client by ID
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /clients/{entityId}/clientFile:
    post:
      operationId: t_value
      parameters: []
      responses:
        '201':
          description: ''
      summary: Store a client file for an entity
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /clients/comm-types:
    get:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: ''
      summary: Get available communication types
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /clients/comms/{commId}/status:
    patch:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: ''
      summary: Update communication status
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /booking-enquiries:
    get:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: ''
      summary: List all booking enquiries with pagination and filters
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /booking-enquiries/sources:
    get:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: ''
      summary: List distinct enquiry sources for an entity (source filter options)
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /booking-enquiries/enquiry-status:
    get:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: ''
      summary: Get enquiry status statistics for an entity
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /booking-enquiries/{entityId}/search:
    get:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: ''
      summary: Search clients by name, number, or query
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /booking-enquiries/enquiry-stats:
    get:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: ''
      summary: Get detailed enquiry statistics for an entity
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /booking-enquiries/multilocation/{businessEntityId}:
    get:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/e'
      summary: List enquiries across all locations of a business with network stats
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /booking-enquiries/{enquiryId}/enquiry:
    get:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: ''
      summary: Get enquiry details by ID
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /booking-enquiries/{enquiryId}/status:
    put:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: ''
      summary: Update enquiry status with reason and services
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /booking-enquiries/{clientId}/notes:
    post:
      operationId: t_value
      parameters: []
      responses:
        '201':
          description: ''
      summary: Add a note to a client
      tags:
      - App
    get:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: ''
      summary: Get all notes for a client
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /booking-enquiries/{clientId}/enquiries:
    get:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: ''
      summary: Get all enquiries for a client with status filter
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /booking-enquiries/notes/{noteId}:
    put:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: ''
      summary: Update an existing client note
      tags:
      - App
    delete:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: ''
      summary: Delete a client note
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /booking-enquiries/{clientId}/communication-logs:
    post:
      operationId: t_value
      parameters: []
      responses:
        '201':
          description: ''
      summary: Add communication log for a client
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /booking-enquiries/client-conversation:
    post:
      operationId: t_value
      parameters: []
      responses:
        '201':
          description: ''
      summary: Add a conversation message for a client
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /booking-enquiries/{clientId}/app/chat:
    get:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: ''
      summary: Get chat data for mobile app
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /booking-enquiries/{clientId}/summary:
    get:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: ''
      summary: Get summary of client interactions
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /booking-enquiries/{entityId}/text-templates:
    get:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: ''
      summary: List all text templates for an entity
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /booking-enquiries/text-templates/{templateId}:
    put:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: ''
      summary: Update an existing text template
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /booking-enquiries/{entityId}/text-template-preferences:
    put:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: ''
      summary: Update text template preferences
      tags:
      - App
    get:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: ''
      summary: Get text template preferences for an entity
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /booking-enquiries/formatted-text-template:
    put:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: ''
      summary: Format text template with client data
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /booking-enquiries/{entityId}/automated-text-templates:
    get:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: ''
      summary: Get default lead communication templates
      tags:
      - App
    put:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: ''
      summary: Update lead communication templates
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /booking-enquiries/{locationEntityId}/automated-text-templates/variables:
    get:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: ''
      summary: Get lead communication template variable values
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /booking-enquiries/automated-text-templates/variables:
    get:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: ''
      summary: Get available automated communication variables
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /booking-enquiries/{entityId}/automated-text-templates/preferences:
    get:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: ''
      summary: Get automated communication template preferences
      tags:
      - App
    put:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: ''
      summary: Update automated communication template preferences
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /booking-enquiries/{entityId}/text-template-order:
    get:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: ''
      summary: Get text template order for a client
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /booking-enquiries/conversation-activity:
    get:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: ''
      summary: Get conversation activity details for a client or enquiry
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /booking-enquiries/client-conversations:
    get:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: Returns paginated list of client conversations
      summary: Get client conversations including SMS and calls
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /entities/locations:
    get:
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: ''
      summary: Get all locations for a user
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /entities/onboarding-state:
    post:
      operationId: t_value
      parameters: []
      responses:
        '201':
          description: ''
      summary: Update onboarding state for an entity
      tags:
      - App
    servers:
    - url: https://api.zoca.ai
      description: Production
  /entities/location/{entityId}:
    put:
      description: Updates any columns in the entities.locations table. All fields are opt

# --- truncated at 32 KB (178 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/zoca/refs/heads/main/openapi/zoca-app-api-openapi.yml