Discover/Migroto API
live

Migroto APImigroto.com

Access ANZSCO occupation data, visa invitation history, EOI backlog, state nomination programs, and points distribution for Australian skilled migration.

Endpoint health
verified 3h ago
search_occupations
get_occupation_details
get_occupation_filters
3/3 passing latest checkself-healing
Endpoints
3
Updated
3h ago

What is the Migroto API?

The Migroto API provides 3 endpoints covering Australian skilled migration occupation data from migroto.com, including ANZSCO codes, visa subclass invitation history, EOI backlog snapshots, state nomination programs, and points distribution trends. The get_occupation_details endpoint returns 8 distinct response objects for a single occupation, while search_occupations lets you resolve an occupation name or partial ANZSCO code into a structured list of matches.

Try it
Search term — an occupation name (e.g. 'software engineer') or an ANZSCO code (e.g. '261313').
api.parse.bot/scraper/716090f8-a890-4c9f-ae1e-d9b14b61ee13/<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/716090f8-a890-4c9f-ae1e-d9b14b61ee13/search_occupations?query=engineer' \
  -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 migroto-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: Migroto Occupation Insight SDK — Australian skilled migration data."""
from parse_apis.migroto_com_api import Migroto, VisaSubclass, OccupationNotFound

client = Migroto()

# Search for occupations by name
for occ in client.occupations.search(query="software engineer", limit=5):
    print(occ.title, occ.code)

# Get one occupation and drill into its full migration insight
occupation = client.occupations.search(query="civil engineer", limit=1).first()
if occupation:
    insight = occupation.insight(inv_subclass=VisaSubclass._189, trend_year_range="2025-2026")
    print(insight.occupation.title, insight.occupation.tier)
    for prog in insight.state_programs[:3]:
        print(prog.state, prog.program_name, prog.status)

# Retrieve available filter options
filters = client.filters.get()
for state in filters.states:
    print(state.code, state.name)

# Handle a missing occupation gracefully
try:
    bad = client.occupations.get(code="999999")
    print(bad.title)
except OccupationNotFound as exc:
    print(f"Occupation not found: {exc}")

print("exercised: occupations.search / occupation.insight / filters.get / occupations.get")
All endpoints · 3 totalmissing one? ·

Full-text search over Australian skilled migration occupations by name or ANZSCO code. Returns matching occupations with their codes and titles. Results are auto-iterated.

Input
ParamTypeDescription
queryrequiredstringSearch term — an occupation name (e.g. 'software engineer') or an ANZSCO code (e.g. '261313').
Response
{
  "type": "object",
  "fields": {
    "total": "integer",
    "occupations": "array of occupation summaries"
  },
  "sample": {
    "data": {
      "total": 10,
      "occupations": [
        {
          "id": "019c0534-42c0-7147-a296-7d4436f31cf8",
          "code": "261313",
          "title": "Software Engineer",
          "version": "v1.3, v2022"
        }
      ]
    },
    "status": "success"
  }
}

About the Migroto API

Endpoints and What They Return

The API exposes three endpoints. search_occupations accepts a free-text query — either an occupation title like software engineer or a 6-digit ANZSCO code like 261313 — and returns a list of matching occupation summaries including codes and titles, with results auto-paginated. get_occupation_filters requires no inputs and returns the full set of valid filter values: Australian state objects (code and name), visa subclass objects (subclass number and label), financial year range strings, and EOI backlog snapshot dates. Use this endpoint to populate dropdowns or validate parameter values before calling the main details endpoint.

Occupation Details

get_occupation_details is the primary data endpoint. Supply a 6-digit code (obtained from search_occupations) and optionally a UUID via occupation_id for faster lookup. The response includes occupation metadata, invitations (filterable by inv_subclass values 189, 190, or 491 and by inv_year ranges like last-6-months or last-fy), eoi_backlog (filterable by eoi_subclass and a specific eoi_date snapshot in YYYY-MM-DD format), state_programs listing relevant state nomination programs, points_distribution showing a snapshot of point level spread among EOI holders, and eoi_trends with monthly trend data filterable by trend_subclass and trend_year_range. The response also surfaces eoi_backlog_last_update and invitations_last_update ISO date strings so you can assess data freshness.

Filtering and Coverage

All filter parameters in get_occupation_details are optional. Omitting them returns unfiltered data across all subclasses and the default time range. Valid values for date-based and year-based filters can be retrieved dynamically from get_occupation_filters, which keeps your integration aligned with whatever snapshot dates and financial years migroto.com currently holds. Coverage is limited to Australian skilled migration occupations on the ANZSCO framework; the three supported visa subclasses are 189 (points-tested independent), 190 (state-nominated), and 491 (skilled work regional).

Reliability & maintenanceVerified

The Migroto API is a managed, monitored endpoint for migroto.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when migroto.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 migroto.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.

Last verified
3h ago
Latest check
3/3 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build an occupation eligibility checker that maps a job title to ANZSCO code and fetches current EOI backlog depth for subclasses 189, 190, and 491.
  • Track invitation cutoff trends over time using the eoi_trends monthly data and inv_year filter to compare financial years.
  • Populate a state nomination comparison table using the state_programs array returned for a given ANZSCO code.
  • Alert users when EOI backlog depth changes by polling eoi_backlog across successive snapshot dates from get_occupation_filters.
  • Analyze points distribution patterns with points_distribution data to advise clients on whether their current points score is competitive.
  • Integrate occupation search into a migration planning tool that resolves plain-English job titles to ANZSCO codes via search_occupations.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does migroto.com have an official developer API?+
Migroto does not publish a documented public developer API. The data accessible here — occupation search, invitation history, EOI backlogs, and state programs — is exposed through this Parse API.
What does the `eoi_backlog` field in `get_occupation_details` actually contain?+
The eoi_backlog field returns an object with a data array of queue position entries and pagination metadata. You can filter it by visa subclass (189, 190, or 491) using the eoi_subclass parameter, and by a specific snapshot date using eoi_date in YYYY-MM-DD format. Available snapshot dates can be retrieved in advance from get_occupation_filters under the eoi_backlog_dates array.
Can I retrieve data for occupations outside Australia or under ANZSCO version 2?+
The API covers Australian skilled migration occupations within the ANZSCO framework as reflected on migroto.com. Non-Australian occupation frameworks and alternative classification versions are not currently included. You can fork this API on Parse and revise it to add endpoints targeting additional classification schemes if your use case requires them.
Does the API return individual applicant-level EOI data or employer-sponsored visa data?+
The API returns aggregate and statistical data — backlog queue depth, invitation counts, points distribution snapshots, and trend lines — not individual applicant records. Employer-sponsored visa subclasses (such as 482 or 186) are not currently covered; the supported subclasses are 189, 190, and 491. You can fork the API on Parse and revise it to add an endpoint covering employer-sponsored occupation lists.
How do I know which `eoi_date` or `trend_year_range` values are valid before calling `get_occupation_details`?+
Call get_occupation_filters first. It returns eoi_backlog_dates (an array of date objects with value and label) and years (an array of financial year range strings) that enumerate every accepted value for those parameters. Passing a date or year string not in those arrays will not return meaningful data.
Page content last updated . Spec covers 3 endpoints from migroto.com.
Related APIs in Government PublicSee all →
482jobs.com API
Search for and retrieve Australian jobs that offer visa sponsorship opportunities directly from 482jobs.com. Browse detailed job listings including positions, employers, and sponsorship information to find employment opportunities in Australia.
getmyfirstjob.co.uk API
Search and browse apprenticeship and early career opportunities across the UK by occupation, location, and employer. Access detailed job descriptions, employer profiles, occupation categories, and the latest apprenticeship listings from GetMyFirstJob.co.uk.
seek.com.au API
Search for job listings on SEEK Australia and retrieve detailed information about positions. Browse jobs across any keyword, title, and location, and access full job descriptions, classifications, salary info, and employment details.
serviceseeking.com.au API
Search and browse job postings and local service providers across Australia on ServiceSeeking.com.au. View detailed business profiles, ratings, pricing, and explore hundreds of service categories — from tradespeople to home services and beyond.
airtasker.com API
Search and browse Airtasker tasks by location, category, price, and keywords, then access detailed task information and user profiles. Get location suggestions and category recommendations to discover available work and service opportunities in your area.
nz.seek.com API
Search for jobs on SEEK New Zealand by keyword, location, and salary range to discover available positions that match your criteria. View detailed job information including descriptions, requirements, and application details for any role you're interested in.
seek.com API
Search Seek Australia job listings by keyword and retrieve facet counts (locations, classifications, and work types) to power filters and summaries.
jobs.ams.at API
Search and browse job listings from Austria's AMS alle jobs platform with advanced filtering options. View detailed job information, explore featured categories including green jobs and apprenticeships, and retrieve autocomplete suggestions for job titles. Access real-time job data filtered by location, employment type, working hours, education level, and more.