Skip to main content

API Reference

Disclaimer: Many of the features described in this documentation are still in planning or under development. Some endpoints may not be available in your current instance.

This guide provides an overview of the RESTful APIs available in the Scientific Data Layer (SDL). Each microservice exposes a set of endpoints, most of which use JSON-LD and follow Linked Data Platform (LDP) and REST best practices.

All endpoints support standard HTTP verbs and content negotiation (application/ld+json, text/turtle, application/json).

Authentication is typically via OAuth2 Bearer tokens.


Base Structure

All endpoints follow the base pattern:

https://<host>/<service>/<resource-path>

Example:

GET https://sdl.example.org/catalog/datasets

Common Headers

Accept: application/ld+json
Authorization: Bearer <token>
Content-Type: application/ld+json

Catalog Service

GET /catalog/datasets

List all datasets.

POST /catalog/datasets

Create a new dataset. Body must include @type: dcat:Dataset.

GET /catalog/datasets/{id}

Retrieve a specific dataset.

PUT /catalog/datasets/{id}

Replace the dataset metadata.

PATCH /catalog/datasets/{id}

Update part of the dataset.


Registry Service

GET /registry/platforms

List all registered platforms.

GET /registry/platforms/{id}

Get details about a specific platform.

POST /registry/platforms

Register a new platform. Body should include ssn:Platform and related system links.


Repository Service

GET /repository/resources

List all RDF resources.

POST /repository/resources

Create a new RDF resource. Supports LDP container creation.

GET /repository/resources/{id}

Retrieve resource by URI or slug.

PUT /repository/resources/{id}

Replace full RDF graph.

PATCH /repository/resources/{id}

Partial RDF update.

DELETE /repository/resources/{id}

Delete a resource.


Workspace Service

GET /workspaces

List all available workspaces.

GET /workspaces/{id}

Get details of a specific workspace.

POST /workspaces

Create a new workspace.

PATCH /workspaces/{id}

Update workspace settings or metadata.


Storage Service

GET /storage/stores

List available stores.

GET /storage/stores/{id}

Describe store configuration (e.g., graph, backend type).

POST /storage/stores

Register a new store.


Data Transfer Service

POST /transfer/upload

Upload data to an object store. Includes metadata in body.

POST /transfer/download

Trigger data export and retrieve a download URL.


SPARQL Endpoint (Repository)

POST /repository/query

Execute SPARQL SELECT or CONSTRUCT queries.

POST /repository/update

Execute SPARQL UPDATE.


Notes

  • Most resources use IRIs as IDs; slugs or UUIDs may also be supported.
  • Errors follow standard HTTP response codes and include semantic error messages where possible.
  • All POST and PUT operations should provide valid JSON-LD or Turtle.

This API is designed for flexibility and semantic richness. Future extensions may include GraphQL overlays and streaming data subscriptions.