API interaction

The API can be used via command-line tools or within scripts. Only datasets with the standard Datacite format can be managed via API.

Authentication

Unless a dataset is public, you will need an API token to be able to interact with it. In order to create one, you need to login into the WebUI of MetaStore and go to your account. Please follow these instructions before proceeding.

CKAN Actions

Irrespective of the tool you are going to use, you will need to use CKAN actions to achieve what you want to do. Some examples are package_create, package_show,resource_update. Look at the official documentation for more information.

Note

For legacy reasons, datasets are still called packages in the action names.

Datacite Metadata fields

Label

Name

Comment

Title

title

MetaStore will attribute the value of the field name when no title is given.

Name

name

URL-friendly, required by the API

UUID

id

Generated by MetaStore when not given

Type

type

Must be standard for the standard Datacite Format

Creators

creators

Organization

owner_org

MetaStore organization, required by the API

Publisher

publisher

Publication Year

publicationyear

Resource Type

resourcetype

Subject

subject

Contributor

contributor

Date

date

Language

language

Alternate Identifier

alternateidentifier

Related Identifier

relatedidentifier

Size

size

Format

format

Version

version

Description

description

Geolocation

geolocation

Funding Reference

fundingreference

Related Item

relateditem

Licence

rightslist

Tools

ckanapi

ckanapi is a command line interface and Python module for accessing the CKAN Action API.

Datasets Listing

ckanapi action package_list -r https://metastore.mpcdf.mpg.de --insecure

Dataset Creation

ckanapi action package_create -r https://metastore.mpcdf.mpg.de name=<DATASET-NAME> owner_org=mpcdf type=standard -a <API-KEY>

curl

Dataset Creation

curl -XPOST -H "Authorization: <API-KEY>" https://metastore.mpcdf.mpg.de/api/3/action/package_create -d '{"name":"final-experiment", "title":"Final Experiment", "creators":"Nicolas Fabas, Thomas Zastrow", "type":"standard", "owner_org":"mpcdf", "publicationyear":"2023", "version":"4.2", "description":"This is our final experiment", "subject": "waves, particles"}'

Resource Creation

curl -XPOST -H "Authorization: <API-KEY>" https://metastore.mpcdf.mpg.de/api/3/action/resource_create -d '{"package_id":"570111cc-66df-4946-b291-5cb99dbd8045", "name":"resource.tar.gz", "format":"tar.gz", "url":"https://objectstore.hpccloud.mpcdf.mpg.de/testbucket/resource.tar.gz"}'

HTTPie and the CKAN Requestor

HTTPie is another HTTP client which is easier to use than curl. The CKAN Requestor is an MPCDF tool based on HTTPie. Its purpose is to automatically construct an HTTPie query.

https -p hbHBm  --verify=no ://metastore.mpcdf.mpg.de/api/3/action/package_create Authorization:<API-KEY> name=final-experiment title="Final Experiment" creators="Nicolas Fabas, Thomas Zastrow" type=standard owner_org=mpcdf publicationyear=2023 version=4.2 description="This is our final experiment" subject="waves, particles"

With the CKAN Requestor:

./requestor.sh name=final-experiment title="Final Experiment" creators="Nicolas Fabas, Thomas Zastrow" type=standard owner_org=mpcdf publicationyear=2023 version=4.2 description="This is our final experiment" subject="waves, particles"

If you already created a metadata file with the MMD tools, you can simply use it with the CKAN Requestor to publish the dataset like so:

./requestor.sh < metadata.mmd