Gingr Reservations API
Bookings/reservations for daycare, boarding, training, and grooming.
Bookings/reservations for daycare, boarding, training, and grooming.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/gingr-reservations-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 3.2.0
info:
title: Gingr Partner Invoices Reservations API
description: 'Gingr''s Partner API for pet-care business management software (dog daycare, boarding, training, and grooming). The API is JSON:API-flavored - request and response bodies wrap resource attributes under a `data` object - and every request must send a `subdomain` header identifying the facility''s Gingr account plus an `Accept: application/vnd.api+json` header. Endpoints below are a curated subset (owners/parents, pets, bookings/reservations, services and configuration, invoices/payments, immunizations, report cards, and waitlist) drawn from Gingr''s official public OpenAPI document at https://docs.gingr.io/documentation/swagger.json (Gingr API v1.8.0), which documents 158 operations in total. This document is a representative subset, not a full mirror; consult the live swagger.json for every operation, filter, and field.'
version: 1.8.0
contact:
name: Gingr
url: https://www.gingrapp.com
servers:
- url: https://api.gingr.io
description: Gingr Partner API (production)
security:
- ApiKeyAuth: []
tags:
- name: Reservations
description: Bookings/reservations for daycare, boarding, training, and grooming.
paths:
/v1/bookings:
get:
operationId: v1BookingsList
tags:
- Reservations
summary: Bookings - List
description: Lists bookings/reservations, filterable by created date range, booking start/end date range, status (completed, cancelled, checked_in, confirmed, pending_acceptance, wait_listed, unconfirmed), owner, pet, location, or booking category.
parameters:
- $ref: '#/components/parameters/Subdomain'
- $ref: '#/components/parameters/Accept'
- name: filter[status][type]
in: query
required: false
schema:
type: string
enum:
- completed
- cancelled
- checked_in
- confirmed
- pending_acceptance
- wait_listed
- unconfirmed
- name: filter[status][from]
in: query
required: false
schema:
type: string
format: date
- name: filter[status][to]
in: query
required: false
schema:
type: string
format: date
- name: filter[parentId]
in: query
required: false
schema:
type: integer
- name: filter[petIds]
in: query
required: false
schema:
type: array
items:
type: integer
- name: filter[locationIds]
in: query
required: false
schema:
type: array
items:
type: integer
- name: page[size]
in: query
required: false
schema:
type: integer
enum:
- 10
- 25
- 50
- 100
- name: page[number]
in: query
required: false
schema:
type: integer
minimum: 1
responses:
'200':
description: A page of booking resources.
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/BookingListResponse'
post:
operationId: v1BookingsCreate
tags:
- Reservations
summary: Bookings - Create
description: Creates a new booking/reservation for a pet.
parameters:
- $ref: '#/components/parameters/Subdomain'
- $ref: '#/components/parameters/Accept'
- $ref: '#/components/parameters/ContentType'
requestBody:
required: true
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/BookingCreateRequest'
responses:
'200':
description: The created booking resource.
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/BookingResponse'
'422':
$ref: '#/components/responses/ValidationError'
/v1/bookings/{bookingId}:
parameters:
- $ref: '#/components/parameters/Subdomain'
- $ref: '#/components/parameters/Accept'
- name: bookingId
in: path
required: true
schema:
type: integer
get:
operationId: v1BookingsDetails
tags:
- Reservations
summary: Bookings - Details
responses:
'200':
description: The requested booking resource.
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/BookingResponse'
'404':
$ref: '#/components/responses/NotFound'
put:
operationId: v1BookingsUpdate
tags:
- Reservations
summary: Bookings - Update
requestBody:
required: true
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/BookingCreateRequest'
responses:
'200':
description: The updated booking resource.
'404':
$ref: '#/components/responses/NotFound'
/v1/bookings/{bookingId}/cancel:
put:
operationId: v1BookingsCancel
tags:
- Reservations
summary: Bookings - Cancel
parameters:
- $ref: '#/components/parameters/Subdomain'
- $ref: '#/components/parameters/Accept'
- $ref: '#/components/parameters/ContentType'
- name: bookingId
in: path
required: true
schema:
type: integer
requestBody:
content:
application/vnd.api+json:
schema:
type: object
properties:
data:
type: object
properties:
attributes:
type: object
properties:
cancellationReasonId:
type: integer
responses:
'200':
description: The cancelled booking resource.
/v1/bookings/{bookingId}/check-in:
post:
operationId: v1BookingCheckIn
tags:
- Reservations
summary: Check In Booking
parameters:
- $ref: '#/components/parameters/Subdomain'
- $ref: '#/components/parameters/Accept'
- $ref: '#/components/parameters/ContentType'
- name: bookingId
in: path
required: true
schema:
type: integer
responses:
'200':
description: The checked-in booking resource.
/v1/bookings/{bookingId}/checkout:
post:
operationId: v1BookingsCheckout
tags:
- Reservations
summary: Bookings - Checkout
parameters:
- $ref: '#/components/parameters/Subdomain'
- $ref: '#/components/parameters/Accept'
- $ref: '#/components/parameters/ContentType'
- name: bookingId
in: path
required: true
schema:
type: integer
responses:
'200':
description: The checked-out booking resource, typically generating an invoice.
/v1/bookings/{bookingId}/estimate:
get:
operationId: v1BookingEstimate
tags:
- Reservations
summary: Booking - Estimate
description: Returns an estimated price for a booking based on its configured services and dates.
parameters:
- $ref: '#/components/parameters/Subdomain'
- $ref: '#/components/parameters/Accept'
- name: bookingId
in: path
required: true
schema:
type: integer
responses:
'200':
description: Estimated pricing breakdown for the booking.
/v1/bookings/{bookingId}/services:
put:
operationId: v1BookingAddService
tags:
- Reservations
summary: Add Service to Booking
parameters:
- $ref: '#/components/parameters/Subdomain'
- $ref: '#/components/parameters/Accept'
- $ref: '#/components/parameters/ContentType'
- name: bookingId
in: path
required: true
schema:
type: integer
requestBody:
content:
application/vnd.api+json:
schema:
type: object
properties:
data:
type: object
properties:
attributes:
type: object
properties:
serviceTypeId:
type: integer
responses:
'200':
description: The updated booking resource with the added service.
/v1/bookings/available-lodgings:
get:
operationId: v1BookingsAvailableLodgings
tags:
- Reservations
summary: Bookings Available Lodgings
description: Returns the lodgings (kennels/runs/suites) available for a given date range and booking type.
parameters:
- $ref: '#/components/parameters/Subdomain'
- $ref: '#/components/parameters/Accept'
- name: filter[bookingStart]
in: query
required: true
schema:
type: string
format: date
- name: filter[bookingEnd]
in: query
required: true
schema:
type: string
format: date
responses:
'200':
description: A list of available lodgings.
components:
parameters:
Accept:
name: Accept
in: header
required: true
schema:
type: string
example: application/vnd.api+json
ContentType:
name: Content-Type
in: header
required: true
schema:
type: string
example: application/vnd.api+json
Subdomain:
name: subdomain
in: header
required: true
description: The facility's Gingr account subdomain identifier.
schema:
type: string
example: donny
responses:
NotFound:
description: The requested resource was not found.
ValidationError:
description: The request payload failed validation.
schemas:
BookingListResponse:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/BookingResponse'
BookingResponse:
type: object
properties:
data:
type: object
properties:
type:
type: string
example: bookings
id:
type: integer
attributes:
$ref: '#/components/schemas/BookingAttributes'
BookingAttributes:
type: object
properties:
parentId:
type: integer
example: 1707
petIds:
type: array
items:
type: integer
example:
- 2661
bookingTypeId:
type: integer
locationId:
type: integer
bookingStart:
type: string
format: date-time
example: '2024-03-01T10:30:00Z'
bookingEnd:
type: string
format: date-time
status:
type: string
enum:
- completed
- cancelled
- checked_in
- confirmed
- pending_acceptance
- wait_listed
- unconfirmed
waitListDate:
type:
- string
- 'null'
format: date-time
waitListAcceptedDate:
type:
- string
- 'null'
format: date-time
BookingCreateRequest:
type: object
properties:
data:
type: object
properties:
type:
type: string
example: bookings
attributes:
$ref: '#/components/schemas/BookingAttributes'
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: X-Api-Key
description: 'API key issued per Gingr account from the "Manage Account" > API area of the Gingr console. Every request additionally requires a `subdomain` header identifying the Gingr account, and an `Accept: application/vnd.api+json` header.'