Skip to main content

Mapricot for Python

The official Python client for the Mapricot API: address and place search, reverse geocoding, nearby places, routing, and IP geolocation, with 250,000 free requests every month.

pip install mapricot

It needs Python 3.11 or later and has no dependencies.

Quick start

Create a server key in the dashboard and pass it to the client. Keep it out of your source code, for example by reading it from an environment variable as here.

import os

from mapricot import Mapricot

client = Mapricot(os.environ["MAPRICOT_KEY"])

data = client.search("128 SW 3rd Ave, Portland", limit=1)
place = data["results"][0]
print(place["label"], place["lat"], place["lon"])

Methods

Each method returns the API's JSON as a typed dict, with the same field names as the API reference.

Method Endpoint
client.search(q, focus=, country=, limit=, lang=) GET /geocoding/v1/search
client.autocomplete(q, focus=, country=, limit=, lang=) GET /geocoding/v1/autocomplete
client.reverse(lat, lon, limit=, lang=) GET /geocoding/v1/reverse
client.nearby(lat, lon, category=, radius=, limit=, lang=) GET /places/v1/nearby
client.place(id, lang=) GET /places/v1/{id}
client.route(waypoints, mode=, geometries=) POST /routing/v1/route
client.ip(address) GET /ip-geolocation/v1/{ip}
client.account() GET /account, which checks a key and is never billed

focus and each waypoint are {"lat": …, "lon": …}. country and category take a list or a comma-separated string.

nearby = client.nearby(45.52, -122.68, category=["food:coffee_shop"], radius=1000)
route = client.route([{"lat": 45.5189, "lon": -122.6793}, {"lat": 45.5214, "lon": -122.6828}], mode="walk")
print(route["routes"][0]["durationSeconds"])

A route's path comes as an encoded polyline with five decimal places, which polyline decoders assume. Pass geometries="geojson" to get it as a GeoJSON LineString in geometry instead, which maps draw without decoding, or geometries="polyline6" for six decimal places.

If your app shows results, show the credits in each response's attribution.

Errors and retries

An error response raises MapricotError, with the HTTP status, the API's error code, a message, and the request_id:

from mapricot import MapricotError

try:
    client.search("")
except MapricotError as error:
    print(error.status, error.code, error.message)  # 400 invalid_request The service rejected the request.

The client retries 503 responses and 429 concurrency_exceeded, up to twice, waiting longer each time. Errors aren't billed. Set max_retries= and timeout= (seconds) on Mapricot(...) to change this. The API reference lists every status.

Metadata

Release files for mapricot 0.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mapricot 0.5.0
File Size Uploaded Provenance
mapricot-0.5.0.tar.gz 8.0 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for mapricot 0.5.0
File Interpreter ABI Platform
mapricot-0.5.0-py3-none-any.whl Python 3 none any Details

Total release size: 14.1 kB

Release files / mapricot-0.5.0.tar.gz

Download URL mapricot-0.5.0.tar.gz
Size 8.0 kB
Tags Source
SHA-256 checksum
How to use checksums
9b99d96eca2c7bae3f22e36bf5cca3c8d2393e659624f2d60d20fd968e566bee
BLAKE2b-256 checksum
How to use checksums
a80973627bc52123cb5ceeeaadbeef086cf5a38d22632231b5b4a1cfa2cc9881
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.

Transparency log

Release files / mapricot-0.5.0-py3-none-any.whl

Download URL mapricot-0.5.0-py3-none-any.whl
Size 6.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e63fc637a58bb6accea01fd40740ab598b23b85fb48c7deb730221baf324002b
BLAKE2b-256 checksum
How to use checksums
2951f6ef5a43913d87bb18b9a915ead8ae159f86b7d66228f549f5ad894480ec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.

Transparency log

Security for mapricot 0.5.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for mapricot-0.5.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page