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 CarePet DaycareBoardingGroomingVertical SaaSSchedulingPayments

APIs

Gingr Owners API

Manage owner/client (called "parents" in Gingr) records - create, list, search, update, delete, and merge duplicate parent accounts; validate email/phone uniqueness; manage card...

Gingr Pets API

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...

Gingr Reservations API

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...

Gingr Services API

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...

Gingr Invoices & Payments API

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 ...

Gingr Vaccinations API

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...

Gingr Report Cards API

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...

Gingr Waitlist API

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.

Collections

Pricing Plans

Gingr Plans Pricing

4 plans

PLANS

Rate Limits

Gingr Rate Limits

3 limits

RATE LIMITS

FinOps

Gingr Finops

FINOPS

Resources

🔗
DomainSecurity
DomainSecurity
🔑
Authentication
Authentication
🔗
LinkedIn
LinkedIn
🔗
Website
Website
🔗
Documentation
Documentation
🔗
Plans
Plans
🔗
RateLimits
RateLimits
🔗
FinOps
FinOps
📰
Blog
Blog

Sources

Raw ↑
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