Skip to main content

Official Python SDK for the Montjoy Places API.

Project description

MontjoyPlaces Python SDK

Official Python SDK for the Montjoy Places API.

Installation

Install from a package index:

pip install MontjoyPlaces

Install from source:

pip install .

Authentication

Create a client with your Montjoy Places API key:

from montjoy_places import MontjoyPlaces

client = MontjoyPlaces("your-api-key")

The SDK sends the API key using the X-API-Key header.

Quick Start

from montjoy_places import MontjoyPlaces, SearchPlacesParams

client = MontjoyPlaces("your-api-key")

try:
    who_am_i = client.who_am_i()
    print("tenant=", who_am_i.tenantId)

    search = client.search_places(
        SearchPlacesParams(q="coffee near Boston MA", limit=3)
    )
    print("results=", search.count)
    print(search.rows)
finally:
    client.close()

Client Construction

The SDK supports the default API base URL:

from montjoy_places import MontjoyPlaces

client = MontjoyPlaces("your-api-key")

You can also point at a different environment:

client = MontjoyPlaces(
    api_key="your-api-key",
    base_url="https://api.montjoyplaces.com",
)

Common Examples

Check API Identity

who_am_i = client.who_am_i()
print(who_am_i)

List Groups

from montjoy_places import ListGroupsParams

groups = client.list_groups(ListGroupsParams(limit=10))

Create a Group

from montjoy_places import GroupCreateRequest

created_group = client.create_group(GroupCreateRequest(name="Favorites"))

Search Places

from montjoy_places import SearchPlacesParams

search = client.search_places(
    SearchPlacesParams(
        q="pizza near New York NY",
        limit=5,
        radiusMeters=5000,
    )
)

Create a Custom Place

from montjoy_places import CustomPlaceCreateRequest

created = client.create_custom_place(
    CustomPlaceCreateRequest(
        groupId="group_123",
        name="My Custom Place",
        latitude=42.3601,
        longitude=-71.0589,
        address="1 Beacon St",
        locality="Boston",
        region="MA",
        postcode="02108",
        country="US",
        website="https://example.com",
        tags=["favorite", "team"],
        meta={"source": "python-sdk"},
    )
)

Update a Custom Place

from montjoy_places import CustomPlaceUpdateRequest

updated = client.update_custom_place(
    "custom_place_id",
    CustomPlaceUpdateRequest(
        name="Updated Place Name",
        website="https://example.com/updated",
    ),
)

Hide or Unhide a Custom Place

from montjoy_places import CustomPlaceHideRequest

client.hide_custom_place("custom_place_id", CustomPlaceHideRequest(hidden=True))
client.hide_custom_place("custom_place_id", CustomPlaceHideRequest(hidden=False))

Delete a Custom Place

deleted = client.delete_custom_place("custom_place_id")

Override a Place

from montjoy_places import OverrideRequest

response = client.override_place(
    "fsq_place_id",
    OverrideRequest(
        groupId="group_123",
        name="My Overridden Name",
        hide=False,
    ),
)

Lookup US Cities

from montjoy_places import LookupNearestUsCitiesParams, SearchUsCitiesParams

nearest = client.lookup_nearest_us_cities(
    LookupNearestUsCitiesParams(lat=42.3601, lon=-71.0589, limit=5)
)

matches = client.search_us_cities(
    SearchUsCitiesParams(q="Boston", state="MA", limit=5)
)

zip_lookup = client.lookup_us_zipcode("02108")

Lookup Categories

from montjoy_places import GetCategoryChildrenParams, SearchCategoriesParams

categories = client.search_categories(
    SearchCategoriesParams(q="coffee", limit=10)
)

category = client.get_category("13032")

children = client.get_category_children(
    "13032",
    GetCategoryChildrenParams(limit=20),
)

Supported Operations

The SDK currently includes methods for:

  • API identity: who_am_i
  • Groups: list_groups, create_group, update_group, delete_group
  • Custom places: list_custom_places, create_custom_place, get_custom_place, update_custom_place, delete_custom_place, hide_custom_place
  • Place overrides: override_place
  • US city lookup: lookup_nearest_us_cities, search_us_cities, lookup_us_zipcode
  • Category lookup: search_categories, get_category, get_category_children
  • Search: search_places

Error Handling

API failures raise MontjoyPlacesError.

from montjoy_places import MontjoyPlaces, MontjoyPlacesError

try:
    client = MontjoyPlaces("your-api-key")
    client.who_am_i()
except MontjoyPlacesError as exc:
    print("status:", exc.status)
    print("message:", exc)
    print("body:", exc.body)

Samples

Sample programs are included in samples/:

  • basic.py shows authentication, group listing, and search
  • integration.py exercises create, update, hide, list, and cleanup flows for groups and custom places

Run a sample with an API key set in the environment:

PYTHONPATH=src MONTJOY_PLACES_API_KEY=your-api-key python3 samples/basic.py
PYTHONPATH=src MONTJOY_PLACES_API_KEY=your-api-key python3 samples/integration.py

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

montjoyplaces-1.0.2.tar.gz (11.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

montjoyplaces-1.0.2-py3-none-any.whl (10.0 kB view details)

Uploaded Python 3

File details

Details for the file montjoyplaces-1.0.2.tar.gz.

File metadata

  • Download URL: montjoyplaces-1.0.2.tar.gz
  • Upload date:
  • Size: 11.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for montjoyplaces-1.0.2.tar.gz
Algorithm Hash digest
SHA256 a7ad6f2d57c01f0147b7dfdd8e80f713728a329f8edd523a34265dbaf5f22fea
MD5 ed25885373081feebfbdf60d311d52ad
BLAKE2b-256 f2f5384c48b362d1958181a2cc8fc16191336c0bea2076df4aff94d5574f6a2a

See more details on using hashes here.

File details

Details for the file montjoyplaces-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: montjoyplaces-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 10.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for montjoyplaces-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 931195deddc271e0bd3699e0ee1f456e0813bd940274e767b336b1cdd8c5e927
MD5 f81ddd8885ca2360dbcea19892d99fde
BLAKE2b-256 9825c0cb9c46fd91ec038504bd124f36e8a362f976349ab3a9f07b43546342d0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page