Paws Source API
Build integrations with the Paws Source platform. Create, read, update, and manage pet profiles, veterinary bookings, product orders, and grooming services through our RESTful API.
v2.x. Legacy v1 endpoints are deprecated and will sunset on Dec 31, 2025. Migration guides are available in the Changelog.
Overview
The Paws Source API follows REST principles and uses standard HTTP methods, status codes, and authentication patterns. All requests and responses are formatted as JSON. We support CORS for web applications and provide Postman collections for rapid testing.
Endpoints are grouped by resource and follow predictable naming conventions. Pagination is cursor-based for performance, and filtering/sorting is available on list endpoints.
Base URL & Versioning
All API requests must be made to the base URL above. API versioning is enforced via the URL path. You may also specify the version using the Api-Version header as a fallback.
Authentication
Access to the API is secured using Bearer tokens. Generate your API keys from the Developer Dashboard. Keep your secrets secure and never expose them in client-side code.
curl -X GET https://api.pawssource.com/v2/pets \n -H "Authorization: Bearer pk_live_58f7a2b9c3d1e4f6" \n -H "Content-Type: application/json"
const response = await fetch('https://api.pawssource.com/v2/pets', {
headers: {
'Authorization': 'Bearer pk_live_58f7a2b9c3d1e4f6',
'Content-Type': 'application/json'
}
});
const pets = await response.json();
import requests
headers = {"Authorization": "Bearer pk_live_58f7a2b9c3d1e4f6"}
response = requests.get("https://api.pawssource.com/v2/pets", headers=headers)
pets = response.json()
Rate Limits
To ensure platform stability, API requests are rate-limited based on your subscription tier. Limits are applied per API key and reset on a rolling 1-minute window.
| Plan | Requests/Minute | Burst Limit |
|---|---|---|
| Free / Developer | 60 | 10 |
| Pro | 300 | 50 |
| Enterprise | Custom | Custom |
When you exceed the limit, the API returns a 429 Too Many Requests status code. The Retry-After header indicates how many seconds to wait before retrying.
Pets Resource
Manage pet profiles, medical records, and identification tags.
Retrieve a paginated list of pets associated with the authenticated account.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
| species | string | Filter by species (e.g., canine, feline, avian) |
| status | string | Filter by health status: active, inactive, deceased |
| cursor | string | Cursor for pagination. Omit for first page. |
| limit | integer | Number of records per page (1-100). Default: 20. |
{
"data": [
{
"id": "pet_8x2k9m4p",
"name": "Buster",
"species": "canine",
"breed": "Golden Retriever",
"age_years": 4,
"weight_kg": 32.5,
"status": "active",
"created_at": "2023-08-12T14:22:00Z"
}
],
"meta": {
"next_cursor": "eyJpZCI6InBldF84eDJrOW00cCJ9",
"has_more": true
}
}
Create a new pet profile.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | Yes | Pet's primary name |
| species | string | Yes | Species identifier |
| breed | string | No | Breed or mixed type |
| date_of_birth | string | No | ISO 8601 format |
| medical_notes | string | No | Initial health conditions or allergies |
Veterinary Appointments
Schedule a veterinary consultation or routine checkup.
{
"pet_id": "pet_8x2k9m4p",
"vet_id": "vet_dr_sarah_m",
"appointment_type": "routine_checkup",
"requested_date": "2025-03-15",
"preferred_time_slot": "morning",
"notes": "Annual vaccination due"
}
Products & Orders
Search our curated catalog, check inventory, and place automated orders for nutrition, toys, and wellness supplies.
Search and filter product catalog. Supports keyword, category, and dietary preference filters.
Create a new product order. Requires valid shipping and payment identifiers.
Grooming Services
Update or reschedule an existing grooming appointment. Supports package upgrades and add-on services.
Error Handling
Paws Source uses conventional HTTP status codes to indicate success or failure. Codes in the 2xx range indicate success. 4xx errors indicate client-side issues (invalid parameters, authentication failures). 5xx errors indicate server-side issues.
| Code | Description |
|---|---|
| 400 | Bad Request – Malformed syntax or missing required fields |
| 401 | Unauthorized – Invalid or expired API key |
| 403 | Forbidden – Insufficient permissions for the requested action |
| 404 | Not Found – Resource does not exist |
| 422 | Unprocessable Entity – Validation failure (see errors array) |
| 429 | Too Many Requests – Rate limit exceeded |
| 500 | Internal Server Error – Something went wrong on our end |
{
"error": {
"code": "validation_failed",
"message": "The request contains invalid parameters.",
"details": [
{
"field": "date_of_birth",
"issue": "must_be_valid_iso_date",
"message": "Invalid date format provided."
}
]
}
}
Webhooks
Receive real-time notifications for key events. Configure webhook endpoints in your dashboard to listen for:
pet.created– New pet profile addedappointment.confirmed– Vet booking verifiedorder.shipped– Package dispatched with trackinggrooming.completed– Service finished with report
All webhook payloads include a X-Paws-Signature header for HMAC-SHA256 verification.
SDKs & Tools
Official libraries are available to accelerate development:
- 🐍 Python:
pip install pawssource - 📦 Node.js:
npm install @pawssource/sdk - ☕ Java: Available on Maven Central
- 🦀 Rust: Crates.io
pawssource-rs
api-support@pawssource.com.