Skip to main content

manatal

The easiest way to use the Manatal Open API from Python.

Manatal is an AI-powered ATS built for modern recruiting teams. Use this SDK to connect Manatal with your own tools — sync candidates and jobs, automate workflows, and integrate one of the best ATS platforms into your stack — with auth, pagination, and retries handled for you.

Note: Community-maintained package. Not affiliated with or officially supported by Manatal.

Why use this package?

Whether you are extending an AI-powered ATS workflow or connecting Manatal to HRIS/payroll systems, calling the Open API raw means handling tokens, pagination, and retries yourself. manatal wraps that into a small, predictable client:

  • One line to authenticate
  • Simple resource methods (candidates, jobs, matches, …)
  • Automatic pagination
  • Automatic retries on temporary errors
  • Clear Python exceptions for common API errors

Installation

pip install manatal

Requires Python 3.9+.

How to get an Open API token

Open API access depends on your Manatal plan. Follow the official guide: Manatal Open API.

1. Enable Open API

  1. Sign in to Manatal.
  2. Go to Administration → Features → Open API, or open
    Open API settings.
  3. If it is not enabled yet, click Contact our support to request access.

Open API is available by default on the Enterprise Plus plan. See the support article for details.

2. Generate a token

  1. Open the same Open API settings page.
  2. Click Generate new token.
  3. Copy the token and store it securely (you will use it as api_key).

You can also copy or delete existing tokens from that page.

3. Use the token in Python

from manatal import Manatal

client = Manatal(api_key="YOUR_OPEN_API_TOKEN")

Or set an environment variable:

export MANATAL_API_KEY="YOUR_OPEN_API_TOKEN"
from manatal import Manatal

client = Manatal()  # reads MANATAL_API_KEY

Quick start

from manatal import Manatal

client = Manatal(api_key="YOUR_OPEN_API_TOKEN")

# Create a candidate
candidate = client.candidates.create(
    full_name="Jane Doe",
    email="jane@example.com",
)
print(candidate.id)

# List jobs (automatically walks every page)
for job in client.jobs.list():
    print(job.id, job.position_name)

# Fetch one record
job = client.jobs.retrieve(123)
print(job.id)

API responses support both styles:

job = client.jobs.create(organization=2208123, position_name="pyp")
print(job.id)          # recommended
print(job["id"])       # still works
print(job.position_name)

What you can access

Resource Example
Candidates client.candidates.list(email="jane@example.com")
Jobs client.jobs.create(organization=1, position_name="Engineer")
Organizations client.organizations.list()
Matches client.matches.create(candidate=123, job=456)
Contacts client.contacts.list()
Users client.users.list()
Skills & lookups client.skills.list(), client.currencies.list(), client.match_stages.list()

Nested data works the same way:

client.candidates.notes(123).create(info="Called candidate")
client.candidates.experiences(123).list()
client.jobs.attachments(456).list()

Pagination

By default, .list() returns all matching results. Need a single page?

page = client.candidates.list_page(page=1)
print(page.count)         # total matching records
print(len(page.results))  # records on this page

Error handling

from manatal import (
    Manatal,
    AuthenticationError,
    NotFoundError,
    RateLimitError,
    ValidationError,
)

client = Manatal(api_key="...")

try:
    client.candidates.retrieve(999999)
except NotFoundError as exc:
    print("Missing record:", exc.status_code, exc.body)
except ValidationError as exc:
    print("Invalid payload:", exc.body)
except RateLimitError:
    print("Too many requests — try again later")
except AuthenticationError:
    print("Check your API token")

Useful links

Resource Link
Manatal app https://app.manatal.com/
Enable Open API & generate tokens https://support.manatal.com/docs/manatal-api
Open API settings https://app.manatal.com/administration/features/open-api
API reference (developers) https://developers.manatal.com/reference/getting-started
Base URL used by this client https://api.manatal.com/open/v3

Contributing

Issues and pull requests are welcome:
https://github.com/TasfiqulGhani/manatal-python

License

MIT

Download files

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

Source Distribution

manatal-0.1.3.tar.gz (11.2 kB view details)

Uploaded Source

Built Distribution

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

manatal-0.1.3-py3-none-any.whl (15.1 kB view details)

Uploaded Python 3

File details

Details for the file manatal-0.1.3.tar.gz.

File metadata

  • Download URL: manatal-0.1.3.tar.gz
  • Upload date:
  • Size: 11.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for manatal-0.1.3.tar.gz
Algorithm Hash digest
SHA256 f6599d16be6f2545340e12b1964b89e72ac1509b71db1c70ff5f0a110adccf69
MD5 70eefe80004c43731f440a629c8f1d1b
BLAKE2b-256 9222de3b5b54dc4a8f2a4b8f3d083e579b34096fbc14bea04a50bc310f6871dc

See more details on using hashes here.

Provenance

The following attestation bundles were made for manatal-0.1.3.tar.gz:

Publisher: publish.yml on TasfiqulGhani/manatal-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file manatal-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: manatal-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 15.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for manatal-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 f4398bfa6ca646ca50eabd3dcbc723a9917680c2eb8f917241adb0a1f0fb53aa
MD5 b110676752ae44db177ccdbad2a1ea7a
BLAKE2b-256 d6bc2e5276f996ac9950eafd542efcefd9cd43aa2cbdec8923c8a0f4bdb12a7c

See more details on using hashes here.

Provenance

The following attestation bundles were made for manatal-0.1.3-py3-none-any.whl:

Publisher: publish.yml on TasfiqulGhani/manatal-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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