Features: - Complete coverage for the pipl.com API - Client is completely configurable - Using heimdall http client with exponential backoff & more - Minimum criteria detection before submitting a pipl query - Search by pipl pointer reference - Search for a single person via any of the following: - Full Name, Full Street Address, Email, Phone, Username or UserID or URL - Search all possible people - Thumbnail configuration for person.Images - Test and example coverage for all methods

Programming language: Go
License: MIT License
Tags: API     Go Tools     Go     Golang     Pipl    
Latest version: v0.3.3

go-pipl alternatives and similar packages

Based on the "Go Tools" category.
Alternatively, view go-pipl alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of go-pipl or a related project?

Add another 'Go Tools' Package



The unofficial golang wrapper for the pipl.com API.

Release Build Status Report codecov Go Sponsor Donate

Table of Contents


go-pipl requires a supported release of Go. ```shell script go get -u github.com/mrz1836/go-pipl


## Documentation
View the generated [documentation](https://pkg.go.dev/github.com/mrz1836/go-pipl?tab=doc)


### Features
- Complete coverage for the [pipl.com API](https://pipl.com/api/)
- [Client](client.go) is completely configurable
- Using [heimdall http client](https://github.com/gojek/heimdall) with exponential backoff & more
- Minimum criteria detection before submitting a pipl query
- Search by pipl pointer reference
- Search for a single person via any of the following:
    - Full Name
    - Full Street Address
    - Email
    - Phone
    - Username or UserID or URL
- Search **all possible people**
    - Returns the original full person record
    - Searches all possible persons and gets full details
    - Combines all persons into one single response
- Thumbnail configuration setting for `person.Images`
    - Adds `image.ThumbnailURL` with the complete url for a live thumbnail
- Test and example coverage for all methods

<summary><strong><code>Library Deployment</code></strong></summary>

[goreleaser](https://github.com/goreleaser/goreleaser) for easy binary or library deployment to Github and can be installed via: `brew install goreleaser`.

The [.goreleaser.yml](.goreleaser.yml) file is used to configure [goreleaser](https://github.com/goreleaser/goreleaser).

Use `make release-snap` to create a snapshot version of the release, and finally `make release` to ship to production.

<summary><strong><code>Makefile Commands</code></strong></summary>

View all `makefile` commands
```shell script
make help

List of all current commands:

all                    Runs lint, test-short and vet
clean                  Remove previous builds and any test cache data
clean-mods             Remove all the Go mod cache
coverage               Shows the test coverage
godocs                 Sync the latest tag with GoDocs
help                   Show this help message
install                Install the application
install-go             Install the application (Using Native Go)
lint                   Run the golangci-lint application (install if not found)
release                Full production release (creates release in Github)
release                Runs common.release then runs godocs
release-snap           Test the full release (build binaries)
release-test           Full production test release (everything except deploy)
replace-version        Replaces the version in HTML/JS (pre-deploy)
tag                    Generate a new tag and push (tag version=0.0.0)
tag-remove             Remove a tag if found (tag-remove version=0.0.0)
tag-update             Update an existing tag to current commit (tag-update version=0.0.0)
test                   Runs vet, lint and ALL tests
test-short             Runs vet, lint and tests (excludes integration tests)
test-travis            Runs all tests via Travis (also exports coverage)
test-travis-short      Runs unit tests via Travis (also exports coverage)
uninstall              Uninstall the application (and remove files)
update-linter          Update the golangci-lint package (macOS only)
vet                    Run the Go vet application

Examples & Tests

All unit tests and [examples](pipl_test.go) run via Travis CI and uses Go version 1.15.x. View the [deployment configuration file](.travis.yml).

  • [helper examples & tests](helpers_test.go)
  • [pipl examples & tests](pipl_test.go)
  • [response tests](response_test.go)

Run all tests (including integration tests) ```shell script make test

Run tests (excluding integration tests)
```shell script
make test-short


Run the Go [benchmarks](pipl_test.go): ```shell script make bench


## Code Standards
Read more about this Go project's [code standards](CODE_STANDARDS.md).


## Usage
- View the [pipl examples & benchmarks](pipl_test.go)
- View the [helper examples & benchmarks](helpers_test.go)
- View the [response tests](response_test.go)

Basic implementation:
package main

import (


func main() {

    // Create a client with your api key
    client, _ := pipl.NewClient("your-api-key", nil)

    // Create a new person for searching
    person := pipl.NewPerson()
    _ = person.AddUsername("jeffbezos", "twitter")

    // Submit the search
    response, _ := client.Search(person)

    // Use the pipl response
    // Output: Jeff Preston Bezos




View the [contributing guidelines](CONTRIBUTING.md) and follow the [code of conduct](CODE_OF_CONDUCT.md).

How can I help?

All kinds of contributions are welcome :raised_hands:! The most basic way to show your support is to star :star2: the project, or to raise issues :speech_balloon:. You can also support this project by becoming a sponsor on GitHub :clap: or by making a bitcoin donation to ensure this journey continues indefinitely! :rocket:


This project was based off the original code go pipl project by xpcmdshell



*Note that all licence references and agreements mentioned in the go-pipl README section above are relevant to that project's source code only.