Skolakonnect APIapp.skolakonnect.com ↗
Browse and retrieve freelance job postings from SkolaGigs via two endpoints. Filter by keyword, category, pay range, duration, and experience level.
What is the Skolakonnect API?
The SkolaGigs API exposes 2 endpoints that return student freelance job listings from app.skolakonnect.com, with over 15 structured fields per posting. Use list_jobs to page through active gigs filtered by category, experience level, pay type, and Naira pay range, or call get_job to retrieve a full posting including description, required skills, proposal count, and a client activity block.
curl -X GET 'https://api.parse.bot/scraper/0bff64ec-1b49-4a17-99da-6d810fdb15b6/list_jobs?level=junior' \ -H 'X-API-Key: $PARSE_API_KEY'
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 app-skolakonnect-com-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: SkolaGigs SDK — browse student freelance jobs and read full details."""
from parse_apis.app_skolakonnect_com_api import (
SkolaGigs,
JobCategory,
ExperienceLevel,
JobNotFound,
)
client = SkolaGigs()
# Browse junior-level tech jobs, capped at 5 results.
for job_summary in client.job_summaries.list(
category=JobCategory.TECH_PROGRAMMING,
level=ExperienceLevel.JUNIOR,
limit=5,
):
print(job_summary.title, job_summary.pay_display, job_summary.duration)
# Drill into the first writing job to read its full description.
hit = client.job_summaries.list(
category=JobCategory.WRITING_TRANSLATION, limit=1
).first()
if hit is not None:
detail = hit.details()
print(detail.title)
print(detail.description[:200])
print("Skills:", detail.required_skills)
print("Client:", detail.client.name, "—", detail.client.status)
# Point lookup by username/slug derived from a listing.
summary = client.job_summaries.list(limit=1).first()
if summary is not None:
try:
job = client.jobs.get(
client_username=summary.client_username,
job_slug=summary.job_slug,
)
print(job.title, job.pay_display, "verified:", job.payment_verified)
except JobNotFound:
print("Job no longer available")
print("exercised: job_summaries.list / details / jobs.get")
Returns one page (up to 10) of currently listed jobs, newest first, optionally narrowed by a keyword search, category, experience level, pay type, expected duration and a pay range. Each row is one job posting with its title, pay (amount, currency symbol and Fixed/Hourly type), experience level, required skills, client name/rating, number of proposals so far and the job page URL (job_url), which is also the page where a logged-in freelancer applies. Pagination is caller-driven through the page input (omitted = page 1); has_more / next_page say whether another page exists. An empty jobs array with has_more=false is the valid result when no job matches the filters. One upstream request per call.
| Param | Type | Description |
|---|---|---|
| page | integer | 1-based result page, 10 jobs per page. |
| level | string | Required experience level filter (junior is the beginner tier). Omitted = all levels. |
| query | string | Free-text keyword matched against job titles/descriptions by the site. Omitted = no keyword filter. |
| category | string | Job category filter. Omitted = all categories. |
| duration | string | Expected job duration filter. Omitted = any duration. |
| job_type | string | Pay type filter (fixed price or hourly). Omitted = both. |
| max_price | integer | Maximum pay amount in the site's currency (Naira). Omitted = no upper bound. |
| min_price | integer | Minimum pay amount in the site's currency (Naira). Omitted = no lower bound. |
{
"type": "object",
"fields": {
"jobs": "array of job postings on this page",
"page": "page returned",
"has_more": "true when a further page exists",
"next_page": "next page number or null",
"jobs[].job_id": "site's numeric job identifier as a string",
"jobs[].job_url": "public job page URL; applying happens on this page after login (application link)",
"jobs[].summary": "truncated description shown on the listing card",
"jobs[].duration": "expected duration label, e.g. '1 Week'",
"jobs[].job_slug": "job slug segment of the job URL; pass to get_job",
"jobs[].location": "client location when the site shows one, else null",
"jobs[].pay_type": "Fixed or Hourly",
"jobs[].proposals": "number of proposals already submitted",
"jobs[].pay_amount": "numeric pay amount",
"jobs[].pay_display": "pay as displayed, currency symbol included",
"jobs[].posted_date": "posting date as shown by the site, e.g. 'Mar 20, 2026'",
"jobs[].pay_currency": "currency symbol read from the listing (₦)",
"jobs[].client_rating": "client's average rating (0.0 when unrated)",
"jobs[].client_username": "client's username segment of the job URL; pass to get_job",
"jobs[].required_skills": "array of skill tags required by the client",
"jobs[].experience_level": "required level label as shown (Junior, MidLevel, Senior, ...)",
"jobs[].payment_verified": "true when the listing carries the Verified badge"
},
"sample": {
"data": {
"jobs": [
{
"title": "Website Development for Renewable Energy & Security Tech Company",
"job_id": "52",
"job_url": "https://gigs.skolakonnect.com/jobs/afrigreentech/website-development-for-renewable-energy-amp-security-tech-company",
"summary": "AfriGreen Tech Ltd is seeking a talented web developer to design and build a modern, responsive, and user-friendly website. The website will showcase...",
"duration": "1 Week",
"job_slug": "website-development-for-renewable-energy-amp-security-tech-company",
"location": null,
"pay_type": "Fixed",
"proposals": 3,
"pay_amount": 50000,
"client_name": "AfriGreen Tech",
"pay_display": "₦50,000.00",
"posted_date": "Aug 4, 2025",
"pay_currency": "₦",
"client_rating": 0,
"client_username": "afrigreentech",
"required_skills": [
"UI/UX",
"On-Page SEO"
],
"experience_level": "Junior",
"payment_verified": true
}
],
"page": 1,
"has_more": false,
"next_page": null
},
"status": "success"
}
}About the Skolakonnect API
Listing and Filtering Jobs
The list_jobs endpoint returns up to 10 job postings per page, ordered newest first. Callers can narrow results using any combination of query (free-text keyword), category, level (experience tier, where junior is the beginner tier), job_type (fixed price or hourly), duration, min_price, and max_price (both in Nigerian Naira). Each record in the jobs array includes job_id, job_slug, job_url, pay_display, duration, summary (truncated description), and location (null when the client has not disclosed one). The has_more and next_page fields make it straightforward to walk all available pages.
Full Job Detail
The get_job endpoint takes the job_slug and client_username values emitted by list_jobs and returns the complete posting. Additional fields not present in the listing view include description (full plain-text body), proposals (number of bids already submitted), pay_amount (numeric), pay_type (Fixed or Hourly), and a client object containing name, status (Active or Inactive), member_since, total_jobs, and last_seen. The job_url field points to the public page where candidates apply after logging in.
Coverage and Scope
All monetary values are denominated in Nigerian Naira, reflecting SkolaGigs' primary market. The API surfaces currently listed, publicly visible jobs. Data returned matches what appears on the public listing and detail pages — no authentication-gated content such as private applicant profiles or employer contact details is included.
The Skolakonnect API is a managed, monitored endpoint for app.skolakonnect.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when app.skolakonnect.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official app.skolakonnect.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Aggregate active student freelance gigs into a job board filtered by category and experience level
- Track proposal counts on specific job slugs to gauge competition for a given posting
- Alert students when new jobs matching a keyword and pay range appear on SkolaGigs
- Analyze pay distribution across Fixed vs Hourly gigs using pay_amount and job_type fields
- Build a client reputation lookup using the client block fields: total_jobs, member_since, and last_seen
- Monitor job duration patterns (e.g., '1 Week' vs longer engagements) across categories
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.