FISAPI - Pure Publications API

FIS API Documentation

Access publication and project data from the Pure research information system. Query publications and projects by organization or person with optional type filtering.

Overview

This API provides access to publication and project data stored in the FIS (Forschungsinformationssystem). You can retrieve publications and projects associated with specific organizations or persons, with optional filtering by type.

Base URL: https://fisapi.it.tum.de/

API Endpoints

GET /publications

Retrieve publications by organization or author TUM ID. When querying by organization, publications from all child organizations in the hierarchy are automatically included.

Parameters

Parameter Type Required Description
tumId string Required The TUM ID of the organization or author
by string Required Filter type: org for organization, author for author
type string Optional Filter by publication type (see available types below)

Response

{
    "orgTumId": "TUS1ABC",        // or "authorTumId" depending on 'by' parameter
    "count": 42,
    "filteredByType": "Article",  // only present if type filter was used
    "publications": [
        {
            "id": 1,
            "typeDiscriminator": "...",
            "uuid": "...",
            "pureId": 12345,
            "title": "Publication Title",
            "type": "Article",
            "publicationStatus": "published",
            "publicationDate": 20240115,
            "authors": "Author 1, Author 2",
            "doi": "10.1234/example",
            "pages": "1-10",
            "volume": "42",
            "journalTitle": "Journal Name",
            "issn": "1234-5678",
            "url": "https://portal.fis.tum.de/en/publications/..."
        }
    ]
}

Available Publication Types

Article Book Chapter Comment/debate Conference article Conference contribution Editorial Foreword/postscript Letter Paper Review article Short survey
GET /projects

Retrieve projects by organization or person TUM ID. When querying by organization, projects from all child organizations in the hierarchy are automatically included.

Parameters

Parameter Type Required Description
tumId string Required The TUM ID of the organization or person
by string Required Filter type: org for organization, person for person/author
type string Optional Filter by project type (e.g., "Research")

Response

{
    "orgTumId": "TUS1ABC",        // or "personTumId" depending on 'by' parameter
    "count": 15,
    "filteredByType": "Research", // only present if type filter was used
    "projects": [
        {
            "id": 1,
            "pureId": 12345,
            "uuid": "...",
            "title": "Project Title",
            "description": "Project description...",
            "type": "Research",
            "startDate": "2020-01-01",
            "endDate": "2023-12-31",
            "managingOrgUuid": "...",
            "url": "https://gepris.dfg.de/...",
            "portalUrl": "https://portal.fis.tum.de/en/projects/..."
        }
    ]
}

Tools

Search for organization TUM IDs by name. Enter part of the organization name to find matching entries.

Enter a search term to find organizations.

Search for author TUM IDs by name. Enter part of the author's first or last name to find matching entries.

Enter a search term to find authors.

Use these type values with the type parameter to filter publications.

Type Value Example Usage
Article /publications?by=org&tumId=...&type=Article
Book /publications?by=org&tumId=...&type=Book
Chapter /publications?by=org&tumId=...&type=Chapter
Comment/debate /publications?by=org&tumId=...&type=Comment%2Fdebate
Conference article /publications?by=org&tumId=...&type=Conference+article
Conference contribution /publications?by=org&tumId=...&type=Conference+contribution
Editorial /publications?by=org&tumId=...&type=Editorial
Foreword/postscript /publications?by=org&tumId=...&type=Foreword%2Fpostscript
Letter /publications?by=org&tumId=...&type=Letter
Paper /publications?by=org&tumId=...&type=Paper
Review article /publications?by=org&tumId=...&type=Review+article
Short survey /publications?by=org&tumId=...&type=Short+survey

Usage Examples

Get all publications by organization

GET https://fisapi.it.tum.de/publications?by=org&tumId=TUS1ABC

Get all publications by author

GET https://fisapi.it.tum.de/publications?by=author&tumId=go42tum

Get only articles by organization

GET https://fisapi.it.tum.de/publications?by=org&tumId=TUS1ABC&type=Article

Get conference papers by author

GET https://fisapi.it.tum.de/publications?by=author&tumId=go42tum&type=Conference

Get all projects by organization

GET https://fisapi.it.tum.de/projects?by=org&tumId=TUS1ABC

Get all projects by person

GET https://fisapi.it.tum.de/projects?by=person&tumId=go42tum

JavaScript Example

// Fetch publications for an organization
async function getOrgPublications(orgTumId, type = null) {
    let url = `https://fisapi.it.tum.de/publications?by=org&tumId=${orgTumId}`;
    if (type) {
        url += `&type=${encodeURIComponent(type)}`;
    }

    const response = await fetch(url);
    const data = await response.json();

    console.log(`Found ${data.count} publications`);
    return data.publications;
}

// Example usage
getOrgPublications('TUS1ABC', 'Article')
    .then(publications => {
        publications.forEach(pub => {
            console.log(`${pub.title} (${pub.publicationDate})`);
        });
    });

cURL Example

# Get all publications for an organization
curl "https://fisapi.it.tum.de/publications?by=org&tumId=TUS1ABC"

# Get only journal articles
curl "https://fisapi.it.tum.de/publications?by=org&tumId=TUS1ABC&type=Article"

# Get publications for an author
curl "https://fisapi.it.tum.de/publications?by=author&tumId=go42tum"

# Get all projects for an organization
curl "https://fisapi.it.tum.de/projects?by=org&tumId=TUS1ABC"

# Get projects for a person
curl "https://fisapi.it.tum.de/projects?by=person&tumId=go42tum"

PHP Example

// Fetch publications using PHP
function fetchPublications($tumId, $by = 'org', $type = null) {
    $baseUrl = 'https://fisapi.it.tum.de/publications';
    $params = [
        'tumId' => $tumId,
        'by' => $by
    ];

    if ($type !== null) {
        $params['type'] = $type;
    }

    $url = $baseUrl . '?' . http_build_query($params);

    $response = file_get_contents($url);
    return json_decode($response, true);
}

// Example usage
$publications = fetchPublications('TUS1ABC', 'org', 'Article');
echo "Found " . $publications['count'] . " articles\n";

foreach ($publications['publications'] as $pub) {
    echo "- " . $pub['title'] . "\n";
}

Error Responses

Status Code Error Description
400 Missing required parameter: tumId The tumId parameter was not provided
400 Missing or invalid parameter: by The by parameter must be "org" or "author" (for publications) / "org" or "person" (for projects)
404 Author/Organization/Person not found No record found with the provided TUM ID
500 Database error An internal server error occurred