Home
Gingr
Gingr
Gingr is pet-care business management software for dog daycare, boarding, training, and grooming facilities, covering reservations, check-in/checkout, client and pet records, feeding and medication schedules, immunizations, report cards, point of sale, and payments. Gingr publishes a JSON:API-style Partner API (api.gingr.io, X-Api-Key header, live OpenAPI/Swagger and Postman collection at docs.gingr.io) covering owners (parents), pets, bookings/reservations, invoices and payments, immunizations, and report cards, alongside an older subdomain-scoped legacy reporting API used for read-only pulls of owners and reservations.
8 APIs
0 Features
Pet Care Pet Daycare Boarding Grooming Vertical SaaS Scheduling Payments
Manage owner/client (called "parents" in Gingr) records - create, list, search, update, delete, and merge duplicate parent accounts; validate email/phone uniqueness; manage card...
Manage pet profiles belonging to an owner - create, list, get, update, delete, and merge pets; manage feeding schedules and medication schedules attached to a pet, and pet-level...
Create and manage bookings/reservations for daycare, boarding, training, and grooming - list and filter by date, status, pet, or location; check availability of lodgings and spe...
Read the facility's service catalog and operational configuration - service types and rates, booking types and categories, lodgings, locations, hours of operation, and package/m...
List and retrieve invoices and charges, refund invoice line items, charge a card on file, pay or refund an invoice or a deposit. Complements the point-of-sale and billing flows ...
List and update a pet's immunization/vaccination records against the facility's configured immunization types, and pull a facility-wide list of expired pet immunizations for com...
Read the daily report cards Gingr generates for a pet's stay - activities, notes, and attached photo/video media shared back with the owner - plus the facility's configured repo...
Move a booking onto the waitlist when a facility is at capacity, and list/filter bookings by the wait_listed status to work the queue as space opens up.
Sources
opencollection: 1.0.0
info:
name: Gingr Partner API
version: 1.8.0
request:
auth:
type: apikey
key: X-Api-Key
value: '{{apiKey}}'
in: header
items:
- info:
name: Owners
type: folder
items:
- info:
name: List owners.
type: http
http:
method: GET
url: https://api.gingr.io/v1/parents
docs: Lists owner (parent) records, filterable by name, email, phone, home location, or created date range.
- info:
name: Create an owner.
type: http
http:
method: POST
url: https://api.gingr.io/v1/parents
body:
type: json
data: '{"data": {"type": "parents", "attributes": {"firstName": "TestFirst", "lastName": "TestLast", "address1": "123
Test Street", "city": "Atlanta", "region": "Georgia", "zip": "30301", "contact": {"email": "test@example.com", "cellPhone":
"555-987-6543"}}}}'
docs: Creates a new owner (parent) record.
- info:
name: Get an owner.
type: http
http:
method: GET
url: https://api.gingr.io/v1/parents/:parentId
params:
- name: parentId
value: ''
type: path
description: The parentId.
docs: Retrieves a single owner (parent) record by ID.
- info:
name: Update an owner.
type: http
http:
method: PUT
url: https://api.gingr.io/v1/parents/:parentId
params:
- name: parentId
value: ''
type: path
description: The parentId.
body:
type: json
data: '{"data": {"type": "parents", "attributes": {}}}'
docs: Updates an existing owner (parent) record.
- info:
name: Delete an owner.
type: http
http:
method: DELETE
url: https://api.gingr.io/v1/parents/:parentId
params:
- name: parentId
value: ''
type: path
description: The parentId.
docs: Deletes an owner (parent) record.
- info:
name: Validate email uniqueness.
type: http
http:
method: GET
url: https://api.gingr.io/v1/parents/validate-email?email=test@example.com
params:
- name: email
value: test@example.com
type: query
docs: Checks whether an email address already belongs to an owner record.
- info:
name: Validate phone uniqueness.
type: http
http:
method: GET
url: https://api.gingr.io/v1/parents/validate-phone?phone=555-987-6543
params:
- name: phone
value: 555-987-6543
type: query
docs: Checks whether a phone number already belongs to an owner record.
- info:
name: Merge two owners.
type: http
http:
method: POST
url: https://api.gingr.io/v1/parents/merge
body:
type: json
data: '{"data": {"attributes": {"sourceParentId": 0, "targetParentId": 0}}}'
docs: Merges a duplicate owner (parent) record into a surviving record.
- info:
name: Pets
type: folder
items:
- info:
name: List pets.
type: http
http:
method: GET
url: https://api.gingr.io/v1/pets
docs: Lists pet profiles, filterable by owner, species, or breed.
- info:
name: Create a pet.
type: http
http:
method: POST
url: https://api.gingr.io/v1/pets
body:
type: json
data: '{"data": {"type": "pets", "attributes": {"name": "Abby", "sex": "Female", "weight": 16, "birthday": "2012-08-27",
"parentId": 0}}}'
docs: Creates a new pet profile belonging to an owner.
- info:
name: Get a pet.
type: http
http:
method: GET
url: https://api.gingr.io/v1/pets/:petId
params:
- name: petId
value: ''
type: path
description: The petId.
docs: Retrieves a single pet profile by ID, including breed, feeding, and medication data.
- info:
name: Update a pet.
type: http
http:
method: PUT
url: https://api.gingr.io/v1/pets/:petId
params:
- name: petId
value: ''
type: path
description: The petId.
body:
type: json
data: '{"data": {"type": "pets", "attributes": {}}}'
docs: Updates an existing pet profile.
- info:
name: Delete a pet.
type: http
http:
method: DELETE
url: https://api.gingr.io/v1/pets/:petId
params:
- name: petId
value: ''
type: path
description: The petId.
docs: Deletes a pet profile.
- info:
name: Merge two pets.
type: http
http:
method: POST
url: https://api.gingr.io/v1/pets/merge
body:
type: json
data: '{"data": {"attributes": {}}}'
docs: Merges a duplicate pet record into a surviving record.
- info:
name: Reservations
type: folder
items:
- info:
name: List bookings.
type: http
http:
method: GET
url: https://api.gingr.io/v1/bookings
docs: Lists bookings/reservations, filterable by created/booking date range, status, owner, pet, or location.
- info:
name: Create a booking.
type: http
http:
method: POST
url: https://api.gingr.io/v1/bookings
body:
type: json
data: '{"data": {"type": "bookings", "attributes": {"parentId": 0, "petIds": [0], "bookingTypeId": 0, "locationId":
0, "bookingStart": "2026-08-01T10:00:00Z", "bookingEnd": "2026-08-03T10:00:00Z"}}}'
docs: Creates a new booking/reservation for a pet.
- info:
name: Get a booking.
type: http
http:
method: GET
url: https://api.gingr.io/v1/bookings/:bookingId
params:
- name: bookingId
value: ''
type: path
description: The bookingId.
docs: Retrieves a single booking/reservation by ID.
- info:
name: Update a booking.
type: http
http:
method: PUT
url: https://api.gingr.io/v1/bookings/:bookingId
params:
- name: bookingId
value: ''
type: path
description: The bookingId.
body:
type: json
data: '{"data": {"type": "bookings", "attributes": {}}}'
docs: Updates an existing booking/reservation.
- info:
name: Cancel a booking.
type: http
http:
method: PUT
url: https://api.gingr.io/v1/bookings/:bookingId/cancel
params:
- name: bookingId
value: ''
type: path
description: The bookingId.
body:
type: json
data: '{"data": {"attributes": {"cancellationReasonId": 0}}}'
docs: Cancels a booking, optionally recording a cancellation reason.
- info:
name: Check in a booking.
type: http
http:
method: POST
url: https://api.gingr.io/v1/bookings/:bookingId/check-in
params:
- name: bookingId
value: ''
type: path
description: The bookingId.
docs: Checks a booking in, marking status checked_in.
- info:
name: Checkout a booking.
type: http
http:
method: POST
url: https://api.gingr.io/v1/bookings/:bookingId/checkout
params:
- name: bookingId
value: ''
type: path
description: The bookingId.
docs: Checks a booking out, typically generating an invoice.
- info:
name: Estimate a booking.
type: http
http:
method: GET
url: https://api.gingr.io/v1/bookings/:bookingId/estimate
params:
- name: bookingId
value: ''
type: path
description: The bookingId.
docs: Returns an estimated price for a booking based on its configured services and dates.
- info:
name: Add a service to a booking.
type: http
http:
method: PUT
url: https://api.gingr.io/v1/bookings/:bookingId/services
params:
- name: bookingId
value: ''
type: path
description: The bookingId.
body:
type: json
data: '{"data": {"attributes": {"serviceTypeId": 0}}}'
docs: Adds a service to an existing booking.
- info:
name: List available lodgings.
type: http
http:
method: GET
url: https://api.gingr.io/v1/bookings/available-lodgings?filter[bookingStart]=2026-08-01&filter[bookingEnd]=2026-08-03
params:
- name: filter[bookingStart]
value: '2026-08-01'
type: query
- name: filter[bookingEnd]
value: '2026-08-03'
type: query
docs: Returns the lodgings (kennels/runs/suites) available for a given date range.
- info:
name: Services
type: folder
items:
- info:
name: List service types.
type: http
http:
method: GET
url: https://api.gingr.io/v1/config/service-types
docs: Lists the facility's configured service types (e.g. daycare, boarding, grooming, training add-ons).
- info:
name: Get a service type.
type: http
http:
method: GET
url: https://api.gingr.io/v1/config/service-types/:serviceTypeId
params:
- name: serviceTypeId
value: ''
type: path
description: The serviceTypeId.
docs: Retrieves detailed information for a specific service type.
- info:
name: List booking types.
type: http
http:
method: GET
url: https://api.gingr.io/v1/config/booking-types
docs: Lists the facility's configured booking types.
- info:
name: List lodgings.
type: http
http:
method: GET
url: https://api.gingr.io/v1/config/lodgings
docs: Lists the facility's configured lodgings (kennels/runs/suites).
- info:
name: List locations.
type: http
http:
method: GET
url: https://api.gingr.io/v1/config/locations
docs: Lists the facility's locations, for multi-location Gingr accounts.
- info:
name: Get a location.
type: http
http:
method: GET
url: https://api.gingr.io/v1/config/locations/:locationId
params:
- name: locationId
value: ''
type: path
description: The locationId.
docs: Retrieves a single location by ID.
- info:
name: Invoices & Payments
type: folder
items:
- info:
name: List invoices.
type: http
http:
method: GET
url: https://api.gingr.io/v1/invoices
docs: Lists invoices, filterable by owner.
- info:
name: Get an invoice.
type: http
http:
method: GET
url: https://api.gingr.io/v1/invoices/:invoiceId
params:
- name: invoiceId
value: ''
type: path
description: The invoiceId.
docs: Retrieves a single invoice with line items.
- info:
name: List invoice charges.
type: http
http:
method: GET
url: https://api.gingr.io/v1/invoices/charges
docs: Lists individual charge line items across invoices.
- info:
name: Refund invoice items.
type: http
http:
method: POST
url: https://api.gingr.io/v1/invoices/:invoiceId/refund-items
params:
- name: invoiceId
value: ''
type: path
description: The invoiceId.
body:
type: json
data: '{"data": {"attributes": {"itemIds": [0], "refundReasonId": 0}}}'
docs: Refunds specific line items on an invoice.
- info:
name: Charge a card on file.
type: http
http:
method: POST
url: https://api.gingr.io/v1/payments/charge
body:
type: json
data: '{"data": {"attributes": {"parentId": 0, "amount": 0}}}'
docs: Charges an owner's card on file for an arbitrary amount, outside of a specific invoice.
- info:
name: Pay an invoice.
type: http
http:
method: POST
url: https://api.gingr.io/v1/payments/invoices/:invoiceId
params:
- name: invoiceId
value: ''
type: path
description: The invoiceId.
body:
type: json
data: '{"data": {}}'
docs: Pays an invoice using an owner's card on file.
- info:
name: Refund an invoice.
type: http
http:
method: POST
url: https://api.gingr.io/v1/payments/invoices/:invoiceId/refund
params:
- name: invoiceId
value: ''
type: path
description: The invoiceId.
body:
type: json
data: '{"data": {}}'
docs: Refunds a paid invoice.
- info:
name: Pay a deposit.
type: http
http:
method: POST
url: https://api.gingr.io/v1/payments/deposits/:depositId
params:
- name: depositId
value: ''
type: path
description: The depositId.
body:
type: json
data: '{"data": {}}'
docs: Pays a deposit for a booking.
- info:
name: Vaccinations
type: folder
items:
- info:
name: List a pet's immunizations.
type: http
http:
method: GET
url: https://api.gingr.io/v1/pets/:petId/immunizations
params:
- name: petId
value: ''
type: path
description: The petId.
docs: Lists a pet's immunization/vaccination records against the facility's configured immunization types.
- info:
name: Update a pet's immunization.
type: http
http:
method: PUT
url: https://api.gingr.io/v1/pets/:petId/immunizations/:immunizationTypeId
params:
- name: petId
value: ''
type: path
description: The petId.
- name: immunizationTypeId
value: ''
type: path
description: The immunizationTypeId.
body:
type: json
data: '{"data": {"attributes": {"administeredDate": "2026-01-15", "expirationDate": "2027-01-15"}}}'
docs: Records or updates a pet's immunization/vaccination date and expiration.
- info:
name: List expired immunizations.
type: http
http:
method: GET
url: https://api.gingr.io/v1/pets/immunization/expired
docs: Facility-wide list of expired pet immunizations, for compliance follow-up before check-in.
- info:
name: List immunization types.
type: http
http:
method: GET
url: https://api.gingr.io/v1/config/immunization-types
docs: Lists the immunization/vaccination types the facility requires or tracks.
- info:
name: Report Cards
type: folder
items:
- info:
name: List a pet's report cards.
type: http
http:
method: GET
url: https://api.gingr.io/v1/pets/:petId/report-cards?filter[locationId]=0
params:
- name: petId
value: ''
type: path
description: The petId.
- name: filter[locationId]
value: '0'
type: query
docs: Lists the daily activity report cards generated for a pet, scoped to a location.
- info:
name: Get a report card.
type: http
http:
method: GET
url: https://api.gingr.io/v1/pets/:petId/report-cards/:reportCardId
params:
- name: petId
value: ''
type: path
description: The petId.
- name: reportCardId
value: ''
type: path
description: The reportCardId.
docs: Retrieves a single report card, including notes and activities.
- info:
name: List report card media.
type: http
http:
method: GET
url: https://api.gingr.io/v1/pets/report-card-media
docs: Lists photo/video media attached to report cards.
- info:
name: Get report card form configuration.
type: http
http:
method: GET
url: https://api.gingr.io/v1/config/report-card-form
docs: Returns the facility's configured report card form fields.
- info:
name: Waitlist
type: folder
items:
- info:
name: Move a booking to the waitlist.
type: http
http:
method: POST
url: https://api.gingr.io/v1/bookings/:bookingId/wait-list
params:
- name: bookingId
value: ''
type: path
description: The bookingId.
docs: Moves a booking to wait_listed status, typically because the requested location or lodging is at capacity.
- info:
name: Accept a booking off the waitlist.
type: http
http:
method: POST
url: https://api.gingr.io/v1/bookings/:bookingId/accept
params:
- name: bookingId
value: ''
type: path
description: The bookingId.
docs: Accepts a wait-listed or pending booking off the waitlist/queue and confirms it.
- info:
name: List wait-listed bookings.
type: http
http:
method: GET
url: https://api.gingr.io/v1/bookings?filter[status][type]=wait_listed&filter[status][from]=2026-01-01&filter[status][to]=2026-12-31
params:
- name: filter[status][type]
value: wait_listed
type: query
- name: filter[status][from]
value: '2026-01-01'
type: query
- name: filter[status][to]
value: '2026-12-31'
type: query
docs: Lists bookings currently in wait_listed status within a date range.
bundled: true