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.2

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.2
File Size Uploaded
luranta-0.2.2.tar.gz 21.4 kB Details

Built distribution (wheel)

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

Total release size: 75.7 kB

Release files / luranta-0.2.2.tar.gz

Download URL luranta-0.2.2.tar.gz
Size 21.4 kB
Tags Source
SHA-256 checksum
How to use checksums
b3b34b56abbae22d4002f9e6bde8567796b982e83c8c95c68998fbacfa28da63
BLAKE2b-256 checksum
How to use checksums
ff56147ebace92bff5619edff6ada41cfd354ae2646255bebb7fa338b1d53e39
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.2-py3-none-any.whl

Download URL luranta-0.2.2-py3-none-any.whl
Size 54.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
63d757fdbaee85c896ae05bc99485daaec2cb337f51f7777f43c809116ce3124
BLAKE2b-256 checksum
How to use checksums
ff3ef91dfa12d04cd6a482bd8a9342b1c9f2f9091dac4a3e5140e2263705ba8e
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

This release

0.2.2 This release

2 release files

0.2.1

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