Iberia Avios Flight API Backend -- 2

Job ID: 40217952

Budget: $30 – $250 USD

I need a seasoned backend developer to design and implement a secure REST API that lets my users check award-seat availability (Avios) directly from Iberia.com. The core of the job is to automate the full search flow — login, query, filter, and return the results — while keeping the service fast and reliable.

Authentication & security
The service must issue and validate JWT tokens for every request beyond the public health-check route. Token refresh, revocation, and a simple role model (“user” vs. “admin”) should be built in from the start.

Flight data extraction
I do not have official Iberia developer access, so we will need to pull the data ourselves. I’m open to whichever tooling you are most comfortable with — BeautifulSoup, Selenium, Scrapy, or a hybrid approach — as long as the final solution is headless, resilient to minor layout changes, and respectful of Iberia’s rate limits. Only flights that are bookable with Avios need to be captured; no hotel or car-rental data is required.

Deliverables
• Clean, modular Python code (FastAPI or Flask preferred, but I’m flexible)
• Fully documented endpoints in OpenAPI/Swagger format
• Dockerfile and docker-compose so I can run the stack locally or in staging with one command
• README covering setup, environment variables, and common troubleshooting steps
• Postman (or similar) collection showing successful auth and a sample Avios search

Acceptance criteria
1. A GET /search endpoint returns accurate Avios flight data for a given origin, destination, and date.
2. End-to-end test proves that an unauthenticated request is rejected, while an authenticated JWT request succeeds.
3. Rate-limiting and basic logging are in place to prevent abuse and simplify debugging.
4. Repository passes pylint/flake8 and unit tests on GitHub Actions.

If this sounds like a challenge you’d enjoy, let’s get it built.