Python client library for the CreatorsArea.fr job marketplace API
creatorsarea-py is an unofficial Python SDK for the CreatorsArea.fr job marketplace API. It provides a simple and intuitive interface to fetch and interact with job offers for developers, designers, and teams in the French gaming community.
- π Job Search - Fetch jobs by category (Developer, Graphism, Team)
- π Filtering - Filter by tags, budget, deadline, status
- π― Job Details - Get complete information about specific jobs
- π Pagination - Handle large result sets efficiently
- π‘οΈ Error Handling - Comprehensive exception handling
- π Type Hints - Full typing support for better IDE integration
- β‘ Async Support - (Coming soon) Async/await support
pip install creatorsarea-pygit clone https://github.com/Sycatle/creatorsarea-py.git
cd creatorsarea-py
pip install -e .from creatorsarea import CreatorsAreaClient
# Initialize the client
client = CreatorsAreaClient()
# Fetch developer jobs
jobs = client.get_jobs(category="DEVELOPER", limit=10)
for job in jobs:
print(f"{job.title} - {job.budget}")
print(f"URL: {job.url}")
print(f"Tags: {', '.join(job.tags)}")
print("---")
# Get specific job details
job = client.get_job_by_id("675d123...")
if job:
print(f"Title: {job.title}")
print(f"Description: {job.description}")
print(f"Budget: {job.budget}")
print(f"Deadline: {job.deadline}")from creatorsarea import CreatorsAreaClient, Category
client = CreatorsAreaClient()
# Developer jobs
dev_jobs = client.get_jobs(category=Category.DEVELOPER)
# Graphism jobs
design_jobs = client.get_jobs(category=Category.GRAPHISM)
# Team/server jobs
team_jobs = client.get_jobs(category=Category.TEAM)# Filter by minimum budget
high_budget_jobs = client.get_jobs(
category="DEVELOPER",
min_budget=100.0
)
# Filter non-volunteer jobs
paid_jobs = client.get_jobs(
category="DEVELOPER",
exclude_volunteer=True
)
# Filter by tags
lua_jobs = client.get_jobs(
category="DEVELOPER",
tags=["lua", "gmod"]
)# By ID
job = client.get_job_by_id("675d123...")
# By slug
job = client.get_job_by_slug("developpeur-lua-gmod")
if job:
print(f"Applications: {job.applications}")
print(f"Author: {job.author}")
print(f"Status: {job.status}")# Get all jobs (automatic pagination)
all_jobs = client.get_all_jobs(category="DEVELOPER")
# Manual pagination
page_1 = client.get_jobs(category="DEVELOPER", page=1, per_page=20)
page_2 = client.get_jobs(category="DEVELOPER", page=2, per_page=20)Main client class for interacting with the API.
Fetch a list of jobs.
Parameters:
category(str): Job category ("DEVELOPER", "GRAPHISM", "TEAM")limit(int, optional): Maximum number of jobs to returnmin_budget(float, optional): Minimum budget filtermax_budget(float, optional): Maximum budget filterexclude_volunteer(bool, optional): Exclude volunteer jobstags(List[str], optional): Filter by tagsstatus(str, optional): Filter by status
Returns: List of Job objects
Fetch a specific job by its ID.
Parameters:
job_id(str): The job ID
Returns: Job object or None
Fetch a specific job by its slug.
Parameters:
slug(str): The job slug (URL-friendly identifier)
Returns: Job object or None
Fetch all jobs with automatic pagination.
Parameters:
category(str): Job category**filters: Same filters asget_jobs()
Returns: List of all Job objects
Job data model.
job.id # str: Unique job ID
job.title # str: Job title
job.slug # str: URL slug
job.url # str: Full URL to job posting
job.description # str: Job description
job.content # str: Full content/details
job.category # str: Job category
job.kind # str: Raw kind from API
job.status # str: Job status (ACTIVE, CLOSED, etc.)
job.budget # str: Formatted budget string
job.budget_value # float: Numeric budget value
job.is_volunteer # bool: Is volunteer work
job.budget_negotiable # bool: Is budget negotiable
job.tags # List[str]: Job tags
job.applications # str: Application count info
job.deadline # datetime: Application deadline
job.author # dict: Author information
job.created_at # datetime: Creation timestamp
job.updated_at # datetime: Last update timestampEnum for job categories.
Category.DEVELOPER # Development jobs
Category.GRAPHISM # Design/graphics jobs
Category.TEAM # Team/server jobsfrom creatorsarea import (
CreatorsAreaException, # Base exception
APIError, # API request failed
NotFoundError, # Job not found
ValidationError, # Invalid parameters
)client = CreatorsAreaClient(
user_agent="MyBot/1.0 (contact@example.com)"
)client = CreatorsAreaClient(timeout=30)# For testing or custom endpoints
client = CreatorsAreaClient(
base_url="https://api.creatorsarea.fr"
)# Run tests
pytest
# Run with coverage
pytest --cov=creatorsarea
# Run specific test file
pytest tests/test_client.pySee the examples/ directory for more usage examples:
basic_usage.py- Simple job fetchingfiltering.py- Advanced filtering examplesmonitoring.py- Job monitoring botdiscord_bot.py- Discord integration example
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Sycatle
- GitHub: @Sycatle
This project is licensed under the MIT License - see the LICENSE file for details.
This is an unofficial SDK and is not affiliated with or endorsed by CreatorsArea.fr. Use at your own risk.
- CreatorsArea.fr
- Documentation (Coming soon)
- PyPI Package (Coming soon)
- Issue Tracker
- π Report a bug
- π‘ Request a feature
- π¬ Discussions
Made with β€οΈ for the French gaming community