How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

Zoca Services API

The Services API from Zoca — 51 operation(s) for services.

Zoca Services API is one of 193 APIs that Zoca publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include Services. The published artifact set on APIs.io includes an OpenAPI specification.

This API exposes 64 operations across 51 paths, and defines 2 schemas. It is described by OpenAPI 3.2.0, at version 3.20.10.

Requests are made against a single base URL, https://api.zoca.ai.

64 operations 51 paths 2 schemas 11 DELETE21 GET21 POST11 PUT

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.2.0
API Version
3.20.10
Base URL
https://api.zoca.ai
Authentication
HTTP Bearer
Resource Areas
1

Authentication & Security 1

Zoca Services API declares 1 security scheme for authenticating requests. It accepts HTTP bearer tokens (JWT) (access-token).

  • access-token — Enter JWT token in the format Bearer

Paths & Operations 64

Across 51 paths, the API surfaces 64 operations — 11 DELETE, 21 GET, 21 POST, 11 PUT. Each is listed below with its method, path, parameters, and response codes.

Services 64
GET
/services/colors
Get predefined service colors
t_value → 200
GET
/services/{entityId}
Get services by entity ID
getServicesByEntityId 5 params → 200
GET
/services/service/{id}
Get service by ID
getServicesServiceById 1 param → 200404
PUT
/services/service/{id}
Update service
putServicesServiceById 1 param body → 200
DELETE
/services/service/{id}
Delete service
deleteServicesServiceById 1 param → 200
POST
/services/{entityId}/service
Create a new service
postServicesByEntityIdService 3 params body → 201400404500
PUT
/services/{entityId}/services/{serviceId}/unarchive
Unarchive a service
putServicesByEntityIdServicesByServiceIdUnarchive 2 params → 200404500
PUT
/services/{entityId}/categories/unarchive
Unarchive all categories and services
putServicesByEntityIdCategoriesUnarchive 1 param → 200500
PUT
/services/{entityId}/categories/unarchive/{categoryId}
Unarchive a single category and its services
putServicesByEntityIdCategoriesUnarchiveByCategoryId 2 params → 200404500
GET
/services/{entityId}/uncategorized
Get services without category
getServicesByEntityIdUncategorized 1 param → 200
POST
/services/{entityId}/categories/backfill
Backfill categories-entities relationships
postServicesByEntityIdCategoriesBackfill 1 param → 200
GET
/services/{entityId}/duration-audit
Audit service variation durations for a location
getServicesByEntityIdDurationAudit 4 params → 200
POST
/services/{entityId}/variations/backfill
Backfill default variations for services without variations
postServicesByEntityIdVariationsBackfill 1 param → 200500
POST
/services/{entityId}/online-booking/backfill
Enable online booking for all services
postServicesByEntityIdOnlineBookingBackfill 1 param → 200500
POST
/services/{entityId}/category
Create a new category for an entity
postServicesByEntityIdCategory 1 param body → 201
POST
/services/categorydeprecated
Create a new category (deprecated)
postServicesCategory body → 201
GET
/services/category/{id}
Get a category by ID
getServicesCategoryById 1 param → 200
PUT
/services/category/{id}
Update a category
putServicesCategoryById 1 param body → 200
DELETE
/services/category/{id}
Delete a category
deleteServicesCategoryById 1 param → 200
GET
/services/{entityId}/categories
Get all categories for an entity
getServicesByEntityIdCategories 2 params → 200
GET
/services/{entityId}/categories/services/archived
Get archived services grouped by category
getServicesByEntityIdCategoriesServicesArchived 1 param → 200500
POST
/services/service/{serviceId}/category/{categoryId}
Assign a service to a category
postServicesServiceByServiceIdCategoryByCategoryId 2 params → 201
DELETE
/services/service/{serviceId}/category/{categoryId}
Remove a service from a category
deleteServicesServiceByServiceIdCategoryByCategoryId 2 params → 200
PUT
/services/reorder
Reorder services
putServicesReorder body → 200
PUT
/services/reorder-categories-services
Reorder categories and their services
putServicesReorderCategoriesServices body → 200
GET
/services/{serviceId}/images
Get all images for a service
getServicesByServiceIdImages 1 param → 200
POST
/services/{serviceId}/images
Add a new image to a service
postServicesByServiceIdImages 1 param body → 201
DELETE
/services/{serviceId}/images/{imageId}
Delete an image from a service
deleteServicesByServiceIdImagesByImageId 2 params → 200
POST
/services/{serviceId}/images/{imageId}/primary
Set an image as primary for a service
postServicesByServiceIdImagesByImageIdPrimary 2 params → 200
GET
/services/variation/{id}
Get service variation by ID
getServicesVariationById 1 param → 200404
PUT
/services/variation/{id}
Update a variation
putServicesVariationById 1 param body → 200
DELETE
/services/variation/{id}
Delete a variation
deleteServicesVariationById 1 param → 200
GET
/services/service/{serviceId}/variations
Get variations for a service
getServicesServiceByServiceIdVariations 3 params → 200
POST
/services/service/{serviceId}/variation
Create a new variation
postServicesServiceByServiceIdVariation 1 param body → 201
POST
/services/{entityId}/batch
Create multiple services
postServicesByEntityIdBatch 1 param body → 201
DELETE
/services/batch
Delete multiple services
deleteServicesBatch body → 200
POST
/services/categories/batch
Create multiple categories
postServicesCategoriesBatch body → 201
DELETE
/services/categories/batch
Delete multiple categories
deleteServicesCategoriesBatch body → 200
GET
/services/default-categories
Get default service categories
getServicesDefaultCategories 1 param → 200
POST
/services/{entityId}/default-categories
Add default service categories
postServicesByEntityIdDefaultCategories 1 param body → 201
POST
/services/{entityId}/categories-with-services
Create categories with services
postServicesByEntityIdCategoriesWithServices 1 param body → 201
POST
/services/category/{categoryId}/services/batch
Assign multiple services to category
postServicesCategoryByCategoryIdServicesBatch 1 param body → 200
DELETE
/services/category/{categoryId}/services/batch
Remove multiple services from category
deleteServicesCategoryByCategoryIdServicesBatch 1 param body → 200
POST
/services/batch/status
Update status of multiple services
postServicesBatchStatus body → 200
POST
/services/categories/merge
Merge multiple categories
postServicesCategoriesMerge body → 200
POST
/services/{entityId}/batch/duplicate
Duplicate multiple services
postServicesByEntityIdBatchDuplicate 1 param body → 200
PUT
/services/variations/batch
Batch update variations
putServicesVariationsBatch body → 200
DELETE
/services/variations/batch
Batch delete variations
deleteServicesVariationsBatch body → 200
GET
/services/{entityId}/ai-description
Generate AI description for a service
getServicesByEntityIdAiDescription 3 params → 200
GET
/services/{entityId}/categories/suggested
Get suggested categories
getServicesByEntityIdCategoriesSuggested 3 params → 200
GET
/services/{entityId}/{categoryId}/suggested
Get suggested services for an entity and category
getServicesByEntityIdByCategoryIdSuggested 4 params → 200
GET
/services/{entityId}/categories/suggested-services
Get suggested services for all categories
getServicesByEntityIdCategoriesSuggestedServices 3 params → 200404500
GET
/services/{entityId}/categories/check-duplicate
Check for duplicate category name
getServicesByEntityIdCategoriesCheckDuplicate 3 params → 200
GET
/services/{entityId}/export/csv
Export services to CSV
getServicesByEntityIdExportCsv 1 param → 200
POST
/services/sync-to-production/{linkId}
Sync scraped services to production tables
postServicesSyncToProductionByLinkId 1 param → 200400
GET
/services/{serviceId}/staff
Get staff members assigned to a service at a location
getServicesByServiceIdStaff → 200
GET
/services/staff/location/{locationEntityId}/members
List assignable staff members at a location
getServicesStaffLocationByLocationEntityIdMembers → 200
GET
/services/staff/{locationMemberId}/services
Get services assigned to a location member (staff)
getServicesStaffByLocationMemberIdServices → 200
DELETE
/services/staff/{locationMemberId}/services
Unlink all service assignments for a staff member
deleteServicesStaffByLocationMemberIdServices → 200
POST
/services/staff/assign
Assign a single service to a staff member
postServicesStaffAssign → 201
POST
/services/staff/assign/bulk
Assign multiple services to a staff member
postServicesStaffAssignBulk → 201
PUT
/services/staff/sync/{locationMemberId}
Replace all service assignments for a staff member with the given list…
putServicesStaffSyncByLocationMemberId → 200
PUT
/services/staff/assignment/{id}
Update a staff-service assignment (overrides, etc.)
putServicesStaffAssignmentById → 200
DELETE
/services/staff/assignment/{id}
Unlink a single staff-service assignment
deleteServicesStaffAssignmentById → 200

Schemas 2

The contract defines 2 schemas that model the data the API accepts and returns. The most detailed are t (12 properties), e (6 properties). Each schema is shown below with its type and property counts.

t
object
12 properties 12 required
e
object
6 properties 3 required

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

zoca-services-api-openapi.yml Raw ↑

Other APIs Zoca publishes across the network.

Zoca ACM API
Zoca Acuity API
Zoca Addon Groups API
Zoca Aeo Lead Magnet API
Zoca Agents API
Zoca API Keys API
Zoca App API
Zoca App Blocker API
Zoca App Blocker Updates API
Zoca Approvals API
Zoca Auth API
Zoca Billing API
Where this information came from

This is an independent, third-party profile of Zoca Services API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.