PawFinder paw image

PawFinder API Overview

Introduction

PawFinder is a REST API connecting adoptable pets with potential families across the Dallas-Fort Worth area. Real-time data from hundreds of shelters makes it easier for people to find their perfect companion and for shelters to reach qualified adopters. This API enables developers to:

Developer journey

PawFinder is an educational project using json-server and minimal authentication. The diagram below shows how client apps might fit into a production environment PawFinder ecosystem, visualizing the flow from initial concept to real-world impact.

The diagram illustrates three key perspectives:

  1. Developer Workflow is in purple and outlines the integration steps developers take: creating an API token for write operations, building apps across any platform, querying the PawFinder API for pet and shelter data, and displaying results to end users.
  2. PawFinder System is in mauve and shows the data developers can get through PawFinder, which fetches standardized pet information and shelter details from dedicated databases.
  3. End Users is in olive and demonstrates the impact: apps built with PawFinder serve adopters searching for companions and shelters managing listings, bridging the gap between both audiences through the API.
graph LR
    subgraph Developer["Developer Workflow"]
        Auth["Obtain API Token<br/>(if writing data)"]
        Build["Build Application<br/>(Web, Mobile, Desktop)"]
        Query["Query PawFinder API<br/>(Pets, Shelters, Status)"]
        Display["Display Results<br/>(Adoptable Pets,<br/>Shelter Info)"]
    end
    
    subgraph System["PawFinder System"]
        API["PawFinder REST API"]
        PetData["Pet Database<br/>(Species, Breed,<br/>Age, Location)"]
        ShelterData["Shelter Database<br/>(Contact, Hours,<br/>Adoption Details)"]
    end
    
    subgraph Users["End Users"]
        Adopters["Adopters<br/>(Finding Pets)"]
        Shelters["Shelters<br/>(Managing Listings)"]
    end
    
    Auth -->|Integration| Build
    Build -->|HTTP Requests| Query
    Query -->|JSON Responses| API
    API -->|Retrieves| PetData
    API -->|Retrieves| ShelterData
    API -->|Displays| Display
    Display -->|Accessible to| Adopters
    Display -->|Accessible to| Shelters
    
    style Auth fill:#c5d3a6,stroke:#333,stroke-width:2px,color:#000,font-family:Helvetica
    style Build fill:#9989c4,stroke:#333,stroke-width:2px,color:#fff,font-family:Helvetica
    style Query fill:#88b2c4,stroke:#333,stroke-width:2px,color:#fff,font-family:Helvetica
    style Display fill:#88b2c4,stroke:#333,stroke-width:2px,color:#fff,font-family:Helvetica
    style API fill:#cc848a,stroke:#333,stroke-width:2px,color:#000,font-family:Helvetica
    style PetData fill:#add8e6,stroke:#333,stroke-width:2px,color:#000,font-family:Helvetica
    style ShelterData fill:#add8e6,stroke:#333,stroke-width:2px,color:#000,font-family:Helvetica
    style Adopters fill:#9fb56a,stroke:#333,stroke-width:2px,color:#000,font-family:Helvetica
    style Shelters fill:#9fb56a,stroke:#333,stroke-width:2px,color:#000,font-family:Helvetica

Key concepts

Pets

Each pet in the PawFinder system has a unique identifier and includes standardized information such as species, breed, age_months, size, temperament, medical history, and current location. Pets transition through adoption statuses tracked by the API.

Shelters

Organizations register as shelters to list pets for adoption. Each shelter maintains a profile with contact information, operating hours, and adoption details. Shelters can update pet listings and adoption statuses through the API.

Adoption status

Pets progress through defined status states:

Search filters

Filter pet profiles using any combination of these parameters:

Development use cases

For adopters

For shelters

For communities

Next steps