openapi: 3.0.3 info: title: IRIS Repository (DSpace REST API) Core Projects API description: Public DSpace 7 REST/HATEOAS API (IRIS version 1.3.8) serving the IRIS institutional research repository at the University of Lausanne (UNIL). Exposes communities, collections, items, bundles and bitstreams via a HAL-based hypermedia API. Anonymous read access is available for public content; some endpoints (e.g. /core/items listing) require authentication. This specification was reconstructed from the live API root at https://api.unil.ch/iris/server/api and confirmed against live responses; only confirmed public read endpoints and observed object shapes are included. version: 1.3.8 contact: name: University of Lausanne - IRIS url: https://iris.unil.ch servers: - url: https://api.unil.ch/iris/server/api description: Production DSpace REST server tags: - name: Projects paths: /projects/query.json: get: operationId: queryProjects summary: Query projects by reference atlas or free text description: Filter projects by reference atlas (ref_id) and/or perform free-text search across metadata fields, with pagination. parameters: - name: ref_id in: query required: false description: Reference atlas identifier to filter projects. schema: type: integer - name: free_text in: query required: false description: Free-text search across project metadata fields. schema: type: string - name: page in: query required: false description: Page number (1-based). schema: type: integer default: 1 - name: per_page in: query required: false description: Number of results per page. schema: type: integer default: 1000 responses: '200': description: An array of matching project objects. content: application/json: schema: type: array items: $ref: '#/components/schemas/Project' tags: - Projects /projects/{project_id}/get_file: get: operationId: downloadProjectFile summary: Download a project archive description: Download a file (such as the data archive) for a given project. parameters: - name: project_id in: path required: true description: The project identifier (id or key). schema: type: string - name: type in: query required: false description: The type of file to download (e.g. "archive"). schema: type: string example: archive responses: '200': description: The requested file as a binary stream. content: application/octet-stream: schema: type: string format: binary tags: - Projects components: schemas: Project: type: object description: A SPICA atlas project and its experimental metadata. properties: id: type: integer description: Internal project identifier. example: 358 public_id: type: integer description: Public-facing project identifier. example: 23 key: type: string description: Short alphanumeric project key. example: ynt5ce name: type: string description: Human-readable project name. example: Ekiz_2019 description: type: string description: Description of the project / experiment. example: Effect of miR-155 KO in T cells from melanoma ref_id: type: integer description: Reference atlas identifier the project belongs to. example: 1 project_attrs: type: object description: Variable key-value experimental attributes (e.g. condition, timepoints, tissue). additionalProperties: type: string example: condition: melanoma (B16) timepoints: 9-12 days after tumor injection nber_samples: type: integer description: Number of samples in the project. example: 2 created_at: type: string format: date-time description: Creation timestamp (ISO 8601). example: '2021-08-13T08:56:15.939Z' updated_at: type: string format: date-time description: Last update timestamp (ISO 8601). example: '2026-06-01T03:05:26.019Z' url: type: string format: uri description: Canonical URL to the project JSON resource. example: http://spica.unil.ch/projects/358.json