The FWF Open API provides access to information on thousands of FWF-funded basic research projects, updated daily. Data from the Research Radar page such as people, project data, or research output are included in the interface. The service is aimed at interested developers and information services of universities and non-university research institutions.

The FWF Open API is based on Meilisearch. Comprehensive documentation is available in the Meilisearch API documentation. The key for read access to the API is available here: FWF Open API Key.

Project queries

All project information can be found in the “projects” index. To query these projects without further search restrictions, they can be queried in batches. The batch size can be set using the “limit” parameter and the start element with “offset.” For example, to query 1000 projects starting with the 2001st project, “limit” would have to be set to 1000 and “offset” to 2000:

 

cURL

cURL

curl -X GET 'https://openapi.fwf.ac.at/indexes/projects/documents?limit=1000&offset=2000' -H 'Authorization: Bearer <FWF Open API Key>'

 

Python

Python

import meilisearch

client = meilisearch.Client('https://openapi.fwf.ac.at', '<FWF Open API Key>')

batch = client.index('projects').get_documents({'limit':1000, 'offset': 2000})

projects = [dict(proj) for proj in batch.results]

JavaScript

JavaScript

const { Meilisearch } = require("meilisearch");

const client = new Meilisearch({host: "https://openapi.fwf.ac.at", apiKey: "<FWF Open API Key>",});

const batch = await client.index('projects').getDocuments({limit: 1000, offset: 2000})

const projects = batch.results;

PHP

PHP

<?php

require_once __DIR__ . '/vendor/autoload.php';

use Meilisearch\Client;

use Meilisearch\Contracts\DocumentsQuery;

$client = new Client('https://openapi.fwf.ac.at', '<FWF Open API Key>');

$projects = $client->index('projects')->getDocuments((new DocumentsQuery())->setOffset(2000)->setLimit(1000))->getResults();

Research output query

Research output can be queried in the same way as the projects. This is located in the “output” index. If you want to query the 200 entries from the 301st entry onwards, you can query the output as follows, for example:

 

cURL

cURL

curl -X GET 'https://openapi.fwf.ac.at/indexes/output/documents?limit=200&offset=300' -H 'Authorization: Bearer <FWF Open API Key>'

 

Python

Python

import meilisearch

client = meilisearch.Client('https://openapi.fwf.ac.at', '<FWF Open API Key>')

batch = client.index('output').get_documents({'limit':200, 'offset': 300})

output = [dict(out) for out in batch.results]

JavaScript

JavaScript

const { Meilisearch } = require("meilisearch");

const client = new Meilisearch({host: "https://openapi.fwf.ac.at", apiKey: "<FWF Open API Key>",});

const batch = await client.index('output').getDocuments({limit: 200, offset: 300})

const output = batch.results;

PHP

PHP

<?php

require_once __DIR__ . '/vendor/autoload.php';

use Meilisearch\Client;

use Meilisearch\Contracts\DocumentsQuery;

$client = new Client('https://openapi.fwf.ac.at', '<FWF Open API Key>');

$output = $client->index('output')->getDocuments((new DocumentsQuery())->setOffset(300)->setLimit(200))->getResults();

Further funding queries

Further funding from the FWF or other organizations in relation to the respective project can be found in the “further-funding” index. This can also be queried by specifying the “limit” and “offset” parameters. If “limit” is set to 100 and “offset” to 200, 100 further fundings are queried, starting at the 201st entry:

 

cURL

cURL

curl -X GET 'https://openapi.fwf.ac.at/indexes/further-funding/documents?limit=100&offset=200' -H 'Authorization: Bearer <FWF Open API Key>'

 

Python

Python

import meilisearch

client = meilisearch.Client('https://openapi.fwf.ac.at', '<FWF Open API Key>')

batch = client.index('further-funding').get_documents({'limit':100, 'offset': 200})

funding = [dict(fun) for fun in batch.results]

JavaScript

JavaScript

const { Meilisearch } = require("meilisearch");

const client = new Meilisearch({host: "https://openapi.fwf.ac.at", apiKey: "<FWF Open API Key>",});

const batch = await client.index('further-funding').getDocuments({limit: 100, offset: 200})

const funding = batch.results;

PHP

PHP

<?php

require_once __DIR__ . '/vendor/autoload.php';

use Meilisearch\Client;

use Meilisearch\Contracts\DocumentsQuery;

$client = new Client('https://openapi.fwf.ac.at', '<FWF Open API Key>');

$funding = $client->index('further-funding')->getDocuments((new DocumentsQuery())->setOffset(200)->setLimit(100))->getResults();

Individual project queries

To query a specific project, you can search for the grant DOI of the project in the “projects” index. As the Meilisearch search is set by default to return not only exact hits, but also to allow small deviations from the searched text, you will need to put the grant DOI in quotation marks to ensure that only exact hits are returned.

Below you will find the query for the DOC32 project. To query a different project, you can simply replace “DOC32” with the desired FWF ID.

cURL

cURL

curl -X POST 'https://openapi.fwf.ac.at/indexes/projects/search' -H 'Content-Type: application/json' -H 'Authorization: Bearer <FWF Open API Key>' --data-binary '{"q": "\"10.55776/DOC32\""}'

 

Python

Python

import meilisearch

client = meilisearch.Client('https://openapi.fwf.ac.at', '<FWF Open API Key>')

project = client.index('projects').search('\"10.55776/DOC32\"')

JavaScript

JavaScript

const { Meilisearch } = require("meilisearch");

const client = new Meilisearch({host: "https://openapi.fwf.ac.at", apiKey: "<FWF Open API Key>",});

const project = await client.index("projects").search("\"10.55776/DOC32\"");

PHP

PHP

<?php

require_once __DIR__ . '/vendor/autoload.php';

use Meilisearch\Client;

$client = new Client('https://openapi.fwf.ac.at', '<FWF Open API Key>');

$project = $client->index('projects')->search('\"10.55776/DOC32\")->getHits();

Keyword query of all projects

You can also search for all projects that contain a specific keyword in the project title, PR proposal summary, discipline, or one of the other fields. To do this, you need to search for the desired word in the “projects” index, for example “open access.”

 

cURL

cURL

curl -X POST 'https://openapi.fwf.ac.at/indexes/projects/search' -H 'Content-Type: application/json' -H 'Authorization: Bearer <FWF Open API Key>' --data-binary '{"q": "\"open-access\"", "limit": 1000}'

 

Python

Python

import meilisearch

client = meilisearch.Client('https://openapi.fwf.ac.at', '<FWF Open API Key>')

projects = client.index('projects').search('\"open-access\"', {'limit':1000})

JavaScript

JavaScript

const { Meilisearch } = require("meilisearch");

const client = new Meilisearch({host: "https://openapi.fwf.ac.at", apiKey: "<FWF Open API Key>",});

const projects = await client.index("projects").search("\"open-access\"", limit=1000);

PHP

PHP

<?php

require_once __DIR__ . '/vendor/autoload.php';

use Meilisearch\Client;

$client = new Client('https://openapi.fwf.ac.at', '<FWF Open API Key>');

$projects = $client->index('projects')->search('\"open-access\"', ['limit'=>1000])->getHits();

Query all projects from one research institution

To identify all projects associated with a particular research institution, the “projects” index can be searched by the name of the research institution, for example “Medizinische Universität Wien”:

 

cURL

cURL

curl -X POST 'https://openapi.fwf.ac.at/indexes/projects/search' -H 'Content-Type: application/json' -H 'Authorization: Bearer <FWF Open API Key>' --data-binary '{"q": "\"Medizinische Universit\u00e4t Wien\"", "limit": 1000}'

 

Python

Python

import meilisearch

client = meilisearch.Client('https://openapi.fwf.ac.at', '<FWF Open API Key>')

projects = client.index('projects').search('\"Medizinische Universität Wien\"', {'limit':1000})

JavaScript

JavaScript

const { Meilisearch } = require("meilisearch");

const client = new Meilisearch({host: "https://openapi.fwf.ac.at", apiKey: "<FWF Open API Key>",});

const projects = await client.index("projects").search("\"Medizinische Universit\u00e4t Wien\"", limit=1000);

PHP

PHP

<?php

require_once __DIR__ . '/vendor/autoload.php';

use Meilisearch\Client;

$client = new Client('https://openapi.fwf.ac.at', '<FWF Open API Key>');

$projects = $client->index('projects')->search('\"Medizinische Universität Wien\"', ['limit'=>1000])->getHits();

This query searches all fields for the research institution indicated. To identify only those projects that are linked to the research institution in a certain way, the results must then be filtered further.

As not all fields are available in both German and English, queries with the institutions’ German names are likely to result in more hits.

Output and further funding queries

The research output of a project can be found in the “output” index, further funding in relation to the respective project in the “further-funding” index. To identify both, search these indices for the project ID in the API. This ID is always created as “project-<FWF-id>” from the FWF ID. For example, if you are interested in the output and further funding of the DOC32 project, you would search for “project-DOC32”:

 

cURL

cURL

curl -X POST 'https://openapi.fwf.ac.at/multi-search' -H 'Content-Type: application/json' -H 'Authorization: Bearer <FWF Open API Key>' --data-binary '{"queries": [{"indexUid": "output", "q": "\"project-DOC32\"", "limit": 1000}, {"indexUid": "further-funding", "q": "\"project-DOC32\"", "limit": 1000}]}'

 

Python

Python

import meilisearch

client = meilisearch.Client('https://openapi.fwf.ac.at', '<FWF Open API Key>')

output, funding = client.multi_search([{"indexUid": "output", "q": "\"project-DOC32\"", "limit": 1000}, {"indexUid": "further-funding", "q": "\"project-DOC32\"", "limit": 1000}])['results']

JavaScript

JavaScript

const { Meilisearch } = require("meilisearch");

const client = new Meilisearch({host: "https://openapi.fwf.ac.at", apiKey: "<FWF Open API Key>",});

const results = await client.multiSearch({queries: [{indexUid: "output", q: "\"project-DOC32\"", limit: 1000}, {indexUid: "further-funding", q: "\"project-DOC32\"", limit: 1000}]})

const [output, funding] = results.results;

PHP

PHP

<?php

require_once __DIR__ . '/vendor/autoload.php';

use Meilisearch\Client;

use Meilisearch\Contracts\SearchQuery;

$client = new Client('https://openapi.fwf.ac.at', '<FWF Open API Key>');

[$out, $fun] = $client->multiSearch([

(new SearchQuery())->setIndexUid('output')->setQuery('\”project-DOC32\”')->setLimit(1000),

(new SearchQuery())->setIndexUid('output')->setQuery('\”project-DOC32\”')->setLimit(1000),

])['results'];

$output = $out['hits'];

$funding = $fun['hits'];

Support

If you have any questions about the FWF Open API, please contact: openapi(at)fwf.ac.at

Scroll to the top