libraries icon indicating copy to clipboard operation
libraries copied to clipboard

Documentation for IPinfo official client libraries and integrations

IPinfo.io Client Libraries

This repo tracks our official client libraries and integrations.

Language Libraries

Official libraries for common programming languages, like PHP, Python etc.

See GUIDELINES for implementation guidelines.

Language Status Link Package Manager Published Link
Javascript (Node) Released ipinfo/node npmjs node-ipinfo
Java Released ipinfo/java Maven Central ipinfo-api
Python Released ipinfo/python PyPI ipinfo
C# Released ipinfo/csharp Nuget IpInfo
PHP Released ipinfo/php Composer ipinfo/ipinfo
Ruby Released ipinfo/ruby Ruby Gems IPinfo
Go Released ipinfo/go GitHub ipinfo/go
R Proposed CRAN
Perl Released ipinfo/perl CPAN Geo-IPinfo
Erlang Released ipinfo/erlang hex.pm ipinfo
Rust Released ipinfo/rust crates.io ipinfo

Framework Libraries

Official libraries for common frameworks. These libraries should use the official lanaguge library as a dependency, so for example the Django library should use the Python library.

In the framework libraries we can assume more about the developer's use case, and we probably have access to more information, such as a HTTP request object. We can therefore implement additional functionality that doesn't make sense in the core language library. This includes bot filtering (not sending requests to our API if the user agent belongs to a "bot").

The framework libraries should make it as simple as possible to use our API. For example, ideally only a few lines of code would be required to get IPinfo data for everyone accessing your Ruby site.

Framework Status Link Published Links
Express (NodeJS) Released ipinfo/node-express ipinfo-express
Spring (Java) Released ipinfo/spring ipinfo-spring
Laravel (PHP) Released ipinfo/laravel ipinfo/ipinfolaravel
Django (Python) Released ipinfo/django ipinfo-django
Rails (Ruby) Released ipinfo/rails ipinfo-rails

README

For many developers our libraries will be their first contact with our service - they'll never have been to our website, or read anything else about us. Therefore it's important to do a good job of explaining the service to them in the library documentation. See our standard HEADER and FOOTER that should be added to every README.

The libraries are also a great opportunity for new developers to discover us, so we should make sure we include relevant search terms in our description and summary text, and keywords if applicable.