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.
FWF Open API: Sample Queries
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:
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:
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:
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.
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.”
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”:
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 -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}]}'
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
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'];