ezyVet Invoices API

Invoices, invoice lines, and payments. (Modeled.)

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/ezyvet-invoices-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

ezyvet-invoices-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: ezyVet Animals Invoices API
  description: 'The ezyVet API is a RESTful interface to ezyVet, cloud-based veterinary practice information management software (PIMS). ezyVet was founded in New Zealand in 2006 and acquired by IDEXX Laboratories in June 2021, alongside IDEXX''s Cornerstone and Neo PIMS (the acquisition also included Vet Radar).

    The full API spans roughly 216 endpoints across animals/patients, contacts/clients, appointments, consultations, invoices, products, and diagnostics. Access is partner-gated: a developer must apply for an integration and receive an approved partner_id plus client_id/client_secret, then obtain a bearer token via the OAuth 2.0 Client Credentials grant. Tokens have a 12-hour TTL.

    GROUNDING NOTE: The OAuth token endpoint, the /v1/contact CRUD endpoints, the Standard Diagnostic Integration, and the base/rate-limit behavior below are confirmed from ezyVet''s public developer documentation (developers.ezyvet.com). The remaining resource paths (animal, appointment, consult, invoice, product, diagnostic, prescription, vaccination and their reference resources) are MODELED on ezyVet''s documented /v1/{resource} REST pattern and published resource categories - operationId or path names may differ from the exact ezyVet catalog. Consult the partner Postman collection for authoritative request/response shapes.'
  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: Invoices
  description: Invoices, invoice lines, and payments. (Modeled.)
paths:
  /v1/invoice:
    get:
      operationId: listInvoices
      tags:
      - Invoices
      summary: List invoices
      description: Lists invoices. (Modeled.)
      parameters:
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Page'
      responses:
        '200':
          $ref: '#/components/responses/ListResponse'
    post:
      operationId: createInvoice
      tags:
      - Invoices
      summary: Create an invoice
      requestBody:
        $ref: '#/components/requestBodies/GenericResource'
      responses:
        '200':
          $ref: '#/components/responses/ItemResponse'
        '422':
          $ref: '#/components/responses/ValidationError'
  /v1/invoice/{id}:
    parameters:
    - $ref: '#/components/parameters/Id'
    get:
      operationId: getInvoice
      tags:
      - Invoices
      summary: Retrieve an invoice
      responses:
        '200':
          $ref: '#/components/responses/ItemResponse'
        '404':
          $ref: '#/components/responses/NotFound'
    patch:
      operationId: updateInvoice
      tags:
      - Invoices
      summary: Update an invoice
      requestBody:
        $ref: '#/components/requestBodies/GenericResource'
      responses:
        '200':
          $ref: '#/components/responses/ItemResponse'
        '404':
          $ref: '#/components/responses/NotFound'
  /v1/invoiceline:
    get:
      operationId: listInvoiceLines
      tags:
      - Invoices
      summary: List invoice lines
      description: Lists line items on invoices. (Modeled.)
      responses:
        '200':
          $ref: '#/components/responses/ListResponse'
  /v1/payment:
    get:
      operationId: listPayments
      tags:
      - Invoices
      summary: List payments
      description: Lists payments recorded against invoices. (Modeled.)
      responses:
        '200':
          $ref: '#/components/responses/ListResponse'
    post:
      operationId: createPayment
      tags:
      - Invoices
      summary: Create a payment
      requestBody:
        $ref: '#/components/requestBodies/GenericResource'
      responses:
        '200':
          $ref: '#/components/responses/ItemResponse'
        '422':
          $ref: '#/components/responses/ValidationError'
components:
  responses:
    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'
    ItemResponse:
      description: A single resource envelope.
      content:
        application/json:
          schema:
            type: object
            additionalProperties: true
  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
  parameters:
    Page:
      name: page
      in: query
      required: false
      description: 1-based page number.
      schema:
        type: integer
        default: 1
    Id:
      name: id
      in: path
      required: true
      description: The numeric ID of the resource.
      schema:
        type: integer
    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
  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.