Zoca Addon Groups API
The AddonGroups API from Zoca — 9 operation(s) for addongroups.
The AddonGroups API from Zoca — 9 operation(s) for addongroups.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/zoca-addongroups-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.2.0
info:
title: Zoca Platform Addon Groups 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: AddonGroups
paths:
/addon-groups/{entityId}:
get:
operationId: t_value
parameters:
- name: isActive
required: false
in: query
schema:
type: boolean
- name: serviceId
required: false
in: query
schema:
format: uuid
type: string
- name: entityId
required: true
in: path
schema:
format: uuid
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/e'
security:
- bearer: []
summary: List addon groups for entity.
tags:
- AddonGroups
post:
operationId: t_value
parameters: []
responses:
'201':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/e'
security:
- bearer: []
summary: Create a standalone addon group.
tags:
- AddonGroups
/addon-groups/{entityId}/{groupId}:
get:
operationId: t_value
parameters: []
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/t'
security:
- bearer: []
summary: Get an addon group with its member addons + linked services.
tags:
- AddonGroups
patch:
operationId: t_value
parameters: []
responses:
'200':
description: ''
security:
- bearer: []
summary: Update an addon group.
tags:
- AddonGroups
/addon-groups/{entityId}/{groupId}/archive:
patch:
operationId: t_value
parameters: []
responses:
'200':
description: ''
security:
- bearer: []
summary: Soft-archive a group (does not archive member addons).
tags:
- AddonGroups
/addon-groups/{entityId}/{groupId}/unarchive:
patch:
operationId: t_value
parameters: []
responses:
'200':
description: ''
security:
- bearer: []
summary: Restore an archived group.
tags:
- AddonGroups
/addon-groups/{entityId}/{groupId}/addons:
post:
operationId: t_value
parameters: []
responses:
'201':
description: ''
security:
- bearer: []
summary: Add existing addons to a group (via addon_group_items).
tags:
- AddonGroups
/addon-groups/{entityId}/{groupId}/addons/{addonId}:
delete:
operationId: t_value
parameters: []
responses:
'200':
description: ''
security:
- bearer: []
summary: Remove an addon from a group.
tags:
- AddonGroups
/addon-groups/{entityId}/{groupId}/addons/reorder:
post:
operationId: t_value
parameters: []
responses:
'201':
description: ''
security:
- bearer: []
summary: Reorder addons within a group.
tags:
- AddonGroups
/addon-groups/{entityId}/{groupId}/services:
post:
operationId: t_value
parameters: []
responses:
'201':
description: ''
security:
- bearer: []
summary: 'Group-attach: bulk-link group to services (writes service_addons rows with addon_id=NULL).'
tags:
- AddonGroups
/addon-groups/{entityId}/{groupId}/services/{serviceId}:
delete:
operationId: t_value
parameters: []
responses:
'200':
description: ''
security:
- bearer: []
summary: Unlink group from a service.
tags:
- AddonGroups
components:
schemas:
t:
type: object
properties:
id:
type: number
planId:
type: number
agentEntityId:
type:
- object
- 'null'
format: uuid
agentName:
type: string
internalAddonName:
type: string
description: Chargebee item_price_id (internal addon name)
externalAddonName:
type: string
description: Human-readable addon label shown to end-users
active:
type: boolean
description: true if the location currently holds an active subscription for this addon
subscriptionId:
type:
- object
- 'null'
quantity:
type:
- object
- 'null'
trialEnd:
type:
- object
- 'null'
description: Unix epoch seconds (Chargebee trial_end)
addonPricingId:
type:
- object
- 'null'
description: chargebee.addon_pricing.id for this addon at the location's current cadence. Pass back to PATCH /billing/subscription as `update_items.items[].addonPricingId`.Null when no active addon_pricing row exists - surfaces a config gap and the FE should hide the buy CTA.
unitPriceCents:
type:
- object
- 'null'
description: Per-line price the location would be billed at this cadence (cents).
required:
- id
- planId
- agentEntityId
- agentName
- internalAddonName
- externalAddonName
- active
- subscriptionId
- quantity
- trialEnd
- addonPricingId
- unitPriceCents
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 <token>
in: header