{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"ef6e6112-53a4-4510-a8bc-080a88f180a2","name":"JustFoodForDogs Partner API","description":"Use this collection to integrate partner systems with JustFoodForDogs customer, pet, veterinarian, pet-snapshot, and registration-workflow resources.\n\n## Before you begin\n\nThis collection is distributed with two Postman environments:\n\n- **Partner API Sandbox** — use for development, integration testing, and validation.\n    \n- **Partner API Production** — use only for live partner traffic after approval.\n    \n\nSelect the appropriate environment in Postman before sending any request. Each environment defines the following variables:\n\n| Environment variable | Purpose |\n| --- | --- |\n| `baseUrl` | Base URL for the selected API environment. |\n| `clientId` | Identifies your API client. |\n| `clientSecret` | Authenticates your API client. Treat this value as confidential. |\n| `partnerId` | Identifies your partner account and scopes API operations. |\n\nObtain environment-specific values from your JustFoodForDogs integration contact. Do not commit credentials to source control or expose them in exported collections, screenshots, logs, or support messages.\n\n## Authentication and request tracing\n\nThe collection-level pre-request script reads credentials from the selected environment and adds these headers automatically:\n\n| Header | Environment variable | Purpose |\n| --- | --- | --- |\n| `client_id` | `clientId` | Identifies the API client. |\n| `client_secret` | `clientSecret` | Authenticates the API client. |\n| `X-Partner-ID` | `partnerId` | Scopes operations to your partner account. |\n| `X-Request-ID` | Generated automatically | Unique UUID used to trace each request. |\n\nAll request URLs use `{{baseUrl}}` from the active environment.\n\n## Recommended setup\n\n1. Import or fork the collection and both supplied environments into a private workspace.\n    \n2. Select **Partner API Sandbox** in Postman's environment selector.\n    \n3. Populate `baseUrl`, `clientId`, `clientSecret`, and `partnerId` with the sandbox values supplied to your organization.\n    \n4. Send a non-destructive request or an agreed test workflow to validate connectivity.\n    \n5. Switch to **Partner API Production** only after sandbox validation and production approval.\n    \n6. Populate the Production environment with production-specific values; do not reuse sandbox credentials or URLs.\n    \n7. Confirm the active environment before every write or delete operation.\n    \n\n## Resource model\n\n- A partner owns customer records through its partner scope.\n    \n- A customer can have one or more pets.\n    \n- A pet can have multiple point-in-time profile and nutrition snapshots.\n    \n- Veterinarian records can be associated with customers and pets.\n    \n- `externalId` is the stable customer identifier supplied by your system and is the customer identifier used by all customer-scoped endpoints.\n    \n- Customers are not addressed by a separate JustFoodForDogs customer ID.\n    \n- `petId` is the JustFoodForDogs pet identifier returned by pet creation and listing operations.\n    \n\n## Typical workflow\n\nFor a single-call onboarding flow, use **Workflows → Pet Registration** to create or match the customer, always create a new pet, and optionally record an initial snapshot.\n\nFor resource-by-resource integration:\n\n1. Create, read, or update a customer using the partner-owned `externalId`.\n    \n2. Create or list pets using that customer's `externalId`.\n    \n3. Read or update a pet using its `petId`.\n    \n4. Create pet snapshots as profile or feeding information changes.\n    \n5. List snapshots to retrieve the pet's history.\n    \n6. Create or update veterinarian records and associate them with the appropriate customer or pets.\n    \n\n## Data format and request safety\n\n- Request bodies are JSON.\n    \n- Replace all example personal data before sending a request.\n    \n- Keep `externalId` stable and unique within your partner account.\n    \n- External customer IDs must be URL-safe because they are used in request paths.\n    \n- The collection generates a new `X-Request-ID` for every send. Retain it when contacting support.\n    \n- Confirm the active environment and resource IDs before update or delete operations.\n    \n- Never place sandbox credentials in the Production environment or production credentials in the Sandbox environment.\n    \n\n## Responses and errors\n\nThis collection does not yet include saved response examples or a formal error schema. Inspect each live response's HTTP status and JSON body. When escalating an issue, include the request method and path, timestamp, selected environment, HTTP status, and `X-Request-ID`; never include `clientSecret`.\n\n## Support\n\nUse the onboarding or support channel provided by your JustFoodForDogs integration contact.","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"30939530","team":5781466,"collectionId":"ef6e6112-53a4-4510-a8bc-080a88f180a2","publishedId":"2sBY4VLxcr","public":true,"publicUrl":"https://api-documentation.justfoodfordogs.com","privateUrl":"https://go.postman.co/documentation/30939530-ef6e6112-53a4-4510-a8bc-080a88f180a2","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"documentationLayout":"classic-double-column","customisation":{"metaTags":[{"name":"description","value":""},{"name":"title","value":""}],"appearance":{"default":"light","themes":[{"name":"dark","logo":null,"colors":{"top-bar":"212121","right-sidebar":"303030","highlight":"FF6C37"}},{"name":"light","logo":null,"colors":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"}}]}},"version":"8.12.8","publishDate":"2026-10-05T21:31:13.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"","description":""},"logos":{"logoLight":null,"logoDark":null}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/a9718df03f3fb316f1277a4de38da96cf95aac1927acaaa4c2b959c801e13a0a","favicon":"https://postman-image-service.postman.com/api/cloudinary-proxy/postman/image/upload/v1786240625/team/6358cabeee070d57b77d42cc8023ff23"},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://api-documentation.justfoodfordogs.com/view/metadata/2sBY4VLxcr"}