Discover/Stage API
live

Stage APIstage.ma

Search and discover internship opportunities across Morocco's job market by accessing detailed listings from Stage.ma, including position details, requirements, and company information. Find the perfect internship match by filtering through available opportunities on the platform.

Endpoint health
monitored
get_internship
search_internships
Checks pendingself-healing
Endpoints
2
Updated
4h ago
Try it
Page number for pagination.
Set to 'true' to filter only paid internships, 'false' or omit for all.
Free-text search query to filter internships by title or keywords.
City ID to filter by location.
Specialty ID to filter by field of study.
Presence type filter.
api.parse.bot/scraper/f6d6378b-fce9-41d8-86e6-6cd0de4e0708/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/f6d6378b-fce9-41d8-86e6-6cd0de4e0708/search_internships?page=1&salary=true&search=marketing&location=5&specialty=8&remote_type=onsite' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace stage-ma-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: Stage.ma SDK — search and inspect Moroccan internships."""
from parse_apis.stage_ma_api import StageMa, Specialty, RemoteType, InternshipNotFound

client = StageMa()

# Search internships filtered by specialty (Marketing)
for internship in client.internship_summaries.search(specialty=Specialty.MARKETING, limit=3):
    print(internship.title, "|", internship.location, "|", internship.duration)

# Drill into the first IT internship for full details
it_result = client.internship_summaries.search(
    specialty=Specialty.INFORMATIQUE, limit=1
).first()
if it_result:
    detail = it_result.details()
    print(detail.title, detail.city, detail.salary, detail.availability)
    print(detail.description[:120])

# Search with remote type filter and paid only
for internship in client.internship_summaries.search(
    remote_type=RemoteType.ONSITE, salary="true", limit=3
):
    print(internship.title, internship.company, internship.tags)

# Typed error handling: attempt to get a non-existent internship
if it_result:
    try:
        detail = it_result.details()
        print(detail.title, detail.published_date)
    except InternshipNotFound as exc:
        print(f"Not found: {exc.slug}")

print("exercised: search (specialty/remote_type/salary filters) / details / error handling")
All endpoints · 2 totalmissing one? ·

Search internship listings on Stage.ma with optional filters for specialty, location, remote type, and salary. Returns paginated results with 10 items per page. Each result includes title, company, location, duration, start date, and tags.

Input
ParamTypeDescription
pageintegerPage number for pagination.
salarystringSet to 'true' to filter only paid internships, 'false' or omit for all.
searchstringFree-text search query to filter internships by title or keywords.
locationstringCity ID to filter by location.
specialtystringSpecialty ID to filter by field of study.
remote_typestringPresence type filter.
Response
{
  "type": "object",
  "fields": {
    "count": "integer",
    "internships": "array of internship summary objects",
    "current_page": "integer",
    "has_next_page": "boolean"
  },
  "sample": {
    "data": {
      "count": 10,
      "internships": [
        {
          "id": "9312",
          "slug": "9312-offre-de-stage-photographer-videographer",
          "tags": [
            "Marketing",
            "Stage Opérationnel"
          ],
          "title": "Offre de Stage – Photographer / Videographer",
          "company": "Billionnaire Invest",
          "duration": "1 - 3 mois",
          "location": "Casablanca",
          "positions": 2,
          "start_date": "19/04/2026",
          "company_url": "https://www.stage.ma/organismes/16972-billionnaire-invest",
          "free_submissions_left": 15
        }
      ],
      "current_page": 1,
      "has_next_page": true
    },
    "status": "success"
  }
}

About the Stage API

The Stage API on Parse exposes 2 endpoints for the publicly available data on stage.ma. Calls return JSON over HTTPS and are billed per successful response.

Pin a release with the API-Snapshot-Version header so canonical updates don't silently change your contract.

Related APIs
usajobs.gov API
Search federal job openings and view detailed job announcements from USAJobs.gov, plus access historical job data and reference codes to help you find the right government position. Filter and explore thousands of federal career opportunities with comprehensive job details all in one place.
jobs.lever.co API
Access job postings on any Lever-hosted company job board. List, filter, search, and group open roles, retrieve full posting details, and extract application form questions via Lever's public API.
indeed.com API
Search and discover job opportunities on Indeed while accessing detailed job descriptions, company profiles, and salary insights all in one place. Get comprehensive career information including specific compensation data to help you find and evaluate the right job opportunity for you.
job-boards.greenhouse.io API
Access job listings, department information, office locations, and application forms from Greenhouse.io job boards, then submit applications directly through the platform. Search and filter available positions by keywords to find roles that match your qualifications.
uk.indeed.com API
Search for job listings across Indeed UK and retrieve complete job details including descriptions, requirements, salary information, and application links. Filter by job type, experience level, location, remote preference, and more to find relevant opportunities.
levels.fyi API
Access real compensation data, benefits packages, and salary trends across tech companies and job levels. Retrieve internship pay, H-1B visa salary records, company profiles, and detailed breakdowns by role and level.
in.indeed.com API
in.indeed.com API
ca.indeed.com API
Search for jobs across Canada and access detailed job listings, company profiles, employee reviews, and salary information all in one place. Build recruitment tools, career research applications, or job market analysis platforms with comprehensive employment data from Indeed Canada.