IB World Schools Scraper · Codes, Programmes & Contacts
Pricing
from $6.99 / 1,000 results
IB World Schools Scraper · Codes, Programmes & Contacts
Turn the official ibo.org directory into a spreadsheet: school code, PYP/MYP/DP/CP, languages and map coordinates — one row per school. One country or the full catalogue. No login. No API key.
Pricing
from $6.99 / 1,000 results
Rating
0.0
(0)
Developer
Corentin Robert
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
IB World Schools Scraper
Turn the official IB World Schools directory into a spreadsheet — school code, authorised programmes, and languages — without copying pages by hand.
This Actor reads the public Find an IB School directory on ibo.org and writes one row per school. Pick a country, paste a finder URL, or export the worldwide catalogue (~5,800 schools) with one click.
No login. No API key. No IB account. Contacts are copied only when a school publishes them on its own website. They are never invented.
Who is this for?
| You are… | Typical goal | Suggested setup |
|---|---|---|
| EdTech / curriculum vendor | Official universe of authorised IB accounts | Worldwide — then Start |
| Education consultant / placement | Confirm which programmes a school actually runs | Listing — paste a country finder URL |
| Relocation / mobility team | Shortlist authorised IB schools in one market | Catalogue — one country, Max schools 20 |
| Market research | Count PYP / MYP / DP / CP coverage by country | Catalogue with Max schools at 0 on a paid plan |
| CRM / outbound | Public emails when the school lists them on its site | Turn on Open each IB profile page and website contacts |
What you get by default — name, IB school code, country, PYP / MYP / DP / CP flags, languages of instruction, map coordinates, and the official profile URL.
When to open profiles — the finder table is the official roster. Turn Open each IB profile page on only if you need head of school, address, or website. Website contact copy needs that option.
How to use
- Pick a Mode: Catalogue (countries), Listing (finder URLs), Individual (school URLs), or Worldwide.
- Set Max schools. Free plan: 20 per run. Paid plans: 0 = no ceiling.
- Click Start. Download CSV, Excel, or JSON from the dataset.
Full worldwide dump: pick Worldwide, click Start. You can leave Countries and Max schools as they are. Default timeout is 4 hours. Free Apify accounts still stop at 20 rows.
Ready-made examples
| Example | Use it when |
|---|---|
| UAE IB schools sample | Up to 20 authorised schools in the United Arab Emirates |
| Singapore IB schools sample | Up to 20 authorised schools in Singapore |
| One IB school profile | A single official ibo.org/school page |
| UAE + Singapore sample | Two markets, 20 rows |
| Worldwide catalogue | Every authorised IB school (~5,800). Paid plan. Max schools 0 |
What it extracts
| Theme | Typical columns |
|---|---|
| Identity | Name, IB school code, official profile URL, country |
| Programmes | PYP, MYP, DP, CP flags and a combined programmes field |
| Languages | Languages of instruction from the directory |
| Map | Latitude / longitude when the finder map publishes them |
| Profile (optional) | Head of school, address, website, authorization years |
| Contact (optional) | Email and phone only if published on the school website |
Empty cells usually mean that school did not publish that detail on ibo.org.
Example output
Default Catalogue run (finder table only — no invented contacts):
{"url": "https://www.ibo.org/school/049476/","schoolCode": "049476","name": "Ajman Academy","country": "United Arab Emirates","countryCode": "AE","city": "","address": "","headOfSchool": "","pyp": true,"myp": true,"dp": false,"cp": false,"programmes": "PYP, MYP","languages": "English, Arabic","authorization": "","website": "","email": "","phone": "","latitude": "25.3767711","longitude": "55.4430935"}
Email, phone, address and website stay empty unless you turn on Open each IB profile page and the school published them.
Input
| Field | What to put |
|---|---|
| Mode | Catalogue, Listing, Individual, or Worldwide |
| Countries | Used in Catalogue. Ignored in Worldwide. |
| Finder URLs | https://www.ibo.org/programmes/find-an-ib-school/?SearchFields.Country=SG |
| School URLs | https://www.ibo.org/school/049476/ |
| Max schools | 20 to start. 0 = no ceiling on a paid plan. Free plan: 20 / run |
| Open each IB profile page | Off = finder table only (faster). On = try address / website |
| Find published email & phone | Only copies literals from the school website. Never guessed |
API-only: maxConcurrency (default 3, max 8), verboseLogs (extra debug lines). Residential Apify Proxy is applied automatically.
How much does it cost to scrape IB World Schools?
Pay per school row in the default dataset. Platform compute is billed to you (PPE).
| Scenario | Approx. cost (rows only) |
|---|---|
| 20 schools (first run / Free plan) | ~$0.14 |
| 1,000 schools | ~$6.99 |
| Worldwide catalogue (~5,800 schools) | ~$40.50 |
Price is $0.00699 per result. Free Apify accounts are capped at 20 schools per run. Upgrade to raise the cap — still billed per school.
Is it legal to scrape ibo.org?
This Actor only accesses data that the IB World Schools directory makes publicly available. As with any data containing personal information, ensure your use complies with GDPR and relevant regulations, including direct-marketing rules where contacts are involved.
Also available
- International Schools Scraper — fees, curriculum, facilities and published contacts from international-schools-database.com.
- WhichSchoolAdvisor Scraper — fees, inspection ratings and published contacts from WhichSchoolAdvisor.
Use IB World Schools when you need the official authorization list.
FAQ
Do I need an IB or ibo.org account?
No.
Why are some emails empty?
The official finder table does not list mailboxes. With profile + website scan on, we copy an address only if it appears on the school's own site.
Is this the full worldwide list?
Pick Worldwide and click Start. Paid plan, Max schools can stay at 20 — the Actor lifts that default. Free accounts still stop at 20 rows.
Support
Questions or a custom pipeline: corentin@outreacher.fr.
Local development
cd ib-world-schools-scrapernpm installnpm testapify run --purge --input-file=./.actor/INPUT.json