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/ezyvet-products-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 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: ezyVet Products API
description: The ezyVet API is a RESTful interface to ezyVet, cloud-based veterinary practice information management software (PIMS).
version: '1.0'
contact:
name: ezyVet Developer Portal
url: https://developers.ezyvet.com/docs/v1/
x-ownership: ezyVet is owned by IDEXX Laboratories, Inc. (acquired June 2021).
servers:
- url: https://api.ezyvet.com
description: Production
- url: https://api.trial.ezyvet.com
description: Trial / sandbox
security:
- bearerAuth: []
tags:
- name: Products
description: Product / inventory catalog. (Modeled.)
paths:
/v1/product:
get:
operationId: listProducts
tags:
- Products
summary: List products
description: Lists billable products, services, and inventory items. (Modeled.)
parameters:
- $ref: '#/components/parameters/Limit'
- $ref: '#/components/parameters/Page'
- $ref: '#/components/parameters/Active'
responses:
'200':
$ref: '#/components/responses/ListResponse'
post:
operationId: createProduct
tags:
- Products
summary: Create a product
requestBody:
$ref: '#/components/requestBodies/GenericResource'
responses:
'200':
$ref: '#/components/responses/ItemResponse'
'422':
$ref: '#/components/responses/ValidationError'
/v1/product/{id}:
parameters:
- $ref: '#/components/parameters/Id'
get:
operationId: getProduct
tags:
- Products
summary: Retrieve a product
responses:
'200':
$ref: '#/components/responses/ItemResponse'
'404':
$ref: '#/components/responses/NotFound'
patch:
operationId: updateProduct
tags:
- Products
summary: Update a product
requestBody:
$ref: '#/components/requestBodies/GenericResource'
responses:
'200':
$ref: '#/components/responses/ItemResponse'
'404':
$ref: '#/components/responses/NotFound'
/v1/productgroup:
get:
operationId: listProductGroups
tags:
- Products
summary: List product groups (reference)
responses:
'200':
$ref: '#/components/responses/ListResponse'
components:
responses:
ItemResponse:
description: A single resource envelope.
content:
application/json:
schema:
type: object
additionalProperties: true
ValidationError:
description: Request validation failed.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
NotFound:
description: Resource not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
ListResponse:
description: A paginated list envelope.
content:
application/json:
schema:
$ref: '#/components/schemas/ListEnvelope'
parameters:
Active:
name: active
in: query
required: false
description: Filter by active status where the resource supports it.
schema:
type: boolean
Limit:
name: limit
in: query
required: false
description: Number of records per page (pagination is envelope-based via the meta object).
schema:
type: integer
default: 10
maximum: 200
Id:
name: id
in: path
required: true
description: The numeric ID of the resource.
schema:
type: integer
Page:
name: page
in: query
required: false
description: 1-based page number.
schema:
type: integer
default: 1
requestBodies:
GenericResource:
required: true
description: Resource payload. ezyVet write bodies are resource-specific; consult the partner Postman collection for exact field lists. (Modeled as a free-form object here.)
content:
application/json:
schema:
type: object
additionalProperties: true
schemas:
Error:
type: object
properties:
error:
type: string
messages:
type: array
items:
type: string
ListEnvelope:
type: object
description: ezyVet list responses return a meta object plus an items array whose elements wrap each resource under its type key. (Shape modeled.)
properties:
meta:
type: object
properties:
items:
type: object
properties:
total:
type: integer
limit:
type: integer
page:
type: integer
pages:
type: integer
items:
type: array
items:
type: object
additionalProperties: true
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
description: Bearer access token from POST /v1/oauth/access_token (OAuth 2.0 Client Credentials). 12-hour TTL.