API reference

    Web searches

    Find people no licensing board covers (groomers, receptionists, kennel staff, practice managers) near a ZIP code.


    POST /v2/web-searches

    The board record only holds licensed people. A practice also hires groomers, front desk and client service staff, kennel and animal care attendants, and practice managers. A web search finds them on their own public LinkedIn profiles.

    A person is listed only when:

    • The page is one person's own profile. Businesses, company pages, lists, posts and job ads are never listed.
    • Their own job title or headline shows the role, in animal care. "Dog Groomer at PetSmart" is a groomer; "Master Groomer at a men's grooming lounge" is a barber and is left out; "Receptionist at Smile Dental" is not a veterinary receptionist.
    • The location on their profile is within the radius. A city ("Tempe, Arizona") or a metro area ("Greater Phoenix Area") is checked against the ZIP code's centre.

    People with veterinary experience (an animal hospital, a clinic or a veterinary title anywhere in their history) come first, then people doing the job now, then the nearest.

    This is the derived layer: reported from public profiles, not checked against any board. For licensed veterinarians, technicians and assistants, use professionals first.

    bash
    curl https://api.zuse.live/v2/web-searches \
      -H "Authorization: Bearer $ZUSE_KEY" \
      -H "Content-Type: application/json" \
      -d '{ "role": "groomer", "postal_code": "85281", "radius_miles": 25 }'
    FieldTypeDescription
    rolestringRequired. The role as people write it: groomer, receptionist, kennel attendant, practice manager, office manager, client service, animal care, vet tech, veterinarian.
    postal_codestringRequired. A US ZIP code: the centre of the search.
    radius_milesinteger1 to 100. 25 if omitted.
    include_contactsbooleanAlso add up to five people from People Data Labs, whose records hold email and phone. Each is charged as a Contact. false if omitted.

    Response

    json
    {
      "data": {
        "role": "groomer",
        "place": "Tempe, AZ 85281",
        "center": { "latitude": 33.4148, "longitude": -111.9093 },
        "radius_miles": 25,
        "people": [
          {
            "name": "Andrea Laired",
            "title": "Owner and Master Groomer",
            "employer": "Green Bulldog",
            "url": "https://www.linkedin.com/in/andrea-laired-51393371",
            "headline": "Owner and Master Groomer at Green Bulldog",
            "city": "Tempe",
            "state": "AZ",
            "postal_code": null,
            "source": "web",
            "pdl_id": null,
            "has_contact": false
          }
        ],
        "pdl_records": 0,
        "layer": "derived",
        "error": null
      },
      "billing": { "operation": "web", "cost_usd": 0.2, "credit_remaining_usd": 9.8 }
    }
    FieldDescription
    people[].urlThe person's public profile.
    people[].cityThe place on their profile. A metro area reads as one: Greater Phoenix Area.
    people[].sourceweb for a public profile, pdl for a person added from People Data Labs.
    people[].has_contacttrue when your team already holds this person's People Data Labs record: a Contact for them is then free.
    pdl_recordsHow many People Data Labs records this search bought.

    To get someone's email and phone, send their name, place and url as linkedin_url to POST /v2/contacts.

    Billing

    $0.50 when at least one person is found; free when nobody is. With include_contacts, each person added from People Data Labs is also charged as one Contact ($0.60), and their details are kept for your team. Send an Idempotency-Key so a retry is not charged again. Up to 10 a minute and 100 a day. See Pricing and metering.

    Also in

    • MCP: the find_people_on_web tool. See MCP server.
    • Slack: @Zuse nearby 85281 groomers. See Zuse in Slack.
    • Workspace: People, then a role such as Groomers.