--- name: Erasmus University Rotterdam description: Erasmus University Rotterdam public developer/API footprint review for APIs.json cataloging. url: https://raw.githubusercontent.com/api-evangelist/erasmus-university-rotterdam/refs/heads/main/review.yml created: '2026-06-03' modified: '2026-08-30' reviews: - date: '2026-08-30' rating: 2 method: pipeline-university summary: >- Re-profiled under the API Evangelist university pipeline, which settles WHO OPERATES a surface before crediting it to the institution. The 2026-06-03 review above is superseded in one respect and corrected in two others, and is kept for the record. SUPERSEDED: the "EUR research data repository hosted on Figshare, accessible via the public Figshare v2 REST API" was not an EUR API. api.figshare.com/v2 is the generic host every Figshare customer shares — twenty-five universities in this cohort claimed it — and the ten OpenAPI contracts saved here from it, plus 41 artifacts derived from them, have been removed (51 files). The relationship itself has also ended: Erasmus University Library moved the EUR Data Repository to DataverseNL, hosted by DANS, on 30 October 2025, and datarepository.eur.nl now returns NXDOMAIN rather than merely failing to resolve from one probe host. CORRECTED: https://pure.eur.nl/ws/oai?verb=Identify no longer returns 500 — it answers 200 with the OpenAIRE CERIF-XML 1.2 profile and can be harvested. CORRECTED: the June review found no course/timetable/SIS or identity APIs; both exist as tenancies (Caci OSIRIS at eur.osiris-student.nl, and a SURFconext/eduGAIN identity-provider registration), and EUR also runs a Kong API gateway of its own at api.eur.nl that the June pass did not probe. The rating is unchanged at 2: removing someone else's contracts lowers the artifact count but the underlying footprint — one keyless institution-operated OAI-PMH endpoint, one closed gateway, five tenancies, no published contract of any kind — is what it always was. endpoints: - url: https://repub.eur.nl/oai?verb=Identify status: 200 note: >- Institution-operated. repub.eur.nl -> bib-app01.ubib.eur.nl -> 145.5.2.24, no vendor CNAME; adminEmail opdecoul@ubib.eur.nl and vanhuisstede@ubib.eur.nl. - url: https://repub.eur.nl/oai?verb=ListSets status: 200 note: Two configured sets — openaire, nwo. Evidence of configuration, not a default install. - url: https://repub.eur.nl/oai?verb=BadVerb status: 200 note: >- Deliberate error probe. Returns inside a 200 envelope — a harvester branching on HTTP status alone reads every failure as a success. - url: https://api.eur.nl/ status: 401 note: >- Institution-operated Kong API gateway (api.eur.nl -> api2.eur.nl -> 145.5.1.16). WWW-Authenticate: Basic realm="kong". Not found by the June pass. - url: https://api.eur.nl/openapi.json status: 404 note: Kong "no Route matched with those values". No contract exposed publicly. - url: https://pure.eur.nl/ws/oai?verb=Identify status: 200 note: >- Corrects the June 500. Tenant — pure.eur.nl is a CNAME to erasmus.elsevierpure.com; Identify adminEmail purehosted@elsevier.com; OpenAIRE CERIF 1.2 profile declared. - url: https://pure.eur.nl/ws/api/524/openapi.json status: 401 note: Elsevier Pure Web Service API, key-gated per integration. Vendor contract, not saved here. - url: https://dataverse.nl/dataverse/eur status: 200 note: >- The EUR Data Repository as of 30 October 2025. Tenant on DataverseNL, operated by DANS. The dataverse.nl API is behind an Anubis proof-of-work bot challenge. - url: https://datarepository.eur.nl/ status: 0 note: NXDOMAIN. The Figshare-era hostname no longer exists. - url: https://canvas.eur.nl/api/lti/security/jwks status: 200 note: Live LTI 1.3 platform keyset. Tenant — canvas.eur.nl -> EUR-vanity.instructure.com. - url: https://canvas.eur.nl/api/v1/courses status: 401 note: '{"status":"unauthenticated","errors":[{"message":"user authorisation required"}]}' - url: https://eur.osiris-student.nl/student/osiris/student/cursussen/zoeken status: 500 note: >- POST returns a structured OSIRIS Link JSON envelope with an exchange-id — a live course-catalogue API behind Caci's request shape. GET the same path returns 405. The public SPA at courses.eur.nl 200s with no data, so link presence proves nothing. - url: https://metadata.surfconext.nl/idps-metadata.xml status: 200 note: >- EUR registered as a SURFconext identity provider, entityID https://sts.windows.net/715902d6-f63e-4b8d-929b-4bb170bad492/, ten shibmd:Scope declarations. Tenant — Microsoft Entra IdP behind SURF's proxy. - url: https://api.datacite.org/providers/dhcm status: 200 note: >- DataCite member DHCM "Erasmus University Library", ROR 057w15z03, one client (delft.eur), 3,722 DOIs minted. Institution-operated, machine-readable, keyless. - url: https://api.crossref.org/members?query=erasmus+university+rotterdam status: 200 note: message.total-results = 0. EUR holds no Crossref membership. - url: https://www.eur.nl/.well-known/security.txt status: 200 note: Live RFC 9116. Contact mailto:cert@eur.nl, Expires 2026-12-07. - url: https://status.eur.nl/ status: 200 note: 'EUR status page on Netlify. No JSON feed: /api/v2/status.json and /index.json 404.' - url: https://www.eur.nl/llms.txt status: 404 note: Soft 404 — "Pagina niet gevonden", 146,268 bytes of HTML under a 404 status. - url: https://github.com/eur-nl status: 200 note: >- Official GitHub org, 19 public repos — Erasmus research-services training material (R, LaTeX, Matlab, tidyverse workshops). No API specifications. - date: '2026-06-03' rating: 2 summary: >- Erasmus University Rotterdam has no consolidated public developer portal. Its programmatic surface is research/scholarly infrastructure. The RePub OAI-PMH feed was verified live, returning valid OAI-PMH 2.0 XML self-identifying as "Erasmus University OAIPMH Feed". The Pure research portal resolves but its OAI service path returned HTTP 500 on the Identify verb, so it is listed but flagged for re-verification. The EUR research data repository is hosted on Figshare and accessible via the public Figshare v2 REST API. The official eur-nl GitHub org exists (18 repos). No course/timetable/SIS, identity, or mobile-backend APIs were found publicly documented. No endpoints were fabricated; only confirmed URLs are listed. endpoints: - url: https://repub.eur.nl/oai?verb=Identify status: 200 note: Live OAI-PMH 2.0 feed; repositoryName "Erasmus University OAIPMH Feed". - url: https://pure.eur.nl/ status: 200 note: Pure (CRIS) research portal web front end resolves. - url: https://pure.eur.nl/ws/oai?verb=Identify status: 500 note: OAI service path resolves but Identify verb returned 500; re-verify before harvesting. - url: https://datarepository.eur.nl/ status: 0 note: Figshare-hosted data repository; custom domain did not resolve from probe host. - url: https://api.figshare.com/v2/articles status: 200 note: Public Figshare v2 REST API used to access the EUR data repository. - url: https://docs.figshare.com/ status: 200 note: Figshare API documentation. - url: https://github.com/eur-nl status: 200 note: Official Erasmus University Rotterdam GitHub org (18 repositories). - url: https://www.eur.nl/en status: 200 note: Official university website. - url: https://repub.eur.nl/ status: 200 note: RePub institutional repository web front end.