Interface for programs (API)

ResearchRadar also hands its whole directory over machine-readable, as JSON. The addresses below return the same entries the website shows, and the filter words they know mean exactly what the filter buttons there mean. Which words an address knows is listed with it; there is no free-text search here.

This is meant for programs rather than readers: for the page of a research office, say, that shows the next psychology submission deadlines by itself.

Terms

Base address

https://researchradar.at/api/v1

Every address below sits under this base. Answers are application/json in UTF-8.

Shape of an answer

Every answer has two parts: meta describes the answer itself, data is the list of entries.

{
  "meta": {
    "generated_at": "2026-08-02T06:20:11+02:00",
    "count": 61,
    "version": "1.84",
    "source": "https://researchradar.at"
  },
  "data": [ … ]
}

The addresses

Several values are separated by a comma. A value that is not in the list is dropped without a word — the answer stays valid, the filter simply does not bite. A query word the address does not know is passed over the same way.

GET /api/v1/grants

The funding directory: every programme with its deadline, amount, target group, discipline and source.

With no parameters you get the whole directory except the discontinued programmes. Unlike the website, the interface does not narrow to Austria by itself.

Query parameters

Fields per entry

id, institution_id, name, name_en, description_de, description_en, website, application_url, amount_range, target_group_de, target_group_en, career_stages, deadline_info_de, deadline_info_en, deadline_dates, deadline_rolling, disciplines, eligibility_countries, discipline_note_de, discipline_note_en, tags, mobility, first_seen, source_checked, status, funding_category

Example

curl 'https://researchradar.at/api/v1/grants?disciplines=psychology&status=open,rolling'

Answer, abridged

{
  "meta": { … },
  "data": [
    {
      "id": "fwf-esprit",
      "institution_id": "fwf",
      "name": "ESPRIT-Programm",
      "name_en": "ESPRIT Programme",
      "website": "https://www.fwf.ac.at/foerdern/…/esprit",
      "career_stages": ["R2"],
      "deadline_rolling": true,
      "deadline_dates": [],
      "disciplines": ["all"],
      "eligibility_countries": ["AT"],
      "status": "active",
      "funding_category": "research",
      "source_checked": "2026-07-30",
      …
    }
  ]
}

GET /api/v1/conferences

The conference directory: events with their place, their dates and the deadline for submissions.

With no parameters you get every conference, the ones that are over included — the website hides those. They come sorted by the state of the submission deadline, in the order of the values below, then by that date, earliest first: the deadline, or the start of the event where there is none. In the buckets whose calls have closed that means oldest first.

Query parameters

Fields per entry

id, source_id, organiser_id, name, name_en, website, event_start, event_end, city, country, cfp_deadline, registration_deadline, submission_type_de, submission_type_en, disciplines, discipline_note_de, discipline_note_en, first_seen, source_checked

Example

curl 'https://researchradar.at/api/v1/conferences?status=cfp_open'

Answer, abridged

{
  "meta": { … },
  "data": [
    {
      "id": "boep-avm-tagung-2026",
      "organiser_id": "boep",
      "name": "28. wissenschaftliche Tagung der AVM",
      "website": "https://www.boep.or.at/veranstaltungen/…",
      "event_start": "2026-10-22",
      "event_end": "2026-10-25",
      "city": "St. Georgen am Längsee",
      "cfp_deadline": "2026-08-31",
      "disciplines": ["psychology"],
      …
    }
  ]
}

GET /api/v1/organizations

Funders and conference organisers in one registry, each with the organization's whole record.

No parameters, and always complete. Every record carries at least the fields below — except name_en, which is there only where the organization has an English name. Some records carry extra fields whose name begins with an underscore; those are internal notes on where a statement came from.

Query parameters

This address takes no query parameters.

Fields per entry

id, name, name_en, short_name, type, country, website, description_de, description_en

Example

curl 'https://researchradar.at/api/v1/organizations'

Answer, abridged

{
  "meta": { … },
  "data": [
    {
      "id": "fwf",
      "name": "FWF – Fonds zur Förderung der wissenschaftlichen Forschung",
      "short_name": "FWF",
      "type": "federal",
      "country": "AT",
      "website": "https://www.fwf.ac.at",
      …
    }
  ]
}

GET /api/v1/findings

What the daily check found new on the funders' own pages, newest first.

A find is a title with an address, not a directory entry — the directory itself is at /grants.

Query parameters

Most finds per answer: 100

Fields per entry

source, source_name, id, title, url, found_at

Example

curl 'https://researchradar.at/api/v1/findings?sources=fwf'

Answer, abridged

{
  "meta": { … },
  "data": [
    {
      "source": "fwf",
      "source_name": "FWF",
      "id": "esprit-2026",
      "title": "ESPRIT – Ausschreibung 2026",
      "url": "https://www.fwf.ac.at/…/esprit",
      "found_at": "2026-07-31T06:17:04+02:00"
    }
  ]
}

One worked case

The next psychology submission deadlines for a page of your own: programmes in psychology, entries open to every subject included, whose deadline is still ahead.

curl 'https://researchradar.at/api/v1/grants?disciplines=psychology&status=open'

/grants does not sort — the answer comes in the directory's own order. To get the next five, the calling program takes the earliest date in deadline_dates that has not passed and sorts on that.

Caching and embedding

The limit

Requests are counted per calling address in a rolling window, across all the addresses of the interface together. Above that you get 429, with the header Retry-After giving the seconds until the next try.

Errors

HTTP/1.1 404 Not Found
Content-Type: application/json; charset=utf-8

{"error": "not found"}

Replaced addresses

Two addresses have been replaced by a newer one and still answer — an address once published is not taken away here. Their meta block carries the extra field deprecated with a sentence naming the new address.

Where the data comes from

Every field of every directory entry comes from the fetched page of its source — the funder's page for a programme, the organiser's for a conference. Where that page states nothing, the field stays empty. Grants and conferences also carry source_checked, when the fields were last compared against that page, and first_seen, when the entry entered the directory.

What this directory is