Search Portal
The RDMC Search Portal consists of two components:
Search Frontend — the user-facing search interface
Registry Service — the backend service that stores and serves container metadata
The full interactive API reference is available at api.nfdixcs.org/registryservice/docs.
Registering a Container
When a user publishes an RDMC container and opts in to the Search Portal, the system
automatically sends a registration request to the Registry Service. The request is a
POST call with a JSON payload describing the container and its metadata.
API Endpoint
POST https://api.nfdixcs.org/registryservice/register
JSON Payload
Below is the full structure of the JSON payload sent to the Registry Service:
{
"external_id": "<container_id>",
"external_id_scheme": "<manifest_schema_version>",
"pid": "<epic_pid>",
"pid_scheme": "<pid_scheme>",
"rdmc_version": "<rdmc_version>",
"manifest_schema_version": "<manifest_schema_version>",
"manifest_file_path": "https://hdl.handle.net/<pid>?noredirect",
"relations": [],
"relatedIdentifiers": null,
"manifest": {
"RDMC Version": "<rdmc_version>",
"RDMC Title": "<container_name>",
"Manifest-Schemaversion": "<manifest_schema_version>",
"source_system": "<source_system>",
"publisher": "<publisher>",
"publication_year": "<YYYY>",
"resource_type": "<resource_type>",
"identifier": {
"type": "<pid_scheme>",
"value": "<epic_pid>"
},
"title": "<container_name>",
"version": "<rdmc_version>",
"dates": {
"issued": "YYYY-MM-DD",
"updated": "YYYY-MM-DD"
},
"rights": "<license>",
"RDMC Metadata": {
"Description": "<description>",
"Contributors": [],
"Subject": "<subject>",
"Keywords": "<keywords>",
"License": "<license>",
"container-concept": "<container_concept>"
}
}
}
Calling the API
To register a container, send a POST request to the /rdmcs endpoint:
import json
import requests
url = "https://api.nfdixcs.org/registryservice/rdmcs"
headers = {"Content-Type": "application/json"}
response = requests.post(
url,
headers=headers,
data=json.dumps(payload, default=str),
timeout=10
)
response.raise_for_status()
Here payload refers to the JSON structure described in the JSON Payload section above.