Skip to main content

luranta

Official Python client for the Luranta API. Search current jobs and companies from a trusted server.

API keys belong in server-side secrets. Do not put them in browsers, mobile apps, or other public clients.

Requires Python 3.10–3.14.

Install

pip install luranta

Quick start

Create a key in Settings, then:

import os
from luranta import Client

client = Client(api_key=os.environ["LURANTA_API_KEY"])

page = client.jobs.list({
    "roles": ["software-engineering"],
    "locations": ["London"],
    "experience": {"min": 3, "max": 8},
    "work_arrangements": ["hybrid", "remote"],
})

for job in page.data:
    print(job.title, job.company.name)

Jobs

List returns one page of summaries. Iterate walks every page. Retrieve loads a full listing.

for job in client.jobs.iterate({
    "roles": ["software-engineering"],
    "locations": ["London"],
}):
    print(job.title)

listing = client.jobs.retrieve("018f1f8a-4d6e-7a6b-8a2b-7f3e8d1c9a10")
print(listing.description_markdown)

Location filters accept place names, the same way search works on luranta.com.

Companies

companies = client.companies.list({
    "query": "Luranta",
    "countries": ["GB"],
})

jobs and companies both expose list, retrieve, iterate, and with_raw_response.

raw = client.jobs.with_raw_response.list({
    "roles": ["software-engineering"],
})
print(raw.request_id, raw.cost_usd)

Errors

Failed requests raise LurantaProblemError. Network failures without a usable HTTP response raise TransportError.

from luranta import Client, LurantaProblemError

try:
    client.jobs.list({"locations": ["Atlantis"]})
except LurantaProblemError as error:
    print(error.status, error.request_id)
    for issue in error.errors:
        print(issue.code, issue.message, issue.pointer)

Webhooks

import os
from luranta import Client

client = Client(api_key=os.environ["LURANTA_API_KEY"])

def handle(raw_body: bytes, headers: dict[str, str]) -> None:
    event = client.webhooks.construct_event(
        raw_body,
        headers,
        os.environ["LURANTA_WEBHOOK_SECRET"],
    )
    if event["event_type"] == "signals.monitor.delivery":
        return
    if event["event_type"] == "integration.test":
        return

Documentation

MIT

Metadata

Release files for luranta 0.2.1

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

Source distribution (sdist)

Source distribution for luranta 0.2.1
File Size Uploaded
luranta-0.2.1.tar.gz 21.4 kB Details

Built distribution (wheel)

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

Total release size: 75.7 kB

Release files / luranta-0.2.1.tar.gz

Download URL luranta-0.2.1.tar.gz
Size 21.4 kB
Tags Source
SHA-256 checksum
How to use checksums
1fbb044fb460ef22027e37335742ef408053ee2c7720f6fce0f3247fc93f54b3
BLAKE2b-256 checksum
How to use checksums
2ec9ecc3e5ba309544dd1a1e3374f59cf09f30c887126da25cc78f4cb752140e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 7, 2026.

Transparency log

Release files / luranta-0.2.1-py3-none-any.whl

Download URL luranta-0.2.1-py3-none-any.whl
Size 54.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cdb6512288d8157a871b538684b8415238f17ca7ed74583bc83e0907857746dd
BLAKE2b-256 checksum
How to use checksums
dde1eac4d802efeb119a7d7db82e28e74df13b56b4a0ff5f340f40590845b65d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 7, 2026.

Transparency log

Release history Release notifications | RSS feed

0.2.2

2 release files

This release

0.2.1 This release

2 release files

0.2.0

2 release files

0.1.0

2 release files

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