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.
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/coppica-com:coppica-com-clients-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
OpenAPI Specification
openapi: 3.2.0
info:
title: Coppica Com Clients API
version: v1-alpha
description: 'Operations tagged Clients across 2 of this provider''s published API definitions: coppica-com-openapi.json, coppica-com-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://coppica.com/api/v1
security:
- bearerAuth: []
tags:
- name: Clients
description: Client records the key can access.
paths:
/clients:
get:
tags:
- Clients
summary: List accessible clients
responses:
'200':
description: Clients the key can access.
content:
application/json:
schema:
type: object
properties:
clients:
type: array
items:
$ref: '#/components/schemas/Client'
required:
- clients
'400':
description: Invalid request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/RateLimited'
operationId: getClients
x-operation-id-source: derived
post:
tags:
- Clients
summary: Create a client
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
business_name:
type: string
contact_name:
type: string
email:
type: string
website:
type: string
required:
- business_name
responses:
'201':
description: Created client.
content:
application/json:
schema:
type: object
properties:
client:
$ref: '#/components/schemas/Client'
required:
- client
'400':
description: Invalid request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/RateLimited'
operationId: postClients
x-operation-id-source: derived
servers:
- url: https://coppica.com/api/v1
/clients/{clientId}:
get:
tags:
- Clients
summary: Client detail + intake summary
parameters:
- name: clientId
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: The client, with its permission level and intake.
content:
application/json:
schema:
type: object
properties:
client:
$ref: '#/components/schemas/Client'
required:
- client
'400':
description: Invalid request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/RateLimited'
operationId: getClientsByClientId
x-operation-id-source: derived
patch:
tags:
- Clients
summary: Update intake fields
description: 'Updates an EXISTING intake form. Returns 404 if the client has not completed in-app intake. Body: { source, intake: { : } }.'
parameters:
- name: clientId
in: path
required: true
schema:
type: string
format: uuid
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
source:
type: string
intake:
type: object
additionalProperties: true
required:
- source
- intake
responses:
'200':
description: Updated client.
content:
application/json:
schema:
type: object
properties:
client:
$ref: '#/components/schemas/Client'
required:
- client
'400':
description: Invalid request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/RateLimited'
operationId: patchClientsByClientId
x-operation-id-source: derived
servers:
- url: https://coppica.com/api/v1
components:
responses:
Unauthorized:
description: Missing or invalid API key.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
NotFound:
description: Resource not found (also returned when access is denied).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
RateLimited:
description: Rate limit exceeded.
headers:
Retry-After:
schema:
type: integer
description: Seconds to wait before retrying.
RateLimit-Limit:
schema:
type: integer
description: Max requests in the window.
RateLimit-Remaining:
schema:
type: integer
description: Requests left in the window.
RateLimit-Reset:
schema:
type: integer
description: Seconds until the window resets.
content:
application/json:
schema:
type: object
description: The 429 body carries code plus a message and retryAfterMs.
properties:
error:
type: string
code:
type: string
const: rate_limited
message:
type: string
retryAfterMs:
type: integer
required:
- error
- code
Forbidden:
description: Wrong scope, client access denied, or spending cap exceeded.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
schemas:
Error:
type: object
description: Standard error envelope. Branch on `code`, never the human `error` string.
properties:
error:
type: string
description: Human-readable, sanitized message.
code:
type: string
description: Stable machine-readable code.
examples:
- invalid_request
- invalid_client_id
- missing_authorization
- invalid_api_key
- missing_scope
- client_access_denied
- spending_cap_exceeded
- not_found
- rate_limited
- server_error
required:
- error
- code
Client:
type: object
description: A client record. Includes permission + intake on the detail endpoint.
properties:
id:
type: string
format: uuid
name:
type: string
status:
type: string
permission:
type: string
description: Caller’s permission level (detail endpoint only).
intake:
type:
- object
- 'null'
additionalProperties: true
required:
- id
additionalProperties: true
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: 'A Coppica API key, e.g. `Authorization: Bearer cpk_...`. Keys carry read/write/execute scopes.'
x-refined-from:
- coppica-com-openapi.json
- coppica-com-openapi.yml