Discover/CROA API
live

CROA APIcroa.com

Access 5000+ Canadian Railway Office of Arbitration awards, search by keyword, filter by case range or party, and retrieve arbitrator metadata via 8 endpoints.

Endpoint health
verified 4d ago
get_awards_index
get_latest_awards
get_members
get_awards_by_range
search_awards
8/8 passing latest checkself-healing
Endpoints
8
Updated
26d ago

What is the CROA API?

The CROA API provides structured access to over 5,000 Canadian Railway Office of Arbitration awards across 8 endpoints, covering case metadata, PDF links, arbitrator names, parties, and dispute subjects. The get_awards_index endpoint returns the full awards catalog with case numbers and PDF URLs, while get_award_detail surfaces per-case metadata including arbitrator, parties, and a text snippet extracted directly from the award document.

Try it

No input parameters required.

api.parse.bot/scraper/514dfc91-459e-44e3-ad0c-d3a3ebb95e33/<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/514dfc91-459e-44e3-ad0c-d3a3ebb95e33/get_home' \
  -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 croa-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: CROA SDK — browse, search, and drill into Canadian railway arbitration awards."""
from parse_apis.croa_canadian_railway_office_of_arbitration_api import CROA, AwardNotFound

client = CROA()

# Browse the most recent scheduled awards (capped at 5 items)
for award in client.scheduledawards.list_latest(limit=5):
    print(award.case_number, award.description[:80])

# Filter recent awards by a specific railway party
for award in client.scheduledawards.filter_by_party(party="CPKCR", limit=3):
    print(award.case_number, award.date, award.description[:60])

# Drill into one award's full detail via the summary → detail navigation
recent = client.scheduledawards.list_latest(limit=1).first()
if recent:
    detail = recent.detail()
    print(detail.case_number, detail.pdf_url, detail.full_text_snippet[:100])

# Search the archive by keyword
for result in client.searchresults.search(query="dismissal", limit=3):
    print(result.title, result.url)

# Get a specific award by case number, with typed-error handling
try:
    award = client.awards.get(case_number="5204")
    print(award.case_number, award.pdf_url)
except AwardNotFound as exc:
    print(f"Award not found: {exc.case_number}")

# List member organizations
for member in client.members.list(limit=3):
    print(member.name, member.details[:50])

print("exercised: scheduledawards.list_latest / filter_by_party / detail / searchresults.search / awards.get / members.list")
All endpoints · 8 totalmissing one? ·

Retrieve navigation links from the CROA English homepage. Returns the page title and a list of primary navigation links (search, latest awards, full index, rules, members, contact).

Input

No input parameters required.

Response
{
  "type": "object",
  "fields": {
    "title": "string, page title",
    "navigation_links": "array of objects with text and url keys"
  },
  "sample": {
    "data": {
      "title": "CROA Home",
      "navigation_links": [
        {
          "url": "http://search.freefind.com/find.html?si=8864688&pid=a",
          "text": "Click here to search all railway awards"
        },
        {
          "url": "http://croa.com/Schedules%20with%20awards/May-Sept2025Awards.htm",
          "text": "Latest awards: May to September 2025"
        },
        {
          "url": "http://croa.com/LINKPDF.html",
          "text": "All awards (1965 to date)"
        }
      ]
    },
    "status": "success"
  }
}

About the CROA API

Award Discovery and Retrieval

The get_awards_index endpoint returns the complete catalog of CROA awards — over 5,000 records — each with a case_number, display_text, and pdf_url. For targeted lookups, get_awards_by_range accepts start_range and end_range integer parameters and returns only awards whose case numbers fall within that inclusive range. The get_latest_awards endpoint retrieves the most recently published awards, each record including a date, description, and pdf_url.

Case-Level Detail and Text Extraction

get_award_detail accepts a plain numeric case_number (e.g. '5204') and returns the award's pdf_url, arbitrator, parties, subject, and a full_text_snippet of up to 5,000 characters extracted from the PDF when a parsing library is available. Note that suffixed case number variants such as '4881 -S' are not supported and will return an input_not_found response — only standard numeric identifiers work.

Search and Filtering

search_awards accepts a query string and returns matching results with title, url, and snippet fields via the integrated FreeFind search engine. filter_awards_by_party narrows the latest awards by a case-insensitive match on the description field, using common party abbreviations like 'CNR', 'CPKCR', or 'TCRC'.

Members and Navigation

get_members returns the list of member railway companies and unions participating in CROA, with each member's name and available contact or address details. get_home returns the site's top-level navigation structure as an array of link objects with text and url keys.

Reliability & maintenanceVerified

The CROA API is a managed, monitored endpoint for croa.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when croa.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 croa.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
4d ago
Latest check
8/8 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 a searchable database of Canadian railway labour arbitration decisions by ingesting the full awards index from get_awards_index.
  • Track recent arbitration outcomes for CN Rail or CP by running filter_awards_by_party with identifiers like 'CNR' or 'CPKCR'.
  • Analyze arbitrator workload and decision patterns by aggregating the arbitrator field across multiple get_award_detail calls.
  • Monitor newly published CROA awards by polling get_latest_awards and alerting on new case_number entries.
  • Build a case-range explorer that lets users step through specific decades of awards using get_awards_by_range with configurable start_range and end_range inputs.
  • Compile a directory of CROA member organizations with contact information using get_members for labour relations research.
  • Keyword-search awards by dispute subject — e.g. discipline, scheduling, benefits — using the query parameter in search_awards.
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 CROA provide an official developer API?+
No. CROA (croa.com) does not publish an official developer API or data feed. This Parse API provides structured programmatic access to awards, member data, and search functionality available on the site.
What does `get_award_detail` return, and are all case number formats supported?+
It returns the award's pdf_url, arbitrator, parties, subject, and a full_text_snippet of up to 5,000 characters. Only plain numeric case numbers (e.g. '100', '5204') are supported. Suffixed variants like '4881 -S' are not currently handled and will return an input_not_found response. You can fork this API on Parse and revise it to add support for suffixed case number formats.
Does `filter_awards_by_party` search the full historical awards index?+
No — it filters only the awards returned by get_latest_awards, matching against the description field. The full historical index is not searchable by party name through a dedicated endpoint. You can fork this API on Parse and revise it to add a party-filter endpoint that works across the complete awards catalog.
Is the full text of every award available through the API?+
get_award_detail returns a full_text_snippet of up to 5,000 characters when PDF text extraction is available, along with structured fields like arbitrator, parties, and subject. Full-document text extraction across all 5,000+ awards in bulk is not currently supported. You can fork this API on Parse and revise it to add a batch text-extraction endpoint.
How current are the awards returned by `get_latest_awards`?+
get_latest_awards reflects what appears on CROA's latest schedule page at the time of the request, including case_number, date, description, and pdf_url. Freshness depends on how frequently CROA updates that page — there is no guaranteed refresh interval, and the API does not cache a fixed historical snapshot.
Page content last updated . Spec covers 8 endpoints from croa.com.
Related APIs in Government PublicSee all →
cro.ie API
Access Irish company statutory filings and registration documents by browsing CRO Gazette archives and retrieving PDFs for new company registrations, annual returns, and other official filings. Find gazette issues by year and get links to the latest published documents from the Companies Registration Office.
canlii.org API
Access Canadian legal information from CanLII.org. Discover jurisdictions and databases, search case law and legislation across all provinces and territories, and retrieve full document text and metadata.
annualreports.com API
Search for and access thousands of international company annual reports in PDF and HTML formats, while filtering by ticker, exchange, industry, sector, company size, and location. Browse company profiles and financial documents across different markets and industries to find the information you need.
sedarplus.ca API
sedarplus.ca API
occrp.org API
Search and discover investigative journalism from OCCRP.org, including articles, investigations, and projects organized by section and region. Get the latest news updates and detailed information about specific investigations to stay informed on organized crime and corruption reporting.
chrobinson.com API
Search available freight loads, get real-time load board statistics, and explore C.H. Robinson's logistics services across carriers and industries. Use location autocomplete to quickly find shipping origins and destinations while discovering the full range of freight and carrier services available through the platform.
examplecourt.gov API
Search and retrieve court judgments, case details, and legal metadata from a national court reporting portal, with support for advanced filtering by court and case category. Access complete case information including full text and browse paginated results to find relevant legal precedents.
indiankanoon.org API
indiankanoon.org API