PHAIDRA relationships API (University of Vienna)

Requests for adding and removing object relationships

Operations 11

GET /collection/{pid}/members Get pids of collection members.
GET /collection/{pid}/descendants Returns descendants of collection.
POST /collection/{pid}/members/remove Remove collection members.
POST /collection/{pid}/members/add Add collection members.
POST /collection/{pid}/members/order Orders collection members
POST /collection/{pid}/members/{itempid}/order/{position} Changes order of single member.
POST /container/{pid}/members/order Orders members of a container.
POST /container/{pid}/members/{itempid}/order/{position} Changes order of single member.
GET /object/{pid}/related Get related objects.
POST /object/{pid}/relationship/add Add a relationship.
POST /object/{pid}/relationship/remove Remove a relationship from RELS-EXT.

Documentation

Specifications

Schemas & Data

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/university-of-vienna-relationships-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

university-of-vienna-relationships-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: PHAIDRA datastream Relationships API
  version: '3.0'
  description: Documentation of the PHAIDRA API.
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  x-provenance:
    generated: '2026-08-30'
    method: searched
    source: >-
      PHAIDRA API v3.0, published Apache 2.0 by the PHAIDRA project (github.com/phaidra/phaidra-api, public/docs/openapi.json), the platform the University of Vienna authors and hosts. Pristine copy at
      openapi/_original/university-of-vienna-phaidra-api.yaml.
    x-operator: institution
    note: >-
      Split from the source contract by refine-openapis; servers[] re-based to the live production host on 2026-08-30 (see servers[].description).
servers:
- url: https://phaidra.univie.ac.at/api/
  description: University of Vienna PHAIDRA (current production base, re3data r3d100010472, verified 2026-08-30)
- description: RETIRED — returns HTTP 200 with a zero-length body on every path (soft-200), verified 2026-08-30
  url: https://services.phaidra.univie.ac.at/api/
- description: PHAIDRA Sandbox — connection timed out on probe 2026-08-30
  url: https://sandbox.phaidra.org/api/
tags:
- name: relationships
  description: Requests for adding and removing object relationships
paths:
  /collection/{pid}/members:
    get:
      summary: Get pids of collection members.
      description: 'Returns the pids of the members of a collection. '
      tags:
      - relationships
      parameters:
      - in: path
        name: pid
        schema:
          type: string
          required: false
        description: pid
      responses:
        '200':
          description: members (ordered if the COLLECTIONORDER datastream is available).
          content:
            application/json:
              schema:
                type: object
                properties:
                  alerts:
                    type: array
                    items:
                      type: object
                      properties:
                        msg:
                          type: string
                        type:
                          type: string
                  metadata:
                    type: object
                    properties:
                      members:
                        type: object
                        properties:
                          pid:
                            type: string
                          pos:
                            type: string
  /collection/{pid}/descendants:
    get:
      description: Get descendants.
      summary: Returns descendants of collection.
      tags:
      - relationships
      parameters:
      - in: path
        name: pid
        schema:
          type: string
          required: false
        description: collection pid
      responses:
        '200':
          description: descendants
          content:
            application/json:
              schema:
                type: object
                properties:
                  alerts:
                    type: array
                    items:
                      type: object
                      properties:
                        msg:
                          type: string
                        type:
                          type: string
                  descendants:
                    $ref: '#/components/schemas/collection'
  /collection/{pid}/members/remove:
    post:
      summary: Remove collection members.
      tags:
      - relationships
      security:
      - basicAuth: []
      parameters:
      - in: path
        name: pid
        schema:
          type: string
          required: false
        description: pid
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                metadata:
                  type: object
                  properties:
                    members:
                      $ref: '#/components/schemas/members'
                  description: Should contain 'members' with an array of members to remove (see [collection members 
                    example](https://github.com/phaidra/phaidra-api/wiki/Collection-members-json-structure)).
      responses:
        '200':
          description: collection members removed.
          content:
            application/json:
              schema:
                type: object
                properties:
                  alerts:
                    type: array
                    items:
                      type: object
                      properties:
                        msg:
                          type: string
                        type:
                          type: string
                  metadata:
                    type: object
                    properties:
                      members:
                        type: object
                        properties:
                          pid:
                            type: string
                          pos:
                            type: string
  /collection/{pid}/members/add:
    post:
      summary: Add collection members.
      tags:
      - relationships
      security:
      - basicAuth: []
      parameters:
      - in: path
        name: pid
        schema:
          type: string
          required: true
        description: collection pid
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                metadata:
                  type: object
                  properties:
                    members:
                      $ref: '#/components/schemas/members'
                  description: Should contain 'members' with an array of members to add (see [collection members 
                    example](https://github.com/phaidra/phaidra-api/wiki/Collection-members-json-structure)).
      responses:
        '200':
          description: collection members added.
          content:
            application/json:
              schema:
                type: object
                properties:
                  alerts:
                    type: array
                    items:
                      type: object
                      properties:
                        msg:
                          type: string
                        type:
                          type: string
                  metadata:
                    type: object
                    properties:
                      members:
                        type: object
                        properties:
                          pid:
                            type: string
                          pos:
                            type: string
  /collection/{pid}/members/order:
    post:
      summary: Orders collection members
      tags:
      - relationships
      security:
      - basicAuth: []
      parameters:
      - in: path
        name: pid
        schema:
          type: string
          required: true
        description: collection pid
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                metadata:
                  type: object
                  properties:
                    members:
                      $ref: '#/components/schemas/members'
                  description: Should contain 'members' with an array of members to order, with positions defined (see [collection members 
                    example](https://github.com/phaidra/phaidra-api/wiki/Collection-members-json-structure)).
      responses:
        '200':
          description: collection members ordered.
          content:
            application/json:
              schema:
                type: object
                properties:
                  alerts:
                    type: array
                    items:
                      type: object
                      properties:
                        msg:
                          type: string
                        type:
                          type: string
                  metadata:
                    type: object
                    properties:
                      members:
                        type: object
                        properties:
                          pid:
                            type: string
                          pos:
                            type: string
  /collection/{pid}/members/{itempid}/order/{position}:
    post:
      summary: Changes order of single member.
      description: Changes order of a single collection member.
      tags:
      - relationships
      security:
      - basicAuth: []
      parameters:
      - in: path
        name: pid
        schema:
          type: string
          required: true
        description: collection pid
      - in: path
        name: itempid
        schema:
          type: string
          required: true
        description: member pid
      - in: path
        name: position
        schema:
          type: string
          required: true
        description: position
      responses:
        '200':
          description: order changed
          content:
            application/json:
              schema:
                type: object
                properties:
                  alerts:
                    type: array
                  status:
                    type: string
  /container/{pid}/members/order:
    post:
      summary: Orders members of a container.
      tags:
      - relationships
      security:
      - basicAuth: []
      parameters:
      - in: path
        name: pid
        schema:
          type: string
          required: true
        description: container pid
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                metadata:
                  type: object
                  properties:
                    members:
                      $ref: '#/components/schemas/members'
                  description: Should contain 'members' with an array of members to order (similar to collections, see [collection members 
                    example](https://github.com/phaidra/phaidra-api/wiki/Collection-members-json-structure) with positions defined
      responses:
        '200':
          description: container members ordered
          content:
            application/json:
              schema:
                type: object
                properties:
                  alerts:
                    type: array
                    items:
                      type: object
                      properties:
                        msg:
                          type: string
                        type:
                          type: string
                  metadata:
                    type: object
                    properties:
                      members:
                        type: object
                        properties:
                          pid:
                            type: string
                          pos:
                            type: string
  /container/{pid}/members/{itempid}/order/{position}:
    post:
      summary: Changes order of single member.
      description: Changes order of a single container member.
      tags:
      - relationships
      security:
      - basicAuth: []
      parameters:
      - in: path
        name: pid
        schema:
          type: string
          required: true
        description: container pid
      - in: path
        name: itempid
        schema:
          type: string
          required: true
        description: member pid
      - in: path
        name: position
        schema:
          type: string
          required: true
        description: position
      responses:
        '200':
          description: order changed
          content:
            application/json:
              schema:
                type: object
                properties:
                  alerts:
                    type: array
                  status:
                    type: string
  /object/{pid}/related:
    get:
      summary: Get related objects.
      description: This method returns all objects which are in some relation to the object specified in URL.
      tags:
      - relationships
      parameters:
      - in: path
        name: pid
        schema:
          type: string
          required: true
        description: the requested object id
      - in: query
        name: relation
        schema:
          type: string
          enum:
          - http://pcdm.org/models#hasMember
          - http://purl.org/dc/terms/references
          - http://phaidra.org/ontology/isInAdminSet
          - http://phaidra.org/XML/V1.0/relations#isBackSideOf
          - http://phaidra.univie.ac.at/XML/V1.0/relations#hasSuccessor
          - http://phaidra.org/XML/V1.0/relations#isAlternativeFormatOf
          - http://phaidra.org/XML/V1.0/relations#isAlternativeVersionOf
          - http://phaidra.org/XML/V1.0/relations#isThumbnailFor
          required: false
        description: Specifies the relation which should be returned, see [relations](https://github.com/phaidra/phaidra-api/wiki/Relations)
      - in: query
        name: from
        schema:
          type: number
          required: false
        description: nr of entries to skip (paging)
      - in: query
        name: limit
        schema:
          type: number
          required: false
        description: nr of entries to return (paging)
      - in: query
        name: right
        schema:
          type: number
          required: false
          enum:
          - 0
          - 1
        description: 'searches for the relation in opposite direction (e.g. for `hasCollectionMember`: 0 will return a list of objects which are members of this object/collection, 1 will return a list of
          objects/collections where the object is a member)'
      - in: query
        name: fields
        schema:
          type: string
          required: false
        description: fields from the index which should be returned. Only works for `fields=dc.description`. The title field is returned by default. Preferred title and description fields are the 
          English ones.
      responses:
        '200':
          description: The requested objects Dublin Core datastream.
          content:
            application/json:
              schema:
                type: object
                properties:
                  alerts:
                    type: array
                    items:
                      type: object
                      properties:
                        msg:
                          type: string
                        type:
                          type: string
                  hits:
                    type: number
                  objects:
                    type: array
                    items:
                      type: object
                      properties:
                        cmodel:
                          type: string
                        pid:
                          type: string
                        title:
                          type: string
                        titles:
                          type: array
                          items:
                            type: object
                            properties:
                              lang:
                                type: string
                              text:
                                type: string
                  status:
                    type: string
        '404':
          description: object has not been found
          content:
            application/json:
              schema:
                type: object
  /object/{pid}/relationship/add:
    post:
      summary: Add a relationship.
      description: Add a triple. It is then available in the triplestore and indexed automatically. Adding some system relationships (like hasModel) might be restricted. See the [list of supported 
        relationships](https://github.com/phaidra/phaidra-api/wiki/Relations).
      tags:
      - relationships
      security:
      - basicAuth: []
      parameters:
      - in: path
        name: pid
        schema:
          type: string
          required: true
        description: object id
      - in: query
        name: predicate
        schema:
          type: string
          required: true
        description: the relationship [list of supported relationships](https://github.com/phaidra/phaidra-api/wiki/Relations)
        examples:
          hasModel:
            value: info:fedora/fedora-system:def/model#hasModel
            summary: hasModel relationship
          hasCollectionMember:
            value: info:fedora/fedora-system:def/relations-external#hasCollectionMember
            summary: hasCollectionMember
          isThumbnailFor:
            value: http://phaidra.org/XML/V1.0/relations#isThumbnailFor
            summary: isThumbnailFor
      - in: query
        name: object
        schema:
          type: string
          required: false
        examples:
          Page:
            value: info:fedora/cmodel:Page
            summary: Page model
          Picture:
            value: info:fedora/cmodel:Picture
            summary: Picture Model
        description: the model of the related object in the repository. A list of possible content models is found [here](https://github.com/phaidra/phaidra-api/wiki/Creating-a-simple-object)
      responses:
        '200':
          description: relationship added
          content:
            application/json:
              schema:
                type: object
                properties:
                  alerts:
                    type: array
                    items:
                      type: object
                      properties:
                        msg:
                          type: string
                        type:
                          type: string
                  status:
                    type: string
        '404':
          description: Failed to fetch data
          content:
            application/json:
              schema:
                type: object
  /object/{pid}/relationship/remove:
    post:
      summary: Remove a relationship from RELS-EXT.
      description: Remove a relationship from the RELS-EXT datastream. Removing some [system relationships](https://github.com/phaidra/phaidra-api/wiki/Relations) (like hasModel) might be restricted.
      tags:
      - relationships
      security:
      - basicAuth: []
      parameters:
      - in: path
        name: pid
        schema:
          type: string
          required: true
        description: the requested object id
      - in: query
        name: predicate
        schema:
          type: string
          required: true
        description: the relationship [list of supported relationships](https://github.com/phaidra/phaidra-api/wiki/Relations)
        examples:
          hasModel:
            value: info:fedora/fedora-system:def/model#hasModel
            summary: hasModel relationship
          hasCollectionMember:
            value: info:fedora/fedora-system:def/relations-external#hasCollectionMember
            summary: hasCollectionMember
          isThumbnailFor:
            value: http://phaidra.org/XML/V1.0/relations#isThumbnailFor
            summary: isThumbnailFor
      - in: query
        name: object
        schema:
          type: string
          required: false
        examples:
          Page:
            value: info:fedora/cmodel:Page
            summary: Page model
          Picture:
            value: info:fedora/cmodel:Picture
            summary: Picture Model
        description: the model of the related object in the repository. A list of possible content models is found [here](https://github.com/phaidra/phaidra-api/wiki/Creating-a-simple-object)
      responses:
        '200':
          description: removed relationship
          content:
            application/json:
              schema:
                type: object
                properties:
                  alerts:
                    type: array
                    items:
                      type: object
                      properties:
                        msg:
                          type: string
                        type:
                          type: string
                  status:
                    type: string
        '404':
          description: Failed to fetch data
          content:
            application/json:
              schema:
                type: object
components:
  schemas:
    members:
      type: array
      items:
        type: object
        properties:
          pid:
            type: string
          pos:
            type: string
      example:
      - pid: o:1
        pos: 1
      - pid: o:2
        pos: 2
    collection:
      type: object
      properties:
        root:
          type: object
          properties:
            _updated:
              type: array
              items:
                type: number
            _version_:
              type: number
            bib_ir:
              type: array
              items:
                type: string
            bib_roles_pers_aut:
              type: array
              items:
                type: string
            children:
              type: array
              items:
                type: string
            cmodel:
              type: string
            created:
              type: string
            datastreams:
              type: array
              items:
                type: string
            dc_creator:
              type: array
              items:
                type: string
            dc_description:
              type: array
              items:
                type: string
            dc_description_eng:
              type: array
              items:
                type: string
            dc_identifier:
              type: array
              items:
                type: string
            dc_language:
              type: array
              items:
                type: string
            dc_title:
              type: array
              items:
                type: string
            dc_title_eng:
              type: array
              items:
                type: string
            dc_type:
              type: array
              items:
                type: string
            dc_type_eng:
              type: array
              items:
                type: string
            ispartof:
              type: array
              items:
                type: string
            owner:
              type: string
            pid:
              type: string
            resourcetype:
              type: string
            size:
              type: number
            sort_dc_title:
              type: string
            sort_eng_dc_title:
              type: string
            tcreated:
              type: array
              items:
                type: string
            tsize:
              type: array
              items:
                type: string
            uwm_roles_json:
              type: array
              items:
                type: string
  securitySchemes:
    tokenAuth:
      type: apiKey
      in: header
      name: X-XSRF-TOKEN
    basicAuth:
      type: http
      scheme: basic