{
  "api_version": "v1",
  "data_retrieved_at": null,
  "generated_at": "2026-10-01T23:43:33.261Z",
  "pagination": null,
  "sources": [
    {
      "id": "canadash-derived",
      "name": "Canadash (derived)",
      "licence": "Creative Commons Attribution 4.0",
      "licence_url": "https://creativecommons.org/licenses/by/4.0/",
      "redistribution": "open",
      "attribution": "Derived measure calculated by Canadash (canadash.com).",
      "note": "These figures are ours, not anyone's official statistics. No parliament, legislature or agency publishes them. Reuse them freely with credit, and label them as derived so your own readers are not misled."
    }
  ],
  "derived_fields": [],
  "derived_notice": null,
  "attribution_notice": "If you publish anything you took from here, credit the original publisher named in the record, not just Canadash. Where a source allows non-commercial use only, that restriction travels with the data.",
  "licence_notice": "Canadash's own derived measures, page text and the structure of these responses are offered under Creative Commons Attribution 4.0. The underlying records belong to the bodies that published them and carry their own terms, listed per response.",
  "data": {
    "name": "Canadash public API",
    "documentation": "https://canadash.com/api",
    "read_only": true,
    "authentication": null,
    "rate_limit": {
      "requests": 60,
      "window_seconds": 60,
      "note": "Counted per client address per serving instance. Exceeding it returns HTTP 429 with a retry_after_seconds value."
    },
    "endpoints": [
      {
        "path": "/api/v1/members",
        "description": "Sitting members of the House of Commons",
        "parameters": [
          "party",
          "province",
          "q",
          "limit",
          "offset"
        ]
      },
      {
        "path": "/api/v1/members/{slug}",
        "description": "One member, with membership history",
        "parameters": []
      },
      {
        "path": "/api/v1/ridings",
        "description": "Federal electoral districts, 2023 Representation Order",
        "parameters": [
          "province",
          "q",
          "limit",
          "offset"
        ]
      },
      {
        "path": "/api/v1/ridings/{fed_id}",
        "description": "One riding, with 2021 Census figures",
        "parameters": []
      },
      {
        "path": "/api/v1/ridings/{fed_id}/elections",
        "description": "Election results for one riding, actual and transposed",
        "parameters": []
      },
      {
        "path": "/api/v1/bills",
        "description": "Federal bills for a session",
        "parameters": [
          "session",
          "category",
          "status",
          "q",
          "limit",
          "offset"
        ]
      },
      {
        "path": "/api/v1/bills/{session}/{number}",
        "description": "One bill, with stages and divisions held on it",
        "parameters": []
      },
      {
        "path": "/api/v1/votes",
        "description": "Recorded divisions for a session",
        "parameters": [
          "session",
          "result",
          "bill",
          "limit",
          "offset"
        ]
      },
      {
        "path": "/api/v1/votes/{session}/{number}",
        "description": "One division, with every member's ballot",
        "parameters": []
      },
      {
        "path": "/api/v1/committees",
        "description": "House of Commons committees",
        "parameters": [
          "type",
          "q",
          "limit",
          "offset"
        ]
      },
      {
        "path": "/api/v1/committees/{acronym}",
        "description": "One committee, with its membership",
        "parameters": []
      },
      {
        "path": "/api/v1/provincial-bills",
        "description": "Bills before provincial and territorial legislatures we may redistribute",
        "parameters": [
          "province",
          "q",
          "limit",
          "offset"
        ]
      },
      {
        "path": "/api/v1/expenditures",
        "description": "Members' office expenditures by fiscal year",
        "parameters": [
          "fiscal_year",
          "limit",
          "offset"
        ]
      },
      {
        "path": "/api/v1/rankings",
        "description": "Cross-member measures, including Canadash-derived ones",
        "parameters": [
          "metric",
          "party",
          "province",
          "limit",
          "offset"
        ]
      }
    ],
    "excluded_sources": [
      {
        "id": "legislature-qc",
        "name": "Assemblée nationale du Québec",
        "covers": "Provincial bill numbers, titles, sponsors and statuses",
        "reason": "The Assembly's terms require that content not be modified or altered and bar commercial use. Restructuring a bill list into rows of a CSV or JSON is an alteration, so Quebec bills are shown on the site but are not exported and are not in the API.",
        "licence_url": "https://www.assnat.qc.ca/en/propos-site/droits-propriete-intellectuelle.html"
      },
      {
        "id": "legislature-mb",
        "name": "Legislative Assembly of Manitoba",
        "covers": "Provincial bill numbers, titles, sponsors and statuses",
        "reason": "Manitoba's terms permit non-commercial use only and require that material remain unaltered. As with Quebec, a restructured data feed is an alteration, so Manitoba bills are shown on the site but are not exported and are not in the API.",
        "licence_url": "https://www.gov.mb.ca/legislature/copyright.html"
      },
      {
        "id": "elections-canada-contributions",
        "name": "Elections Canada — political contributions",
        "covers": "Named individual contributions to campaigns and associations",
        "reason": "Contribution records name private individuals and are published for statutory purposes under the Canada Elections Act. We show them per member on the site, where the source intends them to be read, but we do not hand them out in bulk: no donor data in any export or API response.",
        "licence_url": "https://www.elections.ca/content.aspx?section=fin&lang=e"
      },
      {
        "id": "represent",
        "name": "Represent (Open North)",
        "covers": "Postal-code lookups, boundaries and municipal representatives",
        "reason": "Represent is a small non-profit service with rate limits and no published reuse licence, and re-serving its representative lists in bulk would put our traffic on top of theirs. Municipal representatives and postal-code lookups are therefore not exported and not in the API — use Represent directly.",
        "licence_url": "https://represent.opennorth.ca/api/"
      }
    ]
  }
}