Shepherd Veterinary Software Inventory Ordering History API

The InventoryOrderingHistory API from Shepherd Veterinary Software — 3 operation(s) for inventoryorderinghistory.

Operations 3

POST /pav2/open-api-inventory/ordering-history/bulk-export Retrieves {OpenApiInventoryOrderingHistoryController.InventoryOrderingHistoryBul… #
POST /pav2/open-api-inventory/ordering-history Retrieves {OpenApiInventoryOrderingHistoryController.InventoryOrderingHistory}… #
POST /pav2/open-api-inventory/ordering-history/bulk-result Retrieves {OpenApiInventoryOrderingHistoryController.InventoryOrderingHistoryBul… #

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/shepherd-vet:shepherd-vet-inventoryorderinghistory-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

shepherd-vet-inventoryorderinghistory-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: v1
  title: Shepherd Open API (v2.248.0.39) Inventory Ordering History…
  description: 'Production Base URL: https://open-api.shepherd.vet/pav2/


    Production App URL: https://app.shepherd.vet/


    Production Documentation URL: https://app.shepherd.vet/swagger/


    Sandbox Base URL: https://demo-open-api.shepherd.vet/pav2/


    Sandbox App URL: https://demo.shepherd.vet/


    Sandbox Documentation URL: https://demo.shepherd.vet/swagger


    Authorization: The integration is authorized by providing two headers in the API call


    X-Integration-Private-Key - this contains the private key from your credentials

    X-Integration-Public-Key - this contains the public key from your credentials


    Additionally, for all requests other than Clinic, the X-Clinic-Id header must be provided with the value of the clinic entity id for which you are running the API requests. You can get the entity id by calling the Clinic endpoint. If authorization fails, the request returns HTTP status 401 and the response body is one of the messages below. Missing X-Integration-Public-Key header - the public key header is absent from the request. Missing X-Integration-Private-Key header - the private key header is absent from the request. Missing X-Clinic-Id header - the clinic identifier header is absent, and the endpoint is clinic scoped. Incorrect API keys provided - both key headers were supplied, but the public key matches no integration, or the private key is not valid for that integration. Integration not enabled for the provided clinic - the key pair is valid, but the integration is not enabled and active for the clinic supplied in X-Clinic-Id. NEW: Each API call will count against your RPH and RPM limits. Once you exhaust those limits, requests will start returning HTTP status 429. The RPH is set to 12000 and RPM to 800 (subject to change). Where an endpoint supports searchQuery, a query longer than 500 characters may return HTTP status 400 with ERROR_MESSAGES.SEARCH_PHRASE.TOO_LONG, and a query with more than 10 words may return HTTP status 400 with ERROR_MESSAGES.SEARCH_PHRASE.TOO_MANY_PHRASES. NOTE: Since this API is WIP, we would be happy to hear any feedback and to implement additional filtering/sorting options etc. **Endpoints:

    All endpoints are POST requests that accept JSON bodies. The common request properties for all endpoints are:**


    rpp::int - The number of items to return per page. The max is 1000. Defaults to 10. page::int - The page number. Defaults to 1. sort::string - Which field to sort by. Needs to be in "field|order" format, where order is either "asc" or "desc". All top-level properties should be sortable, only some nested-fields work and you should probably not use them until this API reaches production and we settle on which nested-field sortings we will support. Default depends on endpoint, usually "id|asc". embed::string - Comma-separated values for nested-fields you want to fetch (eg. "clientPhones,clientPhones.phoneType" on Client endpoint). If a specific embed is not requested, the response will contain either null or an empty array for that value. No default. dateCreatedFrom::date

    dateCreatedTo::date

    dateUpdatedFrom::date

    dateUpdatedTo::date

    - Date range filters for either the creation date or last update date. - You can pass in either one end or both of them. *


    * Only the date filters listed on an endpoint''s request model are supported; sending another one, or a ''From'' later than its ''To'', returns HTTP status 400. The request responses will come back as a JSON object. The common response properties for all endpoints are:


    embed::string - Lists the embed used in the request. This may sometimes be different from what you sent in, if in the future we add that some embeds get set automatically on certain endpoints

    links::object[] - Always empty, a leftover from the internal framework we use on our web API. Will be removed in the future if possible so do not rely on this

    page::int - Which page was fetched.'
servers:
- url: https://open-api.shepherd.vet
tags:
- name: InventoryOrderingHistory
paths:
  /pav2/open-api-inventory/ordering-history/bulk-export:
    post:
      tags:
      - InventoryOrderingHistory
      summary: Retrieves {OpenApiInventoryOrderingHistoryController.InventoryOrderingHistoryBul…
      description: 'Use this endpoint instead of `POST /pav2/open-api-inventory/ordering-history` when fetching data in bulk.


        The header row is fixed and carries the same column names as the paged endpoint''s JSON fields.

        Relation columns are filled only for the relations you name in `embed`; anything left out is

        written as an empty column rather than resolved for every exported row. Omit `embed` entirely and

        the export is the scalar columns only — `inventoryProductSetting.name`, `vendor.*`, `status.name`,

        `unitOfMeasure.name` and `unitType.name` all come back blank.


        Example Request

        {

        "inventoryProductSettingIds": "dcfd5e42-d35b-4f78-bd12-5b2a3e12e4a7",

        "dateReceivedFrom": "2026-01-01T00:00:00Z",

        "dateReceivedTo": "2026-04-30T00:00:00Z"

        }


        Example Response

        {

        "message": "Exporting job started successfully",

        "dateCreated": "2026-06-27T07:32:29.7297039Z",

        "dateUpdated": "2026-06-27T07:32:29.7297039Z",

        "id": "f1df1796-b043-41ac-84b2-b30900aeb635"

        }'
      operationId: OpenApiInventoryOrderingHistoryBulkExport
      parameters:
      - name: x-integration-public-key
        in: header
        description: Your public API key
        required: true
        schema:
          type: string
      - name: x-integration-private-key
        in: header
        description: Your private API key
        required: true
        schema:
          type: string
      - name: x-clinic-id
        in: header
        description: The clinic uuid identifier
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenApiInventoryOrderingHistoryController.InventoryOrderingHistoryBulkExport'
            text/json:
              schema:
                $ref: '#/components/schemas/OpenApiInventoryOrderingHistoryController.InventoryOrderingHistoryBulkExport'
            application/hal+json:
              schema:
                $ref: '#/components/schemas/OpenApiInventoryOrderingHistoryController.InventoryOrderingHistoryBulkExport'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenApiInventoryOrderingHistoryController.InventoryOrderingHistoryFilterModel'
          text/json:
            schema:
              $ref: '#/components/schemas/OpenApiInventoryOrderingHistoryController.InventoryOrderingHistoryFilterModel'
          application/hal+json:
            schema:
              $ref: '#/components/schemas/OpenApiInventoryOrderingHistoryController.InventoryOrderingHistoryFilterModel'
        description: The model.
        required: true
  /pav2/open-api-inventory/ordering-history:
    post:
      tags:
      - InventoryOrderingHistory
      summary: Retrieves {OpenApiInventoryOrderingHistoryController.InventoryOrderingHistory}…
      description: 'Returns one record per inventory item history entry. Alongside purchase order lines the history

        also carries the item''s initial lot and its inventory adjustments; those rows have no purchase

        order, so `purchaseOrderId`, `purchaseOrderNumber`, `vendor`, `quantity`, `actualQuantity`,

        `orderedUnits` and `status` are empty on them.


        Filter the window with `dateReceivedFrom`/`dateReceivedTo`, which every row carries, or with

        `dateCreatedFrom`/`dateCreatedTo`, which is the date of the purchase order and so matches ordered

        history only. The inherited `dateUpdatedFrom`/`dateUpdatedTo` are not applied — the view records no

        update date. Neither are `ids` and `excludeIds`: the view has no row identifier of its own, which

        is also why `id` is always an empty GUID.


        Name `inventoryProductSetting` in `embed` to get the inventory item itself on every entry, which

        saves a second call when the result spans more than one item. Its linked products are a collection

        and are not embedded here; read those from `POST /pav2/open-api-inventory-product-settings` with

        `"embed": "products"` and join on `inventoryProductSettingId`.


        Example Request

        {

        "embed": "inventoryProductSetting,vendor,unitOfMeasure,status",

        "inventoryProductSettingIds": "dcfd5e42-d35b-4f78-bd12-5b2a3e12e4a7"

        }'
      operationId: OpenApiInventoryOrderingHistoryGet
      parameters:
      - name: x-integration-public-key
        in: header
        description: Your public API key
        required: true
        schema:
          type: string
      - name: x-integration-private-key
        in: header
        description: Your private API key
        required: true
        schema:
          type: string
      - name: x-clinic-id
        in: header
        description: The clinic uuid identifier
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RESTCollectionModelBase_OpenApiInventoryOrderingHistoryController.InventoryOrderingHistory'
            text/json:
              schema:
                $ref: '#/components/schemas/RESTCollectionModelBase_OpenApiInventoryOrderingHistoryController.InventoryOrderingHistory'
            application/hal+json:
              schema:
                $ref: '#/components/schemas/RESTCollectionModelBase_OpenApiInventoryOrderingHistoryController.InventoryOrderingHistory'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenApiInventoryOrderingHistoryController.InventoryOrderingHistoryFilterModel'
          text/json:
            schema:
              $ref: '#/components/schemas/OpenApiInventoryOrderingHistoryController.InventoryOrderingHistoryFilterModel'
          application/hal+json:
            schema:
              $ref: '#/components/schemas/OpenApiInventoryOrderingHistoryController.InventoryOrderingHistoryFilterModel'
        description: The model.
        required: true
  /pav2/open-api-inventory/ordering-history/bulk-result:
    post:
      tags:
      - InventoryOrderingHistory
      summary: Retrieves {OpenApiInventoryOrderingHistoryController.InventoryOrderingHistoryBul…
      description: 'Important:

        - This endpoint will return current status of the bulk export request.

        - If the export request is finished, download url will be provided in the response (url expires in 1h).

        - If the download url is expired you can obtain the new one by requesting this endpoint with the same export request id once again.

        - Result will be available for 10 days after it was created.


        Example Request

        {

        "id": "d9f73f3b-2b6a-489e-8c8a-e3f109ca0f55"

        }'
      operationId: OpenApiInventoryOrderingHistoryBulkResult
      parameters:
      - name: x-integration-public-key
        in: header
        description: Your public API key
        required: true
        schema:
          type: string
      - name: x-integration-private-key
        in: header
        description: Your private API key
        required: true
        schema:
          type: string
      - name: x-clinic-id
        in: header
        description: The clinic uuid identifier
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenApiInventoryOrderingHistoryController.InventoryOrderingHistoryBulkResult'
            text/json:
              schema:
                $ref: '#/components/schemas/OpenApiInventoryOrderingHistoryController.InventoryOrderingHistoryBulkResult'
            application/hal+json:
              schema:
                $ref: '#/components/schemas/OpenApiInventoryOrderingHistoryController.InventoryOrderingHistoryBulkResult'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenApiInventoryOrderingHistoryController.InventoryOrderingHistoryBulkResultReadModel'
          text/json:
            schema:
              $ref: '#/components/schemas/OpenApiInventoryOrderingHistoryController.InventoryOrderingHistoryBulkResultReadModel'
          application/hal+json:
            schema:
              $ref: '#/components/schemas/OpenApiInventoryOrderingHistoryController.InventoryOrderingHistoryBulkResultReadModel'
        description: The model.
        required: true
components:
  schemas:
    OpenApiInventoryOrderingHistoryController.InventoryOrderingHistoryBulkExport:
      description: InventoryOrderingHistory bulk export response model. Returned when a bulk export job is queued.
      type: object
      properties:
        message:
          description: Free-text field for the message about initiating export.
          type: string
        dateCreated:
          format: date-time
          type: string
        dateUpdated:
          format: date-time
          type: string
        id:
          type: string
    OpenApiInventoryOrderingHistoryController.InventoryOrderingHistoryFilterModel:
      description: InventoryOrderingHistory Filter request model.
      type: object
      properties:
        dateReceivedFrom:
          format: date-time
          description: Filters entries received on or after this date.
          type: string
        dateReceivedTo:
          format: date-time
          description: Filters entries received on or before this date.
          type: string
        inventoryProductSettingIds:
          description: Comma-separated string of InventoryProductSetting identifiers.
          type: string
        dateCreatedFrom:
          format: date-time
          description: 'Sets the start of the date range filter on the entity creation date. Must not be later than DateCreatedTo, or

            the request returns 400. Defaults to null.'
          type: string
        dateCreatedTo:
          format: date-time
          description: The end of the date range filter on the entity creation date. Defaults to null.
          type: string
        dateUpdatedFrom:
          format: date-time
          description: 'The start of the date range filter on the entity last update date. Must not be later than DateUpdatedTo, or the

            request returns 400. Defaults to null.'
          type: string
        dateUpdatedTo:
          format: date-time
          description: The end of the date range filter on the entity last update date. Defaults to null.
          type: string
        embed:
          description: Comma-separated list of embedded properties to fetch. Nested fetches can be specified using dot notation (e.g., "client.clientPhones"). Defaults to null.
          type: string
        excludeIds:
          description: Comma-separated list of IDs representing entities that you wish to exclude from your search. Defaults to null.
          type: string
        ids:
          description: Comma-separated list of IDs representing entities that you wish to include in your search. Defaults to null.
          type: string
        page:
          format: int32
          description: The page number. Defaults to 1.
          type: integer
        rpp:
          format: int32
          description: The number of items to return per page. The max is 1000. Defaults to 10.
          type: integer
        sort:
          description: Which field to sort by. Needs to be in "field|order" format, where order is either "asc" or "desc". The default sort field depends on the endpoint, typically "id|asc"
          type: string
    OpenApiInventoryOrderingHistoryController.InventoryProductSetting:
      description: InventoryProductSetting response model. Represents an item in inventory.
      type: object
      properties:
        currentQuantity:
          format: double
          description: Current quantity on hand for the item.
          type: number
        name:
          description: Inventory item name.
          type: string
        dateCreated:
          format: date-time
          type: string
        dateUpdated:
          format: date-time
          type: string
        id:
          type: string
    OpenApiInventoryOrderingHistoryController.InventoryOrderingHistory:
      description: InventoryOrderingHistory response model. One record per inventory item history entry.
      type: object
      properties:
        actualQuantity:
          format: double
          description: Quantity actually received against the purchase order line. Empty on entries with no purchase order.
          type: number
        costPerUnit:
          format: double
          description: Cost of a single unit of measure as received.
          type: number
        dateCreated:
          format: date-time
          description: Date of the purchase order. Empty on entries with no purchase order.
          type: string
        dateReceived:
          format: date-time
          description: Date the stock was received.
          type: string
        inventoryProductSetting:
          $ref: '#/components/schemas/OpenApiInventoryOrderingHistoryController.InventoryProductSetting'
          description: 'Object representing the inventory item the entry belongs to. Only populated when named in

            `embed`.'
        inventoryProductSettingId:
          format: uuid
          description: Unique identifier representing the inventory item the entry belongs to.
          type: string
          example: 00000000-0000-0000-0000-000000000000
        orderedUnits:
          format: double
          description: Units ordered, in the item's stocking unit. Empty on entries with no purchase order.
          type: number
        purchaseOrderId:
          format: uuid
          description: Unique identifier representing the related purchase order. Empty on initial lot and adjustment entries.
          type: string
          example: 00000000-0000-0000-0000-000000000000
        purchaseOrderNumber:
          format: int32
          description: Purchase order number. Empty on initial lot and adjustment entries.
          type: integer
        qohOrdered:
          format: double
          description: Quantity on hand added by the entry when it was received.
          type: number
        qohRemaining:
          format: double
          description: Quantity still on hand from the entry.
          type: number
        quantity:
          format: double
          description: Quantity ordered on the purchase order line. Empty on entries with no purchase order.
          type: number
        receivedUnits:
          format: double
          description: Units received, in the item's stocking unit.
          type: number
        status:
          $ref: '#/components/schemas/OpenApiInventoryOrderingHistoryController.PurchaseOrderDetailStatus'
          description: Object representing the related purchase order line status.
        statusId:
          format: uuid
          description: Unique identifier representing the related purchase order line status.
          type: string
          example: 00000000-0000-0000-0000-000000000000
        unitOfMeasure:
          $ref: '#/components/schemas/OpenApiInventoryOrderingHistoryController.UnitOfMeasure'
          description: Object representing the unit of measure the entry was received in.
        unitOfMeasureId:
          format: uuid
          description: Unique identifier representing the unit of measure the entry was received in.
          type: string
          example: 00000000-0000-0000-0000-000000000000
        unitType:
          $ref: '#/components/schemas/OpenApiInventoryOrderingHistoryController.UnitOfMeasure'
          description: Object representing the unit type of the entry.
        unitTypeId:
          format: uuid
          description: Unique identifier representing the unit type of the entry.
          type: string
          example: 00000000-0000-0000-0000-000000000000
        vendor:
          $ref: '#/components/schemas/OpenApiInventoryOrderingHistoryController.InventoryVendor'
          description: 'Object representing the vendor the purchase order was placed with. Empty on entries with no

            purchase order.'
        dateUpdated:
          format: date-time
          type: string
        id:
          type: string
    OpenApiInventoryOrderingHistoryController.PurchaseOrderDetailStatus:
      description: PurchaseOrderDetailStatus response model.
      type: object
      properties:
        abrv:
          description: Short unique identifier for the lookup.
          type: string
        description:
          description: The description of the lookup entry.
          type: string
        name:
          description: The name of the lookup entry.
          type: string
        dateCreated:
          format: date-time
          type: string
        dateUpdated:
          format: date-time
          type: string
        id:
          type: string
    OpenApiInventoryOrderingHistoryController.InventoryVendor:
      description: InventoryVendor response model.
      type: object
      properties:
        name:
          description: Vendor name.
          type: string
        dateCreated:
          format: date-time
          type: string
        dateUpdated:
          format: date-time
          type: string
        id:
          type: string
    OpenApiInventoryOrderingHistoryController.UnitOfMeasure:
      description: UnitOfMeasure response model.
      type: object
      properties:
        abrv:
          description: Short unique identifier for the lookup.
          type: string
        description:
          description: The description of the lookup entry.
          type: string
        name:
          description: The name of the lookup entry.
          type: string
        dateCreated:
          format: date-time
          type: string
        dateUpdated:
          format: date-time
          type: string
        id:
          type: string
    RESTCollectionModelBase_OpenApiInventoryOrderingHistoryController.InventoryOrderingHistory:
      type: object
      properties:
        embed:
          type: string
        item:
          type: array
          items:
            $ref: '#/components/schemas/OpenApiInventoryOrderingHistoryController.InventoryOrderingHistory'
        page:
          format: int32
          type: integer
        recordsPerPage:
          format: int32
          type: integer
        searchQuery:
          type: string
        sort:
          type: string
        totalRecords:
          format: int32
          type: integer
    OpenApiInventoryOrderingHistoryController.InventoryOrderingHistoryBulkResult:
      description: InventoryOrderingHistory bulk result response model. Reports the status of a queued bulk export.
      type: object
      properties:
        status:
          description: The status of export.
          type: string
        url:
          description: Inventory ordering history csv url to S3 bucket.
          type: string
        dateCreated:
          format: date-time
          type: string
        dateUpdated:
          format: date-time
          type: string
        id:
          type: string
    OpenApiInventoryOrderingHistoryController.InventoryOrderingHistoryBulkResultReadModel:
      description: InventoryOrderingHistory bulk result request model.
      type: object
      properties:
        id:
          description: The Export identifier.
          type: string