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.
openapi: 3.2.0
info:
title: PetExec Profile API
description: The PetExec API is a REST API for existing PetExec customers and their developers to extend the PetExec pet-care business management platform (daycare, boarding, grooming, training, and scheduled services).
version: '1.0'
contact:
name: PetExec
url: https://www.petexec.net/features/api-for-developers
servers:
- url: https://secure.petexec.net/api
description: PetExec production API (used by nearly all official PHP and most JavaScript examples)
- url: https://beta.petexec.net/api
description: PetExec beta/staging API (referenced by some official JavaScript examples for the same paths; not separately documented)
security:
- bearerAuth: []
tags:
- name: Profile
description: The authenticated user's own profile and portal menu.
paths:
/profile/:
get:
operationId: getAuthenticatedUserProfile
tags:
- Profile
summary: Get the authenticated user's profile
responses:
'200':
description: The authenticated user's profile.
content:
application/json:
schema:
type: object
additionalProperties: true
'401':
$ref: '#/components/responses/Unauthorized'
/menu:
get:
operationId: getMenu
tags:
- Profile
summary: Get the owner-portal menu for the authenticated user
description: Requires the menu_read scope. Confirmed via the official PHP-Guzzle/Menu/get_menu.php example; the parallel JavaScript example (JavaScript/Menu/get_menu_for_authenticated_user.js) appears to be a copy/paste error in PetExec's own repo - it calls GET /owner/{ownerid} instead.
responses:
'200':
description: The authenticated user's portal menu.
content:
application/json:
schema:
type: object
additionalProperties: true
'401':
$ref: '#/components/responses/Unauthorized'
components:
responses:
Unauthorized:
description: Missing, invalid, or expired Bearer token, or insufficient scope.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
schemas:
Error:
type: object
additionalProperties: true
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: 'OAuth2 password-grant access token obtained from POST /token. Passed as `Authorization: Bearer YOUR_ACCESS_TOKEN`.'