User guide
APIs
Release notes

Huwise's Automation API Documentation (1.0)

Download OpenAPI specification:

Huwise's REST API to manage your marketplace and its catalog

Datasets

Datasets are at the core of the platform. A dataset is composed of:

  • the actual data available on the portal (not available via the Automation API, but instead via the Explore API)
  • metadata like a title, a description and keywords describing the data, so users can discover it in the portal's catalog
  • configurations for processors, visualisation and security, which define the way data will be processed by the platform and made visible to users

Through the Automation API, it is possible to:

  • create datasets
  • attach resources to datasets
  • configure datasets processing pipeline, visualisations and security attributes
  • publish datasets

Dataset schema

uid
string non-empty

Unique identifier of the dataset that will never change through the lifetime of the dataset

dataset_id
string non-empty

Human-readable identifier of the dataset that can be modified when the dataset is not published

created_at
string <date-time> non-empty

Date when the dataset was created

updated_at
string <date-time> non-empty

Date when the dataset's configuration was last edited

object or null (RelatedUserReadOnly)

User who created the dataset

object or null (RelatedUserReadOnly)

User who last updated the dataset

is_published
boolean
Default: false
is_restricted
boolean

Defines if the dataset is visible for anonymous visitors.

  • If it is false, anyone having access to the domain will be able to see the dataset in the catalog. Users who have at least a ruleset declared for them (whether directly, through a group or both) will be able to see everything their rulesets grant access to. Users who do not have any ruleset declared for them (neither directly nor through a group) will be able to see what the default ruleset (default_security dataset property) grants access to.
  • If it is true, the dataset will only appear in the catalog for users who have a ruleset declared for them, either directly or through a group. Other users won't have any access to the dataset. The default_security ruleset has no effect for restricted datasets.
required
object (Metadata)

Asset metadata — a two-level dictionary mapping template name → field name → MetadataValue. Example: {"asset": {"title": {"value": "My Dataset"}, "description": {"value": "..."}}}

object (DatasetSecurity)

The dataset default security ruleset when the dataset is restricted. This ruleset applies to all users who do not have any ruleset declared for them

{
  • "uid": "da_qf2hyt",
  • "dataset_id": "counties-united-states-of-america",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_by": {
    },
  • "updated_by": {
    },
  • "is_published": false,
  • "is_restricted": true,
  • "metadata": { },
  • "default_security": {
    }
}

List datasets

List all the datasets that can be edited by this user.

Authorizations:
QueryAPIKeyHeaderAPIKey
query Parameters
limit
integer [ 0 .. 1000 ]
Default: 20
Example: limit=20

The maximum number of results returned by the API when the response is paginated. Tip: You can make a request with the parameter "limit" set to 0 to get only the metadata ("results" property will contain an empty array).

offset
integer

The number of results to skip before beginning the listing in case of a paginated response

dataset_id
string

Find a dataset from its dataset_id

Responses

Response samples

Content type
application/json
{
  • "total_count": 18,
  • "next": null,
  • "previous": null,
  • "results": [
    ]
}

Create dataset

Create a dataset.

Authorizations:
QueryAPIKeyHeaderAPIKey
Request Body schema: application/json
dataset_id
string non-empty

Human-readable identifier of the dataset that can be modified when the dataset is not published

is_restricted
boolean

Defines if the dataset is visible for anonymous visitors.

  • If it is false, anyone having access to the domain will be able to see the dataset in the catalog. Users who have at least a ruleset declared for them (whether directly, through a group or both) will be able to see everything their rulesets grant access to. Users who do not have any ruleset declared for them (neither directly nor through a group) will be able to see what the default ruleset (default_security dataset property) grants access to.
  • If it is true, the dataset will only appear in the catalog for users who have a ruleset declared for them, either directly or through a group. Other users won't have any access to the dataset. The default_security ruleset has no effect for restricted datasets.
required
object (Metadata)

Asset metadata — a two-level dictionary mapping template name → field name → MetadataValue. Example: {"asset": {"title": {"value": "My Dataset"}, "description": {"value": "..."}}}

object (DatasetSecurity)

The dataset default security ruleset when the dataset is restricted. This ruleset applies to all users who do not have any ruleset declared for them

Responses

Request samples

Content type
application/json
{
  • "dataset_id": "counties-united-states-of-america",
  • "is_restricted": true,
  • "metadata": { },
  • "default_security": {
    }
}

Response samples

Content type
application/json
{
  • "uid": "da_qf2hyt",
  • "dataset_id": "counties-united-states-of-america",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_by": {
    },
  • "updated_by": {
    },
  • "is_published": false,
  • "is_restricted": true,
  • "metadata": { },
  • "default_security": {
    }
}

Retrieve Dataset

Retrieve a dataset

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt

Responses

Response samples

Content type
application/json
{
  • "uid": "da_qf2hyt",
  • "dataset_id": "counties-united-states-of-america",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_by": {
    },
  • "updated_by": {
    },
  • "is_published": false,
  • "is_restricted": true,
  • "metadata": { },
  • "default_security": {
    }
}

Update Dataset

Update a dataset's configuration properties (e.g. dataset_id, is_restricted, default_security). To update dataset metadata use the dedicated Dataset Metadata endpoints (PUT /datasets/{dataset_uid}/metadata/, PUT /datasets/{dataset_uid}/metadata/{template_name}/, or PUT /datasets/{dataset_uid}/metadata/{template_name}/{field_name}/).

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
Request Body schema: application/json
dataset_id
string

Human-readable identifier for the dataset. Must be unique within the domain.

is_restricted
boolean

If true, only users with explicit security rules can explore this dataset.

object (DatasetSecurity)

Default security settings for the dataset.

Responses

Request samples

Content type
application/json
{
  • "dataset_id": "my-dataset",
  • "is_restricted": false,
  • "default_security": {
    }
}

Response samples

Content type
application/json
{
  • "uid": "da_qf2hyt",
  • "dataset_id": "counties-united-states-of-america",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_by": {
    },
  • "updated_by": {
    },
  • "is_published": false,
  • "is_restricted": true,
  • "metadata": { },
  • "default_security": {
    }
}

Delete Dataset

Delete the dataset.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt

Responses

Response samples

Content type
application/json
""

Publish dataset

Make the dataset modifications available through the explore API. It may entail the processing of all the records.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt

Responses

Response samples

Content type
application/json
{
  • "detail": "ok"
}

Publish dataset metadata

Publish dataset metadata

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt

Responses

Response samples

Content type
application/json
{
  • "detail": "ok"
}

Abort dataset publishing

Stop the current processing job and keep the processed records available in the explore API.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt

Responses

Response samples

Content type
application/json
{
  • "detail": "ok"
}

Unpublish dataset

Remove the dataset from the explore API. Unpublishing a dataset does not delete the dataset.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt

Responses

Response samples

Content type
application/json
{
  • "detail": "ok"
}

Copy dataset

Copy a dataset

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt

Responses

Response samples

Content type
application/json
{
  • "uid": "da_qf2hyt",
  • "dataset_id": "counties-united-states-of-america",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_by": {
    },
  • "updated_by": {
    },
  • "is_published": false,
  • "is_restricted": true,
  • "metadata": { },
  • "default_security": {
    }
}

Retrieve dataset status

Retrieves the current dataset status.

The dataset status describes the current state of a dataset, stating if it's published or not and the running operation. It is a finite state machine, with the following properties:

  • a single state at a time
  • the list of possible states, fully known
  • the list of all transitions, fully known, each with the actions and conditions that can trigger them
Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt

Responses

Response samples

Content type
application/json
{
  • "status": "idle",
  • "previous": "processing",
  • "next": null,
  • "since": "2019-08-24T14:15:22Z",
  • "is_published": true,
  • "message": null,
  • "records_errors": [ ],
  • "params": { }
}

Dataset resources

Dataset resources

Resource schema

uid
string non-empty

Unique identifier for the resource

type
required
string non-empty

Extractor type that should handle this resource

title
required
string non-empty

User defined title for identifying the resource

display_name
string non-empty

A name representing the resource. It is computed from the resource title and datasource depending on the type of resource

Extraction information (object) or null

Information about the kind of extraction configured for this resource, or null when it isn't relevant.

object (OriginInfos)

Information about the origin of the resource (e.g. HTTP, FTP etc.)

updated_at
string <date-time> non-empty
params
object

Parameters passed to the extractor

url
string non-empty

resource url

object (Datasource)
{
  • "uid": "re_qf2hyt",
  • "type": "csvfile",
  • "title": "Fromages",
  • "extraction_infos": {
    },
  • "origin": {
    },
  • "params": {
    },
  • "datasource": {
    },
  • "updated_at": "2022-01-01T00:00:00Z"
}

List extractors

List available extractors

Authorizations:
QueryAPIKeyHeaderAPIKey

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List dataset resources

List all resources that are linked to a dataset.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
query Parameters
limit
integer [ 0 .. 1000 ]
Default: 20
Example: limit=20

The maximum number of results returned by the API when the response is paginated. Tip: You can make a request with the parameter "limit" set to 0 to get only the metadata ("results" property will contain an empty array).

offset
integer

The number of results to skip before beginning the listing in case of a paginated response

expand
string
Enum: "datasource.connection" "datasource.dataset"

The list of fields to expand.

Responses

Response samples

Content type
application/json
{
  • "total_count": 18,
  • "next": null,
  • "previous": null,
  • "results": [
    ]
}

Create dataset resource

Create a new resource for the dataset. For now the supported resources in the API are HTTP, (s)FTP, uploaded files, S3, Azure Blob Storage, dataset federation, Snowflake, JCDecaux, Sharepoint and Google Drive.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
Request Body schema: application/json
type
required
string non-empty

Extractor type that should handle this resource

title
required
string non-empty

User defined title for identifying the resource

params
object

Parameters passed to the extractor

url
string non-empty

resource url

object (Datasource)

Responses

Request samples

Content type
application/json
Example
{
  • "type": "csvfile",
  • "title": "fromages.csv",
  • "params": {
    },
  • "datasource": {
    }
}

Response samples

Content type
application/json
Example
{
  • "$ref": "./HTTPResourceExample.yaml"
}

Guess unsaved resource extractors

Guess the resource extractors

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
Request Body schema: application/json
required
object (Datasource)

Responses

Request samples

Content type
application/json
{
  • "datasource": {
    }
}

Response samples

Content type
application/json
[
  • {
    }
]

Guess unsaved resource extractor parameters

Guess the extractor parameters

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
Request Body schema: application/json
required
object (Datasource)
type
required
string

Responses

Request samples

Content type
application/json
{
  • "datasource": {
    },
  • "type": "csvfile"
}

Response samples

Content type
application/json
{
  • "extractor": "csvfile",
  • "params": {
    }
}

Preview unsaved resource records

In order to test a resource configuration, it can be useful to preview the data. This endpoint uses a resource configuration passed in the payload to generate a preview.

The preview is composed of the fields definitions and the content of the first records up to 20.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
Request Body schema: application/json
required
object (Datasource)
type
required
string
object

Responses

Request samples

Content type
application/json
{
  • "datasource": {
    },
  • "type": "csvfile",
  • "params": {
    }
}

Response samples

Content type
application/json
{
  • "fields": [
    ],
  • "records": [
    ]
}

Retrieve dataset resource

Retrieve one dataset resource specified by its uid.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
resource_uid
required
string
Example: re_qf2hyt
query Parameters
expand
string
Enum: "datasource.connection" "datasource.dataset"

The list of fields to expand.

Responses

Response samples

Content type
application/json
Example
{
  • "$ref": "./HTTPResourceExample.yaml"
}

Update dataset resource

Update one dataset resource specified by its uid.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
resource_uid
required
string
Example: re_qf2hyt
Request Body schema: application/json
type
required
string non-empty

Extractor type that should handle this resource

title
required
string non-empty

User defined title for identifying the resource

params
object

Parameters passed to the extractor

url
string non-empty

resource url

object (Datasource)

Responses

Request samples

Content type
application/json
Example
{
  • "type": "csvfile",
  • "title": "fromages.csv",
  • "params": {
    },
  • "datasource": {
    }
}

Response samples

Content type
application/json
Example
{
  • "$ref": "./HTTPResourceExample.yaml"
}

Delete dataset resource

Delete one dataset resource specified by its uid.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
resource_uid
required
string
Example: re_qf2hyt

Responses

Response samples

Content type
application/json
""

Guess resource extractors

Guess the resource extractors

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
resource_uid
required
string
Example: re_qf2hyt

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Clean cache of resource

Clean the cache of a given resource.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
resource_uid
required
string
Example: re_qf2hyt

Responses

Response samples

Content type
application/json
""

Guess resource extractor parameters

Guess the resource extractor parameters

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
resource_uid
required
string
Example: re_qf2hyt

Responses

Response samples

Content type
application/json
{
  • "extractor": "csvfile",
  • "params": {
    }
}

Preview resource records

In order to test a resource configuration, it can be useful to preview the data. This endpoint uses the configuration of a resource specified by its uid to generate a preview.

The preview is composed of the fields definitions and the content of the first records up to 20.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
resource_uid
required
string
Example: re_qf2hyt

Responses

Response samples

Content type
application/json
{
  • "fields": [
    ],
  • "records": [
    ]
}

Recover realtime data

Recover the data of a realtime resource. The dataset must be published.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
resource_uid
required
string
Example: re_qf2hyt

Responses

Response samples

Content type
application/json
{
  • "uid": "re_qf2hyt",
  • "type": "csvfile",
  • "title": "Fromages",
  • "extraction_infos": {
    },
  • "origin": {
    },
  • "params": {
    },
  • "datasource": {
    },
  • "updated_at": "2022-01-01T00:00:00Z"
}

Delete realtime recovered data

Delete the recovered data of a realtime resource. The dataset must be published.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
resource_uid
required
string
Example: re_qf2hyt

Responses

Response samples

Content type
application/json
{
  • "uid": "re_qf2hyt",
  • "type": "csvfile",
  • "title": "Fromages",
  • "extraction_infos": {
    },
  • "origin": {
    },
  • "params": {
    },
  • "datasource": {
    },
  • "updated_at": "2022-01-01T00:00:00Z"
}

Enable realtime resource

Enable a realtime resource

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
resource_uid
required
string
Example: re_qf2hyt

Responses

Response samples

Content type
application/json
{
  • "uid": "re_qf2hyt",
  • "type": "csvfile",
  • "title": "Fromages",
  • "extraction_infos": {
    },
  • "origin": {
    },
  • "params": {
    },
  • "datasource": {
    },
  • "updated_at": "2022-01-01T00:00:00Z"
}

Disable realtime resource

Disable a realtime resource

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
resource_uid
required
string
Example: re_qf2hyt

Responses

Response samples

Content type
application/json
{
  • "uid": "re_qf2hyt",
  • "type": "csvfile",
  • "title": "Fromages",
  • "extraction_infos": {
    },
  • "origin": {
    },
  • "params": {
    },
  • "datasource": {
    },
  • "updated_at": "2022-01-01T00:00:00Z"
}

Renew realtime resource API key

Renew a realtime resource API key

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
resource_uid
required
string
Example: re_qf2hyt

Responses

Response samples

Content type
application/json
{
  • "uid": "re_qf2hyt",
  • "type": "csvfile",
  • "title": "Fromages",
  • "extraction_infos": {
    },
  • "origin": {
    },
  • "params": {
    },
  • "datasource": {
    },
  • "updated_at": "2022-01-01T00:00:00Z"
}

Upload resource file

Upload a file to be used in a dataset resource. The HTTP request must be a multipart request with a file property.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
Request Body schema: multipart/form-data
file
required
string <binary>

Responses

Response samples

Content type
application/json
{
  • "uid": "fromages.csv",
  • "filename": "fromages.csv",
  • "mimetype": "text/csv",
  • "created_at": "2019-08-24T14:15:22Z"
}

Retrieve dataset resource file

Retrieve a dataset resource uploaded file

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
file_uid
required
string
Example: fromages.csv

Responses

Response samples

Content type
application/json
{
  • "uid": "fromages.csv",
  • "filename": "fromages.csv",
  • "mimetype": "text/csv",
  • "created_at": "2019-08-24T14:15:22Z"
}

Download dataset resource file

Download a dataset resource file

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
file_uid
required
string
Example: fromages.csv

Responses

Response samples

Content type
application/json
{
  • "error_code": "not_found",
  • "message": "Not found."
}

Dataset metadata

Metadata is data describing the dataset itself. This is a set of fields describing the data, such as a title, a description, a list of keywords, a modification date, or whether the dataset is compliant to a specific geospatial norm. Adding metadata on a dataset is important to make sure it can be found, understood, and reused by users. In some cases, it can also be important for interoperability, to make sure other systems can understand the content of the dataset.

Dataset metadata are grouped within metadata templates that you can think of as namespaces. On top of the default metadata template, you may also find (depending on your domain's configuration) the Inspire, DCAT or CitadelJSON templates. Many other templates also exist and you can contact the support to define your own templates.

List all dataset metadata

Returns all metadata for the dataset as a two-level object: { template_name: { field_name: { value, remote_value, override_remote_value } } }.

Standard templates available on all datasets:

default — Core descriptive metadata: title, description, keyword, modified, modified_updates_on_metadata_change, modified_updates_on_data_change, geographic_reference, geographic_reference_auto, language, timezone, publisher, references, attributions

visualization — Controls dataset visualizations on the portal: analyze_disabled, analyze_default, table_fields, table_default_sort_field, table_default_sort_direction, map_disabled, map_marker_picto, map_marker_color, map_marker_hidemarkershape, map_tooltip_title, map_tooltip_fields, map_tooltip_disabled, map_tooltip_html_enabled, map_tooltip_html, map_tooltip_sort_field, map_tooltip_sort_direction, map_basemap, images_disabled, media_gallery_fields, image_title, image_fields, image_tooltip_html_enabled, image_tooltip_html, calendar_enabled, calendar_event_title, calendar_event_start, calendar_event_end, calendar_tooltip_html_enabled, calendar_tooltip_html, calendar_tooltip_fields, calendar_event_color, calendar_available_views, calendar_default_view, custom_view_enabled, custom_view_html, custom_view_css, custom_view_icon, custom_view_title, custom_view_slug

internal — Configuration metadata not visible on the portal: license_id, theme_id, draft

asset_content_configuration — Controls how asset content is displayed and searched: facets, fields_displayed_in_specific_languages, records_search_boosts

Additional custom templates may be present if configured on the portal. Their fields follow the same { field_name: { value } } structure.

The exact list of templates and their fields available on a given portal can be retrieved using the list-metadata-templates and list-metadata-template-fields operations.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt

Responses

Response samples

Content type
application/json
{
  • "default": {
    },
  • "visualization": {
    },
  • "internal": {
    },
  • "asset_content_configuration": {
    }
}

Update all dataset metadata

Update all dataset metadata at once. The payload replaces the full metadata object — omitted fields are removed. Standard template names are: default, visualization, internal, asset_content_configuration. See list-all-dataset-metadata for a full description of each template's fields.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
Request Body schema: application/json
property name*
additional property
any

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "default": {
    },
  • "internal": {
    }
}

List a template's dataset metadata

Returns the metadata fields for the given template. Standard template names are: default, visualization, internal, asset_content_configuration. Custom templates configured on the portal are also accessible by name. The exact list of templates available on a given portal can be retrieved using the list-metadata-templates operation. See list-all-dataset-metadata for a full description of each standard template's fields.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
template_name
required
string
Example: template_name

Metadata template name

Responses

Response samples

Content type
application/json
{
  • "title": {
    },
  • "description": {
    },
  • "keyword": {
    },
  • "language": {
    },
  • "publisher": {
    }
}

Update a template's dataset metadata

Update dataset metadata within a given template. This operation replaces the dataset metadata with the given payload: if a metadata is omitted, it will be removed from the dataset.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
template_name
required
string
Example: template_name

Metadata template name

Request Body schema: application/json
property name*
additional property
any

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{ }

Retrieve a metadata

Retrieve the metadata with the given name within the given template.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
template_name
required
string
Example: template_name

Metadata template name

template_field_name
required
string
Example: field_name

Metadata template field name

Responses

Response samples

Content type
application/json
{
  • "value": null,
  • "remote_value": null,
  • "override_remote_value": true
}

Update a metadata

Update the metadata with the given name within the given template.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
template_name
required
string
Example: template_name

Metadata template name

template_field_name
required
string
Example: field_name

Metadata template field name

Request Body schema: application/json
value
required
any

The effective metadata value.

override_remote_value
boolean

If true, the local value overrides the remote value. Present only if the dataset is linked to a remote dataset.

Responses

Request samples

Content type
application/json
{
  • "value": null,
  • "override_remote_value": true
}

Response samples

Content type
application/json
{
  • "value": null,
  • "remote_value": null,
  • "override_remote_value": true
}

Delete a metadata

Delete the metadata with the given name within the given template.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
template_name
required
string
Example: template_name

Metadata template name

template_field_name
required
string
Example: field_name

Metadata template field name

Responses

Response samples

Content type
application/json
""

Dataset security

The dataset security is the set of rules that defines who (which users / groups) can access what (which metadata / records / fields) at what frequency (API calls quota) for a given this dataset.

It is defined through 3 variables:

  • a general access policy that sets whether the dataset is accessible to anyone or just a few specific users. It is controlled through the is_restricted dataset property.
  • specific rulesets for users and groups. Those rulesets are managed using the dataset/{uid}/security/ API endpoints described in this section.
  • a default ruleset that applies to anybody else. It is controlled through the default_security dataset property.

User ruleset schema

object (DatasetSecurity)
permissions
Array of strings (RulesetPermission) unique
Items Enum: "explore_restricted_dataset" "explore_restricted_page" "edit_dataset" "publish_dataset" "manage_dataset" "manage_connection" "edit_page" "manage_page" "submit_private_form" "moderate_form" "edit_form"

List of special permissions granted to the target.

required
object (RelatedUser)

The user targeted by this ruleset.

{
  • "security": {
    },
  • "permissions": [
    ],
  • "user": {
    }
}

Group ruleset schema

object (DatasetSecurity)
permissions
Array of strings (RulesetPermission) unique
Items Enum: "explore_restricted_dataset" "explore_restricted_page" "edit_dataset" "publish_dataset" "manage_dataset" "manage_connection" "edit_page" "manage_page" "submit_private_form" "moderate_form" "edit_form"

List of special permissions granted to the target.

required
object

The group targeted by this ruleset.

{
  • "security": {
    },
  • "permissions": [
    ],
  • "group": {
    }
}

List dataset user rulesets

List the dataset user-level security rulesets

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
query Parameters
limit
integer [ 0 .. 1000 ]
Default: 20
Example: limit=20

The maximum number of results returned by the API when the response is paginated. Tip: You can make a request with the parameter "limit" set to 0 to get only the metadata ("results" property will contain an empty array).

offset
integer

The number of results to skip before beginning the listing in case of a paginated response

Responses

Response samples

Content type
application/json
{
  • "total_count": 18,
  • "next": null,
  • "previous": null,
  • "results": [
    ]
}

Create dataset user ruleset

Create a dataset user-level security ruleset

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
Request Body schema: application/json
object (DatasetSecurity)
permissions
Array of strings (RulesetPermission) unique
Items Enum: "explore_restricted_dataset" "explore_restricted_page" "edit_dataset" "publish_dataset" "manage_dataset" "manage_connection" "edit_page" "manage_page" "submit_private_form" "moderate_form" "edit_form"

List of special permissions granted to the target.

required
object (RelatedUser)

The user targeted by this ruleset.

Responses

Request samples

Content type
application/json
{
  • "security": {
    },
  • "permissions": [
    ],
  • "user": {
    }
}

Response samples

Content type
application/json
{
  • "security": {
    },
  • "permissions": [
    ],
  • "user": {
    }
}

Retrieve dataset user ruleset

Retrieve a dataset user-level security ruleset

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
username
required
string
Example: louise.data
Request Body schema: application/json
object (DatasetSecurity)
permissions
Array of strings (RulesetPermission) unique
Items Enum: "explore_restricted_dataset" "explore_restricted_page" "edit_dataset" "publish_dataset" "manage_dataset" "manage_connection" "edit_page" "manage_page" "submit_private_form" "moderate_form" "edit_form"

List of special permissions granted to the target.

required
object (RelatedUser)

The user targeted by this ruleset.

Responses

Request samples

Content type
application/json
{
  • "security": {
    },
  • "permissions": [
    ],
  • "user": {
    }
}

Response samples

Content type
application/json
{
  • "security": {
    },
  • "permissions": [
    ],
  • "user": {
    }
}

Update dataset user ruleset

Update a dataset user-level security ruleset

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
username
required
string
Example: louise.data
Request Body schema: application/json
object (DatasetSecurity)
permissions
Array of strings (RulesetPermission) unique
Items Enum: "explore_restricted_dataset" "explore_restricted_page" "edit_dataset" "publish_dataset" "manage_dataset" "manage_connection" "edit_page" "manage_page" "submit_private_form" "moderate_form" "edit_form"

List of special permissions granted to the target.

required
object (RelatedUser)

The user targeted by this ruleset.

Responses

Request samples

Content type
application/json
{
  • "security": {
    },
  • "permissions": [
    ],
  • "user": {
    }
}

Response samples

Content type
application/json
{
  • "security": {
    },
  • "permissions": [
    ],
  • "user": {
    }
}

Delete dataset user ruleset

Delete a dataset user-level security ruleset

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
username
required
string
Example: louise.data

Responses

Response samples

Content type
application/json
""

List dataset group rulesets

List the dataset group level security rulesets

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
query Parameters
limit
integer [ 0 .. 1000 ]
Default: 20
Example: limit=20

The maximum number of results returned by the API when the response is paginated. Tip: You can make a request with the parameter "limit" set to 0 to get only the metadata ("results" property will contain an empty array).

offset
integer

The number of results to skip before beginning the listing in case of a paginated response

Responses

Response samples

Content type
application/json
{
  • "total_count": 18,
  • "next": null,
  • "previous": null,
  • "results": [
    ]
}

Create dataset group ruleset

Create a dataset group level security ruleset

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
Request Body schema: application/json
object (DatasetSecurity)
permissions
Array of strings (RulesetPermission) unique
Items Enum: "explore_restricted_dataset" "explore_restricted_page" "edit_dataset" "publish_dataset" "manage_dataset" "manage_connection" "edit_page" "manage_page" "submit_private_form" "moderate_form" "edit_form"

List of special permissions granted to the target.

required
object

The group targeted by this ruleset.

Responses

Request samples

Content type
application/json
{
  • "security": {
    },
  • "permissions": [
    ],
  • "group": {
    }
}

Response samples

Content type
application/json
{
  • "security": {
    },
  • "permissions": [
    ],
  • "group": {
    }
}

Retrieve dataset group ruleset

Retrieve a dataset group level security ruleset

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
group_uid
required
string
Example: group_identifier
Request Body schema: application/json
object (DatasetSecurity)
permissions
Array of strings (RulesetPermission) unique
Items Enum: "explore_restricted_dataset" "explore_restricted_page" "edit_dataset" "publish_dataset" "manage_dataset" "manage_connection" "edit_page" "manage_page" "submit_private_form" "moderate_form" "edit_form"

List of special permissions granted to the target.

required
object

The group targeted by this ruleset.

Responses

Request samples

Content type
application/json
{
  • "security": {
    },
  • "permissions": [
    ],
  • "group": {
    }
}

Response samples

Content type
application/json
{
  • "security": {
    },
  • "permissions": [
    ],
  • "group": {
    }
}

Update dataset group ruleset

Update a dataset group level security ruleset

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
group_uid
required
string
Example: group_identifier
Request Body schema: application/json
object (DatasetSecurity)
permissions
Array of strings (RulesetPermission) unique
Items Enum: "explore_restricted_dataset" "explore_restricted_page" "edit_dataset" "publish_dataset" "manage_dataset" "manage_connection" "edit_page" "manage_page" "submit_private_form" "moderate_form" "edit_form"

List of special permissions granted to the target.

required
object

The group targeted by this ruleset.

Responses

Request samples

Content type
application/json
{
  • "security": {
    },
  • "permissions": [
    ],
  • "group": {
    }
}

Response samples

Content type
application/json
{
  • "security": {
    },
  • "permissions": [
    ],
  • "group": {
    }
}

Delete dataset group ruleset

Delete a dataset group level security ruleset

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
group_uid
required
string
Example: group_identifier

Responses

Response samples

Content type
application/json
""

Dataset processors

Huwise allows you to apply one or more processors to a dataset.

These processors are units of data transformation and other processing. Each processor represents a configurable operation that will be applied to all rows of a dataset.

Examples of what you can do with a processor include replacing text with a regex, geocoding an address into geographical coordinates, creating a new column that contains the result of a substraction between two existing columns and much more.

A general-purpose presentation of processors and their capabilities is available in the data processing documentation.

Processor schema

uid
string

Unique identifier for the processor

type
required
string

Type of the processor

label
string or null

Friendly label of the processor

property name*
additional property
any
{
  • "uid": "pr_qf2hyt",
  • "type": "string_replace",
  • "label": "replace old value with new value",
  • "field": "my_field",
  • "old": "old_value",
  • "new": "new_value"
}

List dataset processors

List configured processors for a dataset. Please note that it reads in the order in which processors are applied.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
query Parameters
limit
integer [ 0 .. 1000 ]
Default: 20
Example: limit=20

The maximum number of results returned by the API when the response is paginated. Tip: You can make a request with the parameter "limit" set to 0 to get only the metadata ("results" property will contain an empty array).

offset
integer

The number of results to skip before beginning the listing in case of a paginated response

Responses

Response samples

Content type
application/json
{
  • "total_count": 18,
  • "next": null,
  • "previous": null,
  • "results": [
    ]
}

Append a new processor

Create a new processor for the dataset. The processor will be appended to the end of the processing stack.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
Request Body schema: application/json
type
required
string

Type of the processor

label
string or null

Friendly label of the processor

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "type": "string_replace",
  • "label": "replace old value with new value",
  • "field": "my_field",
  • "old": "old_value",
  • "new": "new_value"
}

Response samples

Content type
application/json
{
  • "uid": "pr_qf2hyt",
  • "type": "string_replace",
  • "label": "replace old value with new value",
  • "field": "my_field",
  • "old": "old_value",
  • "new": "new_value"
}

Retrieve dataset processor

Retrieve a dataset processor

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
processor_uid
required
string
Example: pr_qf2hyt

Responses

Response samples

Content type
application/json
{
  • "uid": "pr_qf2hyt",
  • "type": "string_replace",
  • "label": "replace old value with new value",
  • "field": "my_field",
  • "old": "old_value",
  • "new": "new_value"
}

Update dataset processor

Update a processor in a dataset

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
processor_uid
required
string
Example: pr_qf2hyt
Request Body schema: application/json
type
required
string

Type of the processor

label
string or null

Friendly label of the processor

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "type": "string_replace",
  • "label": "replace old value with new value",
  • "field": "my_field",
  • "old": "old_value",
  • "new": "new_value"
}

Response samples

Content type
application/json
{
  • "uid": "pr_qf2hyt",
  • "type": "string_replace",
  • "label": "replace old value with new value",
  • "field": "my_field",
  • "old": "old_value",
  • "new": "new_value"
}

Delete a dataset processor

Remove a processor from a dataset.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
processor_uid
required
string
Example: pr_qf2hyt

Responses

Response samples

Content type
application/json
""

List processors

List all processors available on domain.

Authorizations:
QueryAPIKeyHeaderAPIKey

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Dataset feedbacks

The feedback feature allows users to suggest improvements to portal administrators. Feedback can either be about an existing record, or to request the addition of a new record in the dataset.

Feedback is an optional feature and is not activated on every Huwise portal. Activation is done by a portal's administrators, and then has to be activated individually on each dataset.

Dataset feedback

uid
required
string

Unique identifier for the feedback

record_id
required
string

ID of the record on which the feedback was made

required
object (RelatedUser)

The user who submitted the feedback

comment
required
string

User comments

object

New values suggested by the user

is_archived
boolean

True if the feedback was archived by an administrator, False otherwise

created_at
string <date-time>

Timestamp at which the feedback was submitted

{
  • "uid": "df_qf2hyt",
  • "record_id": "95969ddab924fc5db5e39c3fb2a7634f4d7dd51c",
  • "user": {
    },
  • "comment": "I like this record, it provides meanigful insights",
  • "is_archived": false,
  • "values": {
    }
}

List all dataset feedbacks

List all dataset feedbacks. Archived feedbacks aren't listed by default, use the is_archived parameter to query them.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
query Parameters
record_id
string

Find feedbacks made on a record with this id

is_archived
boolean
Default: 0

If true, list only archived feedbacks

sort
string
Default: "-created_at"
Example: sort=created_at

Sort by date of submission

Responses

Response samples

Content type
application/json
{
  • "total_count": 18,
  • "next": null,
  • "previous": null,
  • "results": [
    ]
}

Retrieve a dataset feedback

Retrieve a dataset feedback

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
feedback_uid
required
string
Example: df_qf2hyt

Unique identifier for the feedback

Responses

Response samples

Content type
application/json
{
  • "uid": "df_qf2hyt",
  • "record_id": "95969ddab924fc5db5e39c3fb2a7634f4d7dd51c",
  • "user": {
    },
  • "comment": "I like this record, it provides meanigful insights",
  • "is_archived": false,
  • "values": {
    }
}

Archive a dataset feedback

Archive a dataset feedback

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
feedback_uid
required
string
Example: df_qf2hyt

Unique identifier for the feedback

Responses

Response samples

Content type
application/json
{
  • "uid": "df_qf2hyt",
  • "record_id": "95969ddab924fc5db5e39c3fb2a7634f4d7dd51c",
  • "user": {
    },
  • "comment": "I like this record, it provides meanigful insights",
  • "is_archived": false,
  • "values": {
    }
}

Dataset fields

Dataset fields can be configured using a variety of options. These options include their type, their label, whether they are a filter or not, whether they should be discarded, or even how fields are ordered.

These configuration options, collectively refered to as fields configuration, are accessed using processor-like objects.

Type of the field configuration:

  • rename - Fields are identified by a technical name, and have a human-friendly label; both are editable using this configuration item.
  • type - Types are the most basic way of qualifying fields. Different types unlock different kinds of visualizations and agregations. Below is the list of types supported by the platform.
  • annotate - Annotation are a mean to configure special behavior for the fields. Some annotations are only available for certain field types.
  • description - Description are a mean to qualify and give some extra details about the content of the field. Descriptions are available when consulting the data.
  • order - Fields are processed and displayed in a definite order, this annotation can be used to change that order.
  • delete - Some fields present in the data source are not useful or redundant. This configuration item allows to discard them.

Field configuration schema

uid
string

Unique identifier for the field configuration

type
required
string non-empty
label
required
string

Friendly label of the field configuration

from_name
required
string non-empty

The original technical identifier

to_name
required
string non-empty

The new technical identifier

field_label
required
string non-empty

A user friendly label for the field

Example
{
  • "uid": "pr_qf2hyt",
  • "type": "rename",
  • "label": "Mark the field_id as multivalued, with a comma as the values separator",
  • "field": "field_id",
  • "annotation": "multivalued",
  • "args": [
    ],
  • "from_name": "original_field_id",
  • "to_name": "new_field_id",
  • "field_label": "My user friendly label"
}

List dataset field configurations

List fields configurations for a dataset. Please note that it reads in the order in which processors are applied.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
query Parameters
limit
integer [ 0 .. 1000 ]
Default: 20
Example: limit=20

The maximum number of results returned by the API when the response is paginated. Tip: You can make a request with the parameter "limit" set to 0 to get only the metadata ("results" property will contain an empty array).

offset
integer

The number of results to skip before beginning the listing in case of a paginated response

Responses

Response samples

Content type
application/json
{
  • "total_count": 18,
  • "next": null,
  • "previous": null,
  • "results": [
    ]
}

Append a new field configuration

Create a new field configuration for the dataset. The processor will be appended to the end of the fields configuration stack.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
Request Body schema: application/json

Create a field configuration in a dataset

type
required
string non-empty
label
required
string

Friendly label of the field configuration

from_name
required
string non-empty

The original technical identifier

to_name
required
string non-empty

The new technical identifier

field_label
required
string non-empty

A user friendly label for the field

Responses

Request samples

Content type
application/json
Example
{
  • "$ref": "../../../components/schemas/datasets/fields/examples/InputRenameDatasetFieldConfigurationExample.yaml"
}

Response samples

Content type
application/json
Example
{
  • "$ref": "../../../components/schemas/datasets/fields/examples/RenameDatasetFieldConfigurationExample.yaml"
}

Retrieve dataset field configuration

Retrieve a dataset field configuration

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
field_uid
required
string
Example: pr_qf2hyt

Responses

Response samples

Content type
application/json
Example
{
  • "$ref": "../../../components/schemas/datasets/fields/examples/RenameDatasetFieldConfigurationExample.yaml"
}

Update dataset field configuration

Update a field configuration in a dataset

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
field_uid
required
string
Example: pr_qf2hyt
Request Body schema: application/json
type
required
string non-empty
label
required
string

Friendly label of the field configuration

from_name
required
string non-empty

The original technical identifier

to_name
required
string non-empty

The new technical identifier

field_label
required
string non-empty

A user friendly label for the field

Responses

Request samples

Content type
application/json
Example
{
  • "$ref": "../../../components/schemas/datasets/fields/examples/InputRenameDatasetFieldConfigurationExample.yaml"
}

Response samples

Content type
application/json
Example
{
  • "$ref": "../../../components/schemas/datasets/fields/examples/RenameDatasetFieldConfigurationExample.yaml"
}

Destroy a field configuration

Remove a field configuration from a dataset

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
field_uid
required
string
Example: pr_qf2hyt

Responses

Response samples

Content type
application/json
""

Dataset schedules

Schedule schema

uid
string non-empty
cron_schedule
required
string non-empty

The schedule using the unix-cron string format

{
  • "uid": "sc_qf2hyt",
  • "cron_schedule": "0 * * * *"
}

List dataset schedules

List dataset schedules

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
query Parameters
limit
integer [ 0 .. 1000 ]
Default: 20
Example: limit=20

The maximum number of results returned by the API when the response is paginated. Tip: You can make a request with the parameter "limit" set to 0 to get only the metadata ("results" property will contain an empty array).

offset
integer

The number of results to skip before beginning the listing in case of a paginated response

Responses

Response samples

Content type
application/json
{
  • "total_count": 18,
  • "next": null,
  • "previous": null,
  • "results": [
    ]
}

Create a dataset schedule

Create a dataset schedule

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
Request Body schema: application/json
cron_schedule
required
string non-empty

The schedule using the unix-cron string format

Responses

Request samples

Content type
application/json
{
  • "cron_schedule": "0 * * * *"
}

Response samples

Content type
application/json
{
  • "uid": "sc_qf2hyt",
  • "cron_schedule": "0 * * * *"
}

Retrieve a dataset schedule

Retrieve a dataset schedule

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
schedule_uid
required
string
Example: sc_qf2hyt

Responses

Response samples

Content type
application/json
{
  • "uid": "sc_qf2hyt",
  • "cron_schedule": "0 * * * *"
}

Update a dataset schedule

Update a dataset schedule

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
schedule_uid
required
string
Example: sc_qf2hyt
Request Body schema: application/json
cron_schedule
required
string non-empty

The schedule using the unix-cron string format

Responses

Request samples

Content type
application/json
{
  • "cron_schedule": "0 * * * *"
}

Response samples

Content type
application/json
{
  • "uid": "sc_qf2hyt",
  • "cron_schedule": "0 * * * *"
}

Delete a dataset schedule

Delete a dataset schedule

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
schedule_uid
required
string
Example: sc_qf2hyt

Responses

Response samples

Content type
application/json
""

Dataset versions

The versions of a dataset describe subsequent changes of states that affected the different sections of a dataset.

Every action taken on any resource through POST, PUT or DELETE creates a version object that can be retrieved and acted upon.

Dataset version schema

uid
string non-empty

Unique identifier for the version

sections
Array of strings

Sections modified by this change

object (RelatedUserReadOnly)

User who made the change

can_restore
boolean
created_at
string <date-time> non-empty

Date at which the change was made

{
  • "uid": "ch_qf2hyt",
  • "sections": [
    ],
  • "created_by": {
    },
  • "can_restore": true,
  • "created_at": "2019-08-24T14:15:22Z"
}

List all versions

List the dataset versions.

Note: only the last 20 versions of a dataset are stored in the platform database. For this reason, the API response will contain at most 20 results.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
query Parameters
limit
integer [ 0 .. 1000 ]
Default: 20
Example: limit=20

The maximum number of results returned by the API when the response is paginated. Tip: You can make a request with the parameter "limit" set to 0 to get only the metadata ("results" property will contain an empty array).

offset
integer

The number of results to skip before beginning the listing in case of a paginated response

Responses

Response samples

Content type
application/json
{
  • "total_count": 18,
  • "next": null,
  • "previous": null,
  • "results": [
    ]
}

Retrieve version

Retrieve a dataset version.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
version_uid
required
string
Example: ch_qf2hyt
dataset_uid
required
string
Example: da_qf2hyt

Responses

Response samples

Content type
application/json
{
  • "uid": "ch_qf2hyt",
  • "sections": [
    ],
  • "created_by": {
    },
  • "can_restore": true,
  • "created_at": "2019-08-24T14:15:22Z"
}

Restore version

Restores a dataset to the selected version. Restoring a version will not erase the versions history, but rather create a new version encapsulating the restoration.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
version_uid
required
string
Example: ch_qf2hyt
dataset_uid
required
string
Example: da_qf2hyt

Responses

Response samples

Content type
application/json
{
  • "uid": "da_qf2hyt",
  • "dataset_id": "counties-united-states-of-america",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_by": {
    },
  • "updated_by": {
    },
  • "is_published": false,
  • "is_restricted": true,
  • "metadata": { },
  • "default_security": {
    }
}

Dataset attachments

Dataset attachments are files that are exposed along with a dataset. These files help make sense of the data.

Attachment schema

uid
string

Unique identifier for the file

filename
required
string
mimetype
string or null
created_at
string <date-time>
{
  • "uid": "fromages.csv",
  • "filename": "fromages.csv",
  • "mimetype": "text/csv",
  • "created_at": "2019-08-24T14:15:22Z"
}

List dataset attachments

List all attachments to a dataset.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
query Parameters
limit
integer [ 0 .. 1000 ]
Default: 20
Example: limit=20

The maximum number of results returned by the API when the response is paginated. Tip: You can make a request with the parameter "limit" set to 0 to get only the metadata ("results" property will contain an empty array).

offset
integer

The number of results to skip before beginning the listing in case of a paginated response

Responses

Response samples

Content type
application/json
{
  • "total_count": 18,
  • "next": null,
  • "previous": null,
  • "results": [
    ]
}

Create dataset attachment

Create a dataset attachment

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
Request Body schema: multipart/form-data
file
required
string <binary>

Responses

Response samples

Content type
application/json
{
  • "uid": "fromages.csv",
  • "filename": "fromages.csv",
  • "mimetype": "text/csv",
  • "created_at": "2019-08-24T14:15:22Z"
}

Retrieve dataset attachment

Retrieve a dataset attachment

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
attachment_uid
required
string
Example: at_qf2hyt

Responses

Response samples

Content type
application/json
{
  • "uid": "fromages.csv",
  • "filename": "fromages.csv",
  • "mimetype": "text/csv",
  • "created_at": "2019-08-24T14:15:22Z"
}

Delete dataset attachment

Delete a dataset attachment

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
attachment_uid
required
string
Example: at_qf2hyt

Responses

Response samples

Content type
application/json
""

Download dataset attachment

Download the dataset attachment file

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
attachment_uid
required
string
Example: at_qf2hyt

Responses

Response samples

Content type
application/json
{
  • "error_code": "not_found",
  • "message": "Not found."
}

Dataset alternative exports

Dataset alternative exports are custom dataset exports made outside the platform but available for end users to download like a normal export in the export menu.

Alternative exports are useful to expose exports in formats not supported by the platform, or in a specific geographic coordinate system. Alternative exports come in two types:

Uploaded File: This type of alternative export enables publishers to upload their own file one the platform. Since uploaded file alternative exports are static files instead of a dynamic exports, they tend to be very fast to download for end users and can be useful to offer a very large dataset export.

URL: This type allows publishers to provide a URL pointing to an external file that can be hosted outside the platform.

Alternative export schema

uid
string

Unique identifier for the alternative export

title
required
string non-empty
description
string
mimetype
string
type
required
string
created_at
string <date-time>
updated_at
string <date-time>
filename
string
Example
{
  • "uid": "ae_mm8lbn",
  • "title": "Alternative export title",
  • "description": "Alternative export description",
  • "mimetype": "text/csv",
  • "type": "uploaded_file",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "filename": "fromages.csv"
}

List dataset alternative exports

List dataset alternative exports

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
query Parameters
limit
integer [ 0 .. 1000 ]
Default: 20
Example: limit=20

The maximum number of results returned by the API when the response is paginated. Tip: You can make a request with the parameter "limit" set to 0 to get only the metadata ("results" property will contain an empty array).

offset
integer

The number of results to skip before beginning the listing in case of a paginated response

Responses

Response samples

Content type
application/json
{
  • "total_count": 18,
  • "next": null,
  • "previous": null,
  • "results": [
    ]
}

Create dataset alternative export

Create a dataset alternative export

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
Request Body schema: multipart/form-data
title
required
string non-empty
type
required
string
Value: "uploaded_file"
file
required
string <binary>
description
string

Responses

Response samples

Content type
application/json
Example
{
  • "uid": "ae_mm8lbn",
  • "title": "Alternative export title",
  • "description": "Alternative export description",
  • "mimetype": "text/csv",
  • "type": "uploaded_file",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "filename": "fromages.csv"
}

Retrieve dataset alternative export

Retrieve a dataset alternative export

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
export_uid
required
string
Example: ae_qf2hyt

Responses

Response samples

Content type
application/json
Example
{
  • "uid": "ae_mm8lbn",
  • "title": "Alternative export title",
  • "description": "Alternative export description",
  • "mimetype": "text/csv",
  • "type": "uploaded_file",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "filename": "fromages.csv"
}

Update dataset alternative export

Update a dataset alternative export

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
export_uid
required
string
Example: ae_qf2hyt
Request Body schema: application/json
title
required
string non-empty
type
required
string
Value: "uploaded_file"
description
string

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "type": "uploaded_file",
  • "description": "string"
}

Response samples

Content type
application/json
Example
{
  • "uid": "ae_mm8lbn",
  • "title": "Alternative export title",
  • "description": "Alternative export description",
  • "mimetype": "text/csv",
  • "type": "uploaded_file",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "filename": "fromages.csv"
}

Delete dataset alternative export

Delete a dataset alternative export

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
export_uid
required
string
Example: ae_qf2hyt

Responses

Response samples

Content type
application/json
""

Download dataset alternative export

Download the uploaded file alternative export or be redirected to the URL alternative export.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
export_uid
required
string
Example: ae_qf2hyt

Responses

Response samples

Content type
application/json
{
  • "error_code": "not_found",
  • "message": "Not found."
}

Dataset translations

Asset translations is a dictionary that stores terms localized into the languages supported by the domain.

When an asset is published, all internationalized (i18n) fields such as translatable metadata and schema information are enriched with their corresponding translations from this dictionary.

Get dataset translations

Retrieves the translation dictionary for a dataset

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt

Responses

Response samples

Content type
application/json
{
  • "Climate Data Analysis 2023": {
    },
  • "Temperature measurements from global weather stations": {
    }
}

Update dataset translations

Updates the translation dictionary for a dataset

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
dataset_uid
required
string
Example: da_qf2hyt
Request Body schema: application/json
required
additional property
object

The translations for a specific key

Responses

Request samples

Content type
application/json
{
  • "Climate Data Analysis 2023": {
    },
  • "Temperature measurements from global weather stations": {
    }
}

Response samples

Content type
application/json
{
  • "Climate Data Analysis 2023": {
    },
  • "Temperature measurements from global weather stations": {
    }
}

Harvesters

Harvesters provide a way for administrators to create and update an important number of datasets by importing them from an external source such as a CSW catalog or an ArcGIS service, among many others. Your user and your API key need the permissions create_dataset, edit_dataset and publish_dataset.

Through the Automation API, it is possible to:

  • create a harvester
  • start a harvester
  • publish the datasets attached to a harvester
  • unpublish the datasets attached to a harvester
  • delete a harvester and optionally delete its datasets

Harvester schema

uid
string non-empty
type
required
string non-empty
name
required
string non-empty
status
string
Enum: "idle" "queued" "aborting" "processing" "deleting" "new"
version
integer >= 1
Default: 1
restrict_datasets_visibility
boolean

If the harvested datasets should be configured as private. By default, it has the same value as the domain configuration "Restrict new datasets by default"

delete_missing_datasets
boolean
Default: false

If the source datasets are deleted on the harvested portal, delete them on this Huwise portal too

object

Allow you to override some metadata in every harvested dataset

remote_datasets_count
integer or null

How many datasets have been found on the remote catalog

harvested_datasets_count
integer or null

How many datasets have been harvested in the current or last run

published_datasets_count
integer

How many harvested datasets are published

attached_datasets_count
integer

How many datasets in your Huwise portal have been created by this harvester

has_error
boolean

If the last harvesting resulted in a critical error

resource_errors_count
integer >= 0

How many datasets on the remote catalog led to an error and couldn't be harvested

created_at
string <date-time> non-empty
updated_at
string <date-time> non-empty
object (RelatedUserReadOnly)

Short representation of a User with only its username

last_started_at
string or null <date-time> non-empty

The last time the harvester was started

last_success_at
string or null <date-time> non-empty

The last time the harvesting has been succcesful

url
required
string non-empty
download_resources
boolean (download_resources)

If you want to download resources instead of attaching them via URL.

metadata_only
boolean (metadata_only)

If you want to harvest the remote datasets metadata without their resources.

Example
{
  • "uid": "harvester-uid",
  • "type": "arcgis",
  • "name": "Harvester title",
  • "status": "idle",
  • "version": 1,
  • "restrict_datasets_visibility": true,
  • "delete_missing_datasets": false,
  • "forced_metas": {
    },
  • "remote_datasets_count": 100,
  • "harvested_datasets_count": 98,
  • "published_datasets_count": 30,
  • "attached_datasets_count": 98,
  • "has_error": false,
  • "resource_errors_count": 2,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "updated_by": {
    },
  • "last_started_at": "2019-08-24T14:15:22Z",
  • "last_success_at": "2019-08-24T14:15:22Z",
  • "download_resources": false,
  • "metadata_only": false
}

List harvesters

List the harvesters.

Authorizations:
QueryAPIKeyHeaderAPIKey
query Parameters
limit
integer [ 0 .. 1000 ]
Default: 20
Example: limit=20

The maximum number of results returned by the API when the response is paginated. Tip: You can make a request with the parameter "limit" set to 0 to get only the metadata ("results" property will contain an empty array).

offset
integer

The number of results to skip before beginning the listing in case of a paginated response

Responses

Response samples

Content type
application/json
{
  • "total_count": 18,
  • "next": null,
  • "previous": null,
  • "results": [
    ]
}

Create harvester

Create a harvester.

Authorizations:
QueryAPIKeyHeaderAPIKey
Request Body schema: application/json
type
required
string non-empty
name
required
string non-empty
version
integer >= 1
Default: 1
restrict_datasets_visibility
boolean

If the harvested datasets should be configured as private. By default, it has the same value as the domain configuration "Restrict new datasets by default"

delete_missing_datasets
boolean
Default: false

If the source datasets are deleted on the harvested portal, delete them on this Huwise portal too

object

Allow you to override some metadata in every harvested dataset

url
required
string non-empty
download_resources
boolean (download_resources)

If you want to download resources instead of attaching them via URL.

metadata_only
boolean (metadata_only)

If you want to harvest the remote datasets metadata without their resources.

Responses

Request samples

Content type
application/json
Example
{
  • "type": "arcgis",
  • "name": "Harvester title",
  • "version": 1,
  • "restrict_datasets_visibility": true,
  • "delete_missing_datasets": false,
  • "forced_metas": {
    },
  • "download_resources": false,
  • "metadata_only": false
}

Response samples

Content type
application/json
Example
{
  • "uid": "harvester-uid",
  • "type": "arcgis",
  • "name": "Harvester title",
  • "status": "idle",
  • "version": 1,
  • "restrict_datasets_visibility": true,
  • "delete_missing_datasets": false,
  • "forced_metas": {
    },
  • "remote_datasets_count": 100,
  • "harvested_datasets_count": 98,
  • "published_datasets_count": 30,
  • "attached_datasets_count": 98,
  • "has_error": false,
  • "resource_errors_count": 2,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "updated_by": {
    },
  • "last_started_at": "2019-08-24T14:15:22Z",
  • "last_success_at": "2019-08-24T14:15:22Z",
  • "download_resources": false,
  • "metadata_only": false
}

Retrieve harvester

Retrieve a harvester.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
harvester_uid
required
string
Example: harvester_uid

Responses

Response samples

Content type
application/json
Example
{
  • "uid": "harvester-uid",
  • "type": "arcgis",
  • "name": "Harvester title",
  • "status": "idle",
  • "version": 1,
  • "restrict_datasets_visibility": true,
  • "delete_missing_datasets": false,
  • "forced_metas": {
    },
  • "remote_datasets_count": 100,
  • "harvested_datasets_count": 98,
  • "published_datasets_count": 30,
  • "attached_datasets_count": 98,
  • "has_error": false,
  • "resource_errors_count": 2,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "updated_by": {
    },
  • "last_started_at": "2019-08-24T14:15:22Z",
  • "last_success_at": "2019-08-24T14:15:22Z",
  • "download_resources": false,
  • "metadata_only": false
}

Update harvester

Update a harvester.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
harvester_uid
required
string
Example: harvester_uid
Request Body schema: application/json
type
required
string non-empty
name
required
string non-empty
version
integer >= 1
Default: 1
restrict_datasets_visibility
boolean

If the harvested datasets should be configured as private. By default, it has the same value as the domain configuration "Restrict new datasets by default"

delete_missing_datasets
boolean
Default: false

If the source datasets are deleted on the harvested portal, delete them on this Huwise portal too

object

Allow you to override some metadata in every harvested dataset

url
required
string non-empty
download_resources
boolean (download_resources)

If you want to download resources instead of attaching them via URL.

metadata_only
boolean (metadata_only)

If you want to harvest the remote datasets metadata without their resources.

Responses

Request samples

Content type
application/json
Example
{
  • "type": "arcgis",
  • "name": "Harvester title",
  • "version": 1,
  • "restrict_datasets_visibility": true,
  • "delete_missing_datasets": false,
  • "forced_metas": {
    },
  • "download_resources": false,
  • "metadata_only": false
}

Response samples

Content type
application/json
Example
{
  • "uid": "harvester-uid",
  • "type": "arcgis",
  • "name": "Harvester title",
  • "status": "idle",
  • "version": 1,
  • "restrict_datasets_visibility": true,
  • "delete_missing_datasets": false,
  • "forced_metas": {
    },
  • "remote_datasets_count": 100,
  • "harvested_datasets_count": 98,
  • "published_datasets_count": 30,
  • "attached_datasets_count": 98,
  • "has_error": false,
  • "resource_errors_count": 2,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "updated_by": {
    },
  • "last_started_at": "2019-08-24T14:15:22Z",
  • "last_success_at": "2019-08-24T14:15:22Z",
  • "download_resources": false,
  • "metadata_only": false
}

Delete harvester

Delete the harvester. If delete_attached_datasets=true, also delete all its attached datasets.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
harvester_uid
required
string
Example: harvester_uid
query Parameters
delete_attached_datasets
required
boolean

Control whether all attached datasets should be deleted with the harvester, or detached from it.

Responses

Response samples

Content type
application/json
""

Abort harvesting

Abort the harvesting of a harvester.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
harvester_uid
required
string
Example: harvester_uid

Responses

Response samples

Content type
application/json
Example
{
  • "uid": "harvester-uid",
  • "type": "arcgis",
  • "name": "Harvester title",
  • "status": "idle",
  • "version": 1,
  • "restrict_datasets_visibility": true,
  • "delete_missing_datasets": false,
  • "forced_metas": {
    },
  • "remote_datasets_count": 100,
  • "harvested_datasets_count": 98,
  • "published_datasets_count": 30,
  • "attached_datasets_count": 98,
  • "has_error": false,
  • "resource_errors_count": 2,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "updated_by": {
    },
  • "last_started_at": "2019-08-24T14:15:22Z",
  • "last_success_at": "2019-08-24T14:15:22Z",
  • "download_resources": false,
  • "metadata_only": false
}

Start harvesting

Start a harvester.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
harvester_uid
required
string
Example: harvester_uid

Responses

Response samples

Content type
application/json
Example
{
  • "uid": "harvester-uid",
  • "type": "arcgis",
  • "name": "Harvester title",
  • "status": "idle",
  • "version": 1,
  • "restrict_datasets_visibility": true,
  • "delete_missing_datasets": false,
  • "forced_metas": {
    },
  • "remote_datasets_count": 100,
  • "harvested_datasets_count": 98,
  • "published_datasets_count": 30,
  • "attached_datasets_count": 98,
  • "has_error": false,
  • "resource_errors_count": 2,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "updated_by": {
    },
  • "last_started_at": "2019-08-24T14:15:22Z",
  • "last_success_at": "2019-08-24T14:15:22Z",
  • "download_resources": false,
  • "metadata_only": false
}

Publish a harvester's datasets

Publish all datasets attached to the harvester.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
harvester_uid
required
string
Example: harvester_uid

Responses

Response samples

Content type
application/json
{
  • "detail": "ok"
}

Unpublish a harvester's datasets

Unpublish all datasets attached to the harvester.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
harvester_uid
required
string
Example: harvester_uid

Responses

Response samples

Content type
application/json
{
  • "detail": "ok"
}

List errors

List errors which occurred during the last or current harvesting.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
harvester_uid
required
string
Example: harvester_uid

Responses

Response samples

Content type
application/json
{
  • "harvester": "A fatal error occured. Please check the harvester configuration.",
  • "resources": {
    }
}

Preview harvesting

Preview the datasets which will be harvested.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
harvester_uid
required
string
Example: harvester_uid

Responses

Response samples

Content type
application/json
{
  • "total_count": 42,
  • "results": [
    ]
}

Preview harvesting configuration

Preview the datasets which will be harvested with a given configuration. At the contrary of the preview endpoint which returns the results for the currently saved harvester, this endpoint allows to preview the results with a configuration change not yet saved. The given parameters will be merged with the saved harvester configuration.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
harvester_uid
required
string
Example: harvester_uid
Request Body schema: application/json
type
required
string non-empty
name
required
string non-empty
version
integer >= 1
Default: 1
restrict_datasets_visibility
boolean

If the harvested datasets should be configured as private. By default, it has the same value as the domain configuration "Restrict new datasets by default"

delete_missing_datasets
boolean
Default: false

If the source datasets are deleted on the harvested portal, delete them on this Huwise portal too

object

Allow you to override some metadata in every harvested dataset

url
required
string non-empty
download_resources
boolean (download_resources)

If you want to download resources instead of attaching them via URL.

metadata_only
boolean (metadata_only)

If you want to harvest the remote datasets metadata without their resources.

Responses

Request samples

Content type
application/json
Example
{
  • "type": "arcgis",
  • "name": "Harvester title",
  • "version": 1,
  • "restrict_datasets_visibility": true,
  • "delete_missing_datasets": false,
  • "forced_metas": {
    },
  • "download_resources": false,
  • "metadata_only": false
}

Response samples

Content type
application/json
{
  • "total_count": 42,
  • "results": [
    ]
}

Harvester schedules

Harvester schedules

Schedule schema

uid
string non-empty
cron_schedule
required
string non-empty

The schedule using the unix-cron string format

timezone
required
string non-empty

The schedule timezone

{
  • "uid": "sc_qf2hyt",
  • "cron_schedule": "1 30 * * *",
  • "timezone": "Europe/Berlin"
}

List harvester schedules

List harvester schedules.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
harvester_uid
required
string
Example: harvester_uid
query Parameters
limit
integer [ 0 .. 1000 ]
Default: 20
Example: limit=20

The maximum number of results returned by the API when the response is paginated. Tip: You can make a request with the parameter "limit" set to 0 to get only the metadata ("results" property will contain an empty array).

offset
integer

The number of results to skip before beginning the listing in case of a paginated response

Responses

Response samples

Content type
application/json
{
  • "total_count": 18,
  • "next": null,
  • "previous": null,
  • "results": [
    ]
}

Create harvester schedule

Create a harvester schedule. A harvester can only have one schedule.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
harvester_uid
required
string
Example: harvester_uid
Request Body schema: application/json
cron_schedule
required
string non-empty

The schedule using the unix-cron string format

timezone
required
string non-empty

The schedule timezone

Responses

Request samples

Content type
application/json
{
  • "cron_schedule": "1 30 * * *",
  • "timezone": "Europe/Berlin"
}

Response samples

Content type
application/json
{
  • "uid": "sc_qf2hyt",
  • "cron_schedule": "1 30 * * *",
  • "timezone": "Europe/Berlin"
}

Retrieve a harvester schedule

Retrieve a harvester schedule.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
harvester_uid
required
string
Example: harvester_uid
schedule_uid
required
string
Example: harvester_uid

Responses

Response samples

Content type
application/json
{
  • "uid": "sc_qf2hyt",
  • "cron_schedule": "1 30 * * *",
  • "timezone": "Europe/Berlin"
}

Update harvester schedule

Update a harvester schedule.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
harvester_uid
required
string
Example: harvester_uid
schedule_uid
required
string
Example: harvester_uid
Request Body schema: application/json
cron_schedule
required
string non-empty

The schedule using the unix-cron string format

timezone
required
string non-empty

The schedule timezone

Responses

Request samples

Content type
application/json
{
  • "cron_schedule": "1 30 * * *",
  • "timezone": "Europe/Berlin"
}

Response samples

Content type
application/json
{
  • "uid": "sc_qf2hyt",
  • "cron_schedule": "1 30 * * *",
  • "timezone": "Europe/Berlin"
}

Delete harvester schedule

Delete a harvester schedule.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
harvester_uid
required
string
Example: harvester_uid
schedule_uid
required
string
Example: harvester_uid

Responses

Response samples

Content type
application/json
""

Users

A user is a person who authentifies themself to utilize the platform.

Most of the times, users are invited on a domain via an e-mail:

if the user doesn't have an Huwise account, the e-mail provides them a link to create their account and choose a password,

this invitation links the new user or existing user to this domain, allowing domain administrators to grant them permissions to perform specific actions.

In other words, user accounts are shared between all Huwise domains, but a user must be linked to a specific domain via an invitation before being granted specific permissions on this domain.

Through the Automation API, it is possible to:

  • list users linked to the domain,
  • lookup a specific user,
  • invite users on the domain (via an e-mail address),
  • grant users permissions, quotas and limits on the domain,
  • add or remove them from groups,
  • delete users from the domain.

User schema

username
string

The user's username

display_name
string

Simplified version of the username

first_name
string

The user's first name

last_name
string

The user's last name

is_active
boolean

is true if the user can connect to their account

email
required
string

The user's e-mail address

is_ods
boolean

is true if the user belongs to the Huwise organization

account_type
string
Enum: "global" "linked" "local"

The user's account type.

permissions
Array of strings (Permission)
Items Enum: "edit_domain" "create_page" "edit_page" "manage_page" "explore_restricted_page" "create_dataset" "edit_dataset" "publish_dataset" "manage_dataset" "explore_restricted_dataset" "edit_reuse" "manage_subdomains" "explore_monitoring" "edit_theme" "edit_form" "submit_private_form" "create_external_asset" "edit_external_asset" "explore_restricted_external_asset" "manage_glossary" "manage_showcase_requests"

A list of permissions granted to this user

joined_at
string <date-time>

The date when the user joined the domain

last_seen_at
string <date-time>

The date when the user used their account for the last time

last_login_at
string <date-time>
string or null

The date when the user permissions will expire

object (ExploreLimits)

An object holding the user's quotas on this domain

management_limits
object (ManagementLimits)
Deprecated

An object holding the user's limits on this domain

gravatar_url
string
Array of objects (User group schema)

A list of groups the user belongs to

Array of objects

The list of authentification providers type for this user.

{
  • "username": "louise.data",
  • "display_name": "louise.data",
  • "first_name": "Louise",
  • "last_name": "Data",
  • "is_active": true,
  • "email": "contact@email.com",
  • "is_ods": false,
  • "account_type": "global",
  • "permissions": [
    ],
  • "joined_at": "2019-08-24T14:15:22Z",
  • "last_seen_at": "2019-08-24T14:15:22Z",
  • "last_login_at": "2019-08-24T14:15:22Z",
  • "expires_at": null,
  • "explore_limits": {
    },
  • "management_limits": { },
  • "gravatar_url": "//www.gravatar.com/avatar/6dde1de523fc80569f3dd80548e3eb9c?d=mm&s=80",
  • "groups": [
    ],
  • "identity_providers": [
    ]
}

List users

List users

Authorizations:
QueryAPIKeyHeaderAPIKey
query Parameters
search
string
Example: search=alice

full-text search among username, first name, last name and email

sort
Array of strings
Items Enum: "username" "first_name" "last_name" "last_seen_at"
Example: sort=username,first_name

sort results according to username, first name or last_name

permissions
Array of strings (Permission)
Items Enum: "edit_domain" "create_page" "edit_page" "manage_page" "explore_restricted_page" "create_dataset" "edit_dataset" "publish_dataset" "manage_dataset" "explore_restricted_dataset" "edit_reuse" "manage_subdomains" "explore_monitoring" "edit_theme" "edit_form" "submit_private_form" "create_external_asset" "edit_external_asset" "explore_restricted_external_asset" "manage_glossary" "manage_showcase_requests"
Example: permissions=edit_dataset&permissions=create_dataset

filter according to permissions granted directly to the users

all_permissions
Array of strings (Permission)
Items Enum: "edit_domain" "create_page" "edit_page" "manage_page" "explore_restricted_page" "create_dataset" "edit_dataset" "publish_dataset" "manage_dataset" "explore_restricted_dataset" "edit_reuse" "manage_subdomains" "explore_monitoring" "edit_theme" "edit_form" "submit_private_form" "create_external_asset" "edit_external_asset" "explore_restricted_external_asset" "manage_glossary" "manage_showcase_requests"
Example: all_permissions=edit_dataset&all_permissions=create_dataset

filter according to permissions, whether granted directly or via a group

limit
integer [ 0 .. 1000 ]
Default: 20
Example: limit=20

The maximum number of results returned by the API when the response is paginated. Tip: You can make a request with the parameter "limit" set to 0 to get only the metadata ("results" property will contain an empty array).

offset
integer

The number of results to skip before beginning the listing in case of a paginated response

Responses

Response samples

Content type
application/json
{
  • "total_count": 18,
  • "next": null,
  • "previous": null,
  • "results": [
    ]
}

Retrieve user

Retrieve user

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
username
required
string
Example: louise.data
query Parameters
expand
string
Example: expand=groups

The list of fields to expand.

Responses

Response samples

Content type
application/json
{
  • "username": "louise.data",
  • "display_name": "louise.data",
  • "first_name": "Louise",
  • "last_name": "Data",
  • "is_active": true,
  • "email": "contact@email.com",
  • "is_ods": false,
  • "account_type": "global",
  • "permissions": [
    ],
  • "joined_at": "2019-08-24T14:15:22Z",
  • "last_seen_at": "2019-08-24T14:15:22Z",
  • "last_login_at": "2019-08-24T14:15:22Z",
  • "expires_at": null,
  • "explore_limits": {
    },
  • "management_limits": { },
  • "gravatar_url": "//www.gravatar.com/avatar/6dde1de523fc80569f3dd80548e3eb9c?d=mm&s=80",
  • "groups": [
    ],
  • "identity_providers": [
    ]
}

Update user

Updates a user properties

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
username
required
string
Example: louise.data
Request Body schema: application/json
username
string

The user's username

first_name
string

The user's first name

last_name
string

The user's last name

email
required
string

The user's e-mail address

permissions
Array of strings (Permission)
Items Enum: "edit_domain" "create_page" "edit_page" "manage_page" "explore_restricted_page" "create_dataset" "edit_dataset" "publish_dataset" "manage_dataset" "explore_restricted_dataset" "edit_reuse" "manage_subdomains" "explore_monitoring" "edit_theme" "edit_form" "submit_private_form" "create_external_asset" "edit_external_asset" "explore_restricted_external_asset" "manage_glossary" "manage_showcase_requests"

A list of permissions granted to this user

object (ExploreLimits)

An object holding the user's quotas on this domain

management_limits
object (ManagementLimits)
Deprecated

An object holding the user's limits on this domain

Array of objects (User group schema)

A list of groups the user belongs to

Responses

Request samples

Content type
application/json
{
  • "username": "louise.data",
  • "first_name": "Louise",
  • "last_name": "Data",
  • "email": "contact@email.com",
  • "permissions": [
    ],
  • "explore_limits": {
    },
  • "management_limits": { },
  • "groups": [
    ]
}

Response samples

Content type
application/json
{
  • "username": "louise.data",
  • "display_name": "louise.data",
  • "first_name": "Louise",
  • "last_name": "Data",
  • "is_active": true,
  • "email": "contact@email.com",
  • "is_ods": false,
  • "account_type": "global",
  • "permissions": [
    ],
  • "joined_at": "2019-08-24T14:15:22Z",
  • "last_seen_at": "2019-08-24T14:15:22Z",
  • "last_login_at": "2019-08-24T14:15:22Z",
  • "expires_at": null,
  • "explore_limits": {
    },
  • "management_limits": { },
  • "gravatar_url": "//www.gravatar.com/avatar/6dde1de523fc80569f3dd80548e3eb9c?d=mm&s=80",
  • "groups": [
    ],
  • "identity_providers": [
    ]
}

Delete user

Removes the requested user from the domain. If the user is the only domain administrator left, the call will fail and an error specifying that the removal of the only domain administrator is not allowed will be returned.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
username
required
string
Example: louise.data

Responses

Response samples

Content type
application/json
""

Export users

Authorizations:
QueryAPIKeyHeaderAPIKey
query Parameters
subdomains
string

Subdomains to include in the CSV (requires the permission to export subdomains)

delimiter
string = 1 characters
Default: ","
Example: delimiter=;

Field separator

Responses

Response samples

Content type
text/csv
username,last_name,first_name,email,date_joined,last_seen,groups,permissions
louise.data,,,contact@mail.com,2022-08-19 11:43:58+00:00,2023-04-24 12:16:34.099404+00:00,Domain administrators;Data publishers,create_dataset;edit_dataset;explore_restricted_dataset;manage_dataset;publish_dataset

Invite users

This bulk endpoint creates an account for each of the given users and sends them an email so that they can log in. Each item in the payload must contain at least an email address, and may contain additional fields, such as groups and permissions. Returned body is an object in which each key is the number of the requested user in the payload ("0" = first user) and value contains a status_code ("success" or "error") and either "data" corresponding to the user or "error" describing the error.

Authorizations:
QueryAPIKeyHeaderAPIKey
Request Body schema: application/json
Array
username
string

The user's username

first_name
string

The user's first name

last_name
string

The user's last name

email
required
string

The user's e-mail address

permissions
Array of strings (Permission)
Items Enum: "edit_domain" "create_page" "edit_page" "manage_page" "explore_restricted_page" "create_dataset" "edit_dataset" "publish_dataset" "manage_dataset" "explore_restricted_dataset" "edit_reuse" "manage_subdomains" "explore_monitoring" "edit_theme" "edit_form" "submit_private_form" "create_external_asset" "edit_external_asset" "explore_restricted_external_asset" "manage_glossary" "manage_showcase_requests"

A list of permissions granted to this user

object (ExploreLimits)

An object holding the user's quotas on this domain

management_limits
object (ManagementLimits)
Deprecated

An object holding the user's limits on this domain

Array of objects (User group schema)

A list of groups the user belongs to

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
{
  • "01": {
    },
  • "02": {
    }
}

Provision users

This bulk endpoint creates an account for each of the given users using the given identity provider. Each item in the payload must contain at least an identity provider, and may contain additional fields, such as groups and permissions. Returned body is an object in which each key is the number of the requested user in the payload ("0" = first user) and value contains a status_code ("success" or "error") and either "data" corresponding to the user or "error" describing the error.

Authorizations:
QueryAPIKeyHeaderAPIKey
Request Body schema: application/json
username
string

The user's username

first_name
string

The user's first name

last_name
string

The user's last name

email
required
string

The user's e-mail address

permissions
Array of strings (Permission)
Items Enum: "edit_domain" "create_page" "edit_page" "manage_page" "explore_restricted_page" "create_dataset" "edit_dataset" "publish_dataset" "manage_dataset" "explore_restricted_dataset" "edit_reuse" "manage_subdomains" "explore_monitoring" "edit_theme" "edit_form" "submit_private_form" "create_external_asset" "edit_external_asset" "explore_restricted_external_asset" "manage_glossary" "manage_showcase_requests"

A list of permissions granted to this user

object (ExploreLimits)

An object holding the user's quotas on this domain

management_limits
object (ManagementLimits)
Deprecated

An object holding the user's limits on this domain

Array of objects (User group schema)

A list of groups the user belongs to

required
object
identity_provider_attributes
object

Responses

Request samples

Content type
application/json
{
  • "username": "louise.data",
  • "first_name": "Louise",
  • "last_name": "Data",
  • "email": "contact@email.com",
  • "permissions": [
    ],
  • "explore_limits": {
    },
  • "management_limits": { },
  • "groups": [
    ],
  • "identity_provider": {
    },
  • "identity_provider_attributes": { }
}

Response samples

Content type
application/json
{
  • "01": {
    },
  • "02": {
    }
}

User groups

A group is an entity comprising several users. When users are added to a group, they benefit from the permissions, quotas and limits of this group.

Through the Automation API, the following can be performed on the current domain:

  • list groups,
  • lookup a specific group,
  • create groups,
  • grant groups permissions, quotas and limits,
  • list, add and delete users in groups,
  • delete groups

User group schema

uid
required
string

The group identifier

title
required
string or null

The group title

description
string

The group description

user_count
number

The count of users in the group

permissions
Array of strings (Permission)
Items Enum: "edit_domain" "create_page" "edit_page" "manage_page" "explore_restricted_page" "create_dataset" "edit_dataset" "publish_dataset" "manage_dataset" "explore_restricted_dataset" "edit_reuse" "manage_subdomains" "explore_monitoring" "edit_theme" "edit_form" "submit_private_form" "create_external_asset" "edit_external_asset" "explore_restricted_external_asset" "manage_glossary" "manage_showcase_requests"

A list of permissions granted to the members of this group

object (ExploreLimits)

An object holding the group's quotas on this domain

management_limits
object (ManagementLimits)
Deprecated

An object holding the group's limits on this domain

created_at
string <date-time>
updated_at
string <date-time>
object (RelatedUserReadOnly)

Short representation of a User with only its username

object (RelatedUserReadOnly)

Short representation of a User with only its username

{
  • "uid": "content_designers",
  • "title": "Content Designers",
  • "description": "This wonderful group is for designers only.",
  • "user_count": 42,
  • "permissions": [
    ],
  • "explore_limits": {
    },
  • "management_limits": { },
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_by": {
    },
  • "updated_by": {
    }
}

List user groups

Authorizations:
QueryAPIKeyHeaderAPIKey
query Parameters
limit
integer [ 0 .. 1000 ]
Default: 20
Example: limit=20

The maximum number of results returned by the API when the response is paginated. Tip: You can make a request with the parameter "limit" set to 0 to get only the metadata ("results" property will contain an empty array).

offset
integer

The number of results to skip before beginning the listing in case of a paginated response

search
string

full-text search among uid, title and description properties

sort
string
Default: "updated_at"
Enum: "created_at" "updated_at" "created_by__username" "updated_by__username" "user_count" "group__title"

sort results with respect to the specified properties.

permissions
Array of strings (Permission)
Items Enum: "edit_domain" "create_page" "edit_page" "manage_page" "explore_restricted_page" "create_dataset" "edit_dataset" "publish_dataset" "manage_dataset" "explore_restricted_dataset" "edit_reuse" "manage_subdomains" "explore_monitoring" "edit_theme" "edit_form" "submit_private_form" "create_external_asset" "edit_external_asset" "explore_restricted_external_asset" "manage_glossary" "manage_showcase_requests"

filter groups according to the specified list of permissions

Responses

Response samples

Content type
application/json
{
  • "total_count": 18,
  • "next": null,
  • "previous": null,
  • "results": [
    ]
}

Create a user group

Authorizations:
QueryAPIKeyHeaderAPIKey
Request Body schema: application/json
title
required
string or null

The group title

description
string

The group description

permissions
Array of strings (Permission)
Items Enum: "edit_domain" "create_page" "edit_page" "manage_page" "explore_restricted_page" "create_dataset" "edit_dataset" "publish_dataset" "manage_dataset" "explore_restricted_dataset" "edit_reuse" "manage_subdomains" "explore_monitoring" "edit_theme" "edit_form" "submit_private_form" "create_external_asset" "edit_external_asset" "explore_restricted_external_asset" "manage_glossary" "manage_showcase_requests"

A list of permissions granted to the members of this group

object (ExploreLimits)

An object holding the group's quotas on this domain

management_limits
object (ManagementLimits)
Deprecated

An object holding the group's limits on this domain

Responses

Request samples

Content type
application/json
{
  • "title": "Content Designers",
  • "description": "This wonderful group is for designers only.",
  • "permissions": [
    ],
  • "explore_limits": {
    },
  • "management_limits": { }
}

Response samples

Content type
application/json
{
  • "uid": "content_designers",
  • "title": "Content Designers",
  • "description": "This wonderful group is for designers only.",
  • "user_count": 42,
  • "permissions": [
    ],
  • "explore_limits": {
    },
  • "management_limits": { },
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_by": {
    },
  • "updated_by": {
    }
}

Retrieve a user group

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
group_uid
required
string
Example: group_identifier

Responses

Response samples

Content type
application/json
{
  • "uid": "content_designers",
  • "title": "Content Designers",
  • "description": "This wonderful group is for designers only.",
  • "user_count": 42,
  • "permissions": [
    ],
  • "explore_limits": {
    },
  • "management_limits": { },
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_by": {
    },
  • "updated_by": {
    }
}

Update a user group

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
group_uid
required
string
Example: group_identifier
Request Body schema: application/json
title
required
string or null

The group title

description
string

The group description

permissions
Array of strings (Permission)
Items Enum: "edit_domain" "create_page" "edit_page" "manage_page" "explore_restricted_page" "create_dataset" "edit_dataset" "publish_dataset" "manage_dataset" "explore_restricted_dataset" "edit_reuse" "manage_subdomains" "explore_monitoring" "edit_theme" "edit_form" "submit_private_form" "create_external_asset" "edit_external_asset" "explore_restricted_external_asset" "manage_glossary" "manage_showcase_requests"

A list of permissions granted to the members of this group

object (ExploreLimits)

An object holding the group's quotas on this domain

management_limits
object (ManagementLimits)
Deprecated

An object holding the group's limits on this domain

Responses

Request samples

Content type
application/json
{
  • "title": "Content Designers",
  • "description": "This wonderful group is for designers only.",
  • "permissions": [
    ],
  • "explore_limits": {
    },
  • "management_limits": { }
}

Response samples

Content type
application/json
{
  • "uid": "content_designers",
  • "title": "Content Designers",
  • "description": "This wonderful group is for designers only.",
  • "user_count": 42,
  • "permissions": [
    ],
  • "explore_limits": {
    },
  • "management_limits": { },
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_by": {
    },
  • "updated_by": {
    }
}

Delete a user group

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
group_uid
required
string
Example: group_identifier

Responses

Response samples

Content type
application/json
""

List users of a user group

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
group_uid
required
string
Example: group_identifier

Responses

Response samples

Content type
application/json
{
  • "total_count": 18,
  • "next": null,
  • "previous": null,
  • "results": [
    ]
}

Add a user to a user group

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
group_uid
required
string
Example: group_identifier
Request Body schema: application/json
username
string

Responses

Request samples

Content type
application/json
{
  • "username": "louise.data"
}

Response samples

Content type
application/json
{
  • "username": "louise.data",
  • "display_name": "louise.data",
  • "first_name": "Louise",
  • "last_name": "Data",
  • "is_active": true,
  • "email": "contact@email.com",
  • "is_ods": false,
  • "account_type": "global",
  • "permissions": [
    ],
  • "joined_at": "2019-08-24T14:15:22Z",
  • "last_seen_at": "2019-08-24T14:15:22Z",
  • "last_login_at": "2019-08-24T14:15:22Z",
  • "expires_at": null,
  • "explore_limits": {
    },
  • "management_limits": { },
  • "gravatar_url": "//www.gravatar.com/avatar/6dde1de523fc80569f3dd80548e3eb9c?d=mm&s=80",
  • "groups": [
    ],
  • "identity_providers": [
    ]
}

Batch add of users to a user group

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
group_uid
required
string
Example: group_identifier
Request Body schema: application/json
Array
username
string

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
{
  • "01": {
    },
  • "02": {
    }
}

Remove a user from a user group

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
group_uid
required
string
Example: group_identifier
username
required
string
Example: louise.data

Responses

Response samples

Content type
application/json
""

API keys

API keys are randomly generated passwords that can be used as an authentication method to access a protected API endpoint as an authorized user.

Through the Automation API, it is possible to list, create, lookup, update and delete API keys for one's own user.

API key schema

uid
string
label
string
key
string
permissions
Array of strings (Permission)
Items Enum: "edit_domain" "create_page" "edit_page" "manage_page" "explore_restricted_page" "create_dataset" "edit_dataset" "publish_dataset" "manage_dataset" "explore_restricted_dataset" "edit_reuse" "manage_subdomains" "explore_monitoring" "edit_theme" "edit_form" "submit_private_form" "create_external_asset" "edit_external_asset" "explore_restricted_external_asset" "manage_glossary" "manage_showcase_requests"

A list of permissions granted to this API Key

created_at
string <date-time>
object (RelatedUserReadOnly)

Short representation of a User with only its username

object
is_revoked
boolean
{
  • "uid": "ak_qf2hyt",
  • "label": "My API Key",
  • "key": "63d534ca0c1806024215cfd99dba4ea188f55d4f1b53ac0b6eceb455",
  • "permissions": [
    ],
  • "created_at": "2019-08-24T14:15:22Z",
  • "user": {
    },
  • "revocation_status": {
    },
  • "is_revoked": true
}

List API keys

List API keys

Authorizations:
QueryAPIKeyHeaderAPIKey
query Parameters
limit
integer [ 0 .. 1000 ]
Default: 20
Example: limit=20

The maximum number of results returned by the API when the response is paginated. Tip: You can make a request with the parameter "limit" set to 0 to get only the metadata ("results" property will contain an empty array).

offset
integer

The number of results to skip before beginning the listing in case of a paginated response

Responses

Response samples

Content type
application/json
{
  • "total_count": 18,
  • "next": null,
  • "previous": null,
  • "results": [
    ]
}

Create an API key

Create an API key

Authorizations:
QueryAPIKeyHeaderAPIKey
Request Body schema: application/json
label
string
permissions
Array of strings (Permission)
Items Enum: "edit_domain" "create_page" "edit_page" "manage_page" "explore_restricted_page" "create_dataset" "edit_dataset" "publish_dataset" "manage_dataset" "explore_restricted_dataset" "edit_reuse" "manage_subdomains" "explore_monitoring" "edit_theme" "edit_form" "submit_private_form" "create_external_asset" "edit_external_asset" "explore_restricted_external_asset" "manage_glossary" "manage_showcase_requests"

A list of permissions granted to this API Key

Responses

Request samples

Content type
application/json
{
  • "label": "My API Key",
  • "permissions": [
    ]
}

Response samples

Content type
application/json
{
  • "uid": "ak_qf2hyt",
  • "label": "My API Key",
  • "key": "63d534ca0c1806024215cfd99dba4ea188f55d4f1b53ac0b6eceb455",
  • "permissions": [
    ],
  • "created_at": "2019-08-24T14:15:22Z",
  • "user": {
    },
  • "revocation_status": {
    },
  • "is_revoked": true
}

Retrieve an API key

Retrieve an API key

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
apikey_uid
required
string
Example: ak_qf2hyt
query Parameters
expand
string
Value: "user"

The list of fields to expand.

Responses

Response samples

Content type
application/json
{
  • "uid": "ak_qf2hyt",
  • "label": "My API Key",
  • "key": "63d534ca0c1806024215cfd99dba4ea188f55d4f1b53ac0b6eceb455",
  • "permissions": [
    ],
  • "created_at": "2019-08-24T14:15:22Z",
  • "user": {
    },
  • "revocation_status": {
    },
  • "is_revoked": true
}

Update an API key

Update an API key

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
apikey_uid
required
string
Example: ak_qf2hyt
Request Body schema: application/json
label
string
permissions
Array of strings (Permission)
Items Enum: "edit_domain" "create_page" "edit_page" "manage_page" "explore_restricted_page" "create_dataset" "edit_dataset" "publish_dataset" "manage_dataset" "explore_restricted_dataset" "edit_reuse" "manage_subdomains" "explore_monitoring" "edit_theme" "edit_form" "submit_private_form" "create_external_asset" "edit_external_asset" "explore_restricted_external_asset" "manage_glossary" "manage_showcase_requests"

A list of permissions granted to this API Key

Responses

Request samples

Content type
application/json
{
  • "label": "My API Key",
  • "permissions": [
    ]
}

Response samples

Content type
application/json
{
  • "uid": "ak_qf2hyt",
  • "label": "My API Key",
  • "key": "63d534ca0c1806024215cfd99dba4ea188f55d4f1b53ac0b6eceb455",
  • "permissions": [
    ],
  • "created_at": "2019-08-24T14:15:22Z",
  • "user": {
    },
  • "revocation_status": {
    },
  • "is_revoked": true
}

Revoke an API key

Revoke an API key so that it is no longer valid. The reason for revocation can be provided.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
apikey_uid
required
string
Example: ak_qf2hyt
Request Body schema: application/json
reason
string

Responses

Request samples

Content type
application/json
{
  • "reason": "Explanation why the API Key has been revoked"
}

Response samples

Content type
application/json
{
  • "uid": "ak_qf2hyt",
  • "label": "My API Key",
  • "key": "63d534ca0c1806024215cfd99dba4ea188f55d4f1b53ac0b6eceb455",
  • "permissions": [
    ],
  • "created_at": "2019-08-24T14:15:22Z",
  • "user": {
    },
  • "revocation_status": {
    },
  • "is_revoked": true
}

Search an API key

Domain administrators can search for a specific API key, revoked or active.

Authorizations:
QueryAPIKeyHeaderAPIKey
Request Body schema: application/json
key
string

Responses

Request samples

Content type
application/json
{
  • "key": "63d534ca0c1806024215cfd99dba4ea188f55d4f1b53ac0b6eceb455"
}

Response samples

Content type
application/json
{
  • "found": true,
  • "result": {
    }
}

Datasources connections

Connection schema

uid
string non-empty
type
required
string non-empty
is_reusable
boolean

Defines if the connection can be reused across multiple datasets

can_reuse
boolean

Defines if the current user has the permission to reuse this connection

can_manage
boolean

Defines if the current user has the permission to manage this connection

dataset_count
number

Number of datasets using this connection

user_count
number

Number of users with explicit access to this connection

group_count
number

Number of user groups with explicit access to this connection

created_at
string <date-time> non-empty
updated_at
string <date-time> non-empty
url
required
string non-empty
Array of objects
HTTPAuth (object) or null
Example
{
  • "uid": "co_qf2hyt",
  • "type": "http",
  • "is_reusable": true,
  • "can_reuse": true,
  • "can_manage": true,
  • "dataset_count": 59,
  • "user_count": 7,
  • "group_count": 4,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "headers": [
    ],
  • "auth": {
    }
}

List connections

List the datasources connections

Authorizations:
QueryAPIKeyHeaderAPIKey
query Parameters
limit
integer [ 0 .. 1000 ]
Default: 20
Example: limit=20

The maximum number of results returned by the API when the response is paginated. Tip: You can make a request with the parameter "limit" set to 0 to get only the metadata ("results" property will contain an empty array).

offset
integer

The number of results to skip before beginning the listing in case of a paginated response

sort
string
Default: "created_at"
Enum: "created_at" "updated_at" "type" "dataset_count"

Sort results with respect to the specified properties. You can prefix the property with the minus sign (-) for descending order, e.g. -created_at.

Responses

Response samples

Content type
application/json
{
  • "total_count": 18,
  • "next": null,
  • "previous": null,
  • "results": [
    ]
}

Create connection

Create a datasource connection

Authorizations:
QueryAPIKeyHeaderAPIKey
Request Body schema: application/json
type
required
string non-empty
is_reusable
boolean

Defines if the connection can be reused across multiple datasets

url
required
string non-empty
Array of objects
HTTPAuth (object) or null

Responses

Request samples

Content type
application/json
Example
{
  • "type": "http",
  • "is_reusable": true,
  • "headers": [
    ],
  • "auth": {
    }
}

Response samples

Content type
application/json
Example
{
  • "uid": "co_qf2hyt",
  • "type": "http",
  • "is_reusable": true,
  • "can_reuse": true,
  • "can_manage": true,
  • "dataset_count": 59,
  • "user_count": 7,
  • "group_count": 4,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "headers": [
    ],
  • "auth": {
    }
}

Retrieve Connection

Retrieve a datasource connection

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
connection_uid
required
string
Example: co_qf2hyt

Responses

Response samples

Content type
application/json
Example
{
  • "uid": "co_qf2hyt",
  • "type": "http",
  • "is_reusable": true,
  • "can_reuse": true,
  • "can_manage": true,
  • "dataset_count": 59,
  • "user_count": 7,
  • "group_count": 4,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "headers": [
    ],
  • "auth": {
    }
}

Update Connection

Update a datasource connection. Datasets using this connection will be impacted, but won't be automatically republished.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
connection_uid
required
string
Example: co_qf2hyt
Request Body schema: application/json
type
required
string non-empty
is_reusable
boolean

Defines if the connection can be reused across multiple datasets

url
required
string non-empty
Array of objects
HTTPAuth (object) or null

Responses

Request samples

Content type
application/json
Example
{
  • "type": "http",
  • "is_reusable": true,
  • "headers": [
    ],
  • "auth": {
    }
}

Response samples

Content type
application/json
Example
{
  • "uid": "co_qf2hyt",
  • "type": "http",
  • "is_reusable": true,
  • "can_reuse": true,
  • "can_manage": true,
  • "dataset_count": 59,
  • "user_count": 7,
  • "group_count": 4,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "headers": [
    ],
  • "auth": {
    }
}

Delete Connection

Delete a datasource connection

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
connection_uid
required
string
Example: co_qf2hyt

Responses

Response samples

Content type
application/json
""

Datasource connection security

List user rulesets

List the datasource connection user-level security rulesets

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
connection_uid
required
string
Example: co_qf2hyt
query Parameters
limit
integer [ 0 .. 1000 ]
Default: 20
Example: limit=20

The maximum number of results returned by the API when the response is paginated. Tip: You can make a request with the parameter "limit" set to 0 to get only the metadata ("results" property will contain an empty array).

offset
integer

The number of results to skip before beginning the listing in case of a paginated response

Responses

Response samples

Content type
application/json
{
  • "total_count": 18,
  • "next": null,
  • "previous": null,
  • "results": [
    ]
}

Create user ruleset

Create a datasource connection user-level security ruleset

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
connection_uid
required
string
Example: co_qf2hyt
Request Body schema: application/json
object (RelatedUser)

The user targeted by this ruleset.

permissions
Array of strings (RulesetPermission)
Items Enum: "explore_restricted_dataset" "explore_restricted_page" "edit_dataset" "publish_dataset" "manage_dataset" "manage_connection" "edit_page" "manage_page" "submit_private_form" "moderate_form" "edit_form"

List of special permissions granted to the target.

Responses

Request samples

Content type
application/json
{
  • "user": {
    },
  • "permissions": [
    ]
}

Response samples

Content type
application/json
{
  • "user": {
    },
  • "permissions": [
    ]
}

Retrieve user ruleset

Retrieve a datasource connection user-level security ruleset

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
connection_uid
required
string
Example: co_qf2hyt
username
required
string
Example: louise.data

Responses

Response samples

Content type
application/json
{
  • "user": {
    },
  • "permissions": [
    ]
}

Update user ruleset

Update a datasource connection user-level security ruleset

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
connection_uid
required
string
Example: co_qf2hyt
username
required
string
Example: louise.data
Request Body schema: application/json
object (RelatedUser)

The user targeted by this ruleset.

permissions
Array of strings (RulesetPermission)
Items Enum: "explore_restricted_dataset" "explore_restricted_page" "edit_dataset" "publish_dataset" "manage_dataset" "manage_connection" "edit_page" "manage_page" "submit_private_form" "moderate_form" "edit_form"

List of special permissions granted to the target.

Responses

Request samples

Content type
application/json
{
  • "user": {
    },
  • "permissions": [
    ]
}

Response samples

Content type
application/json
{
  • "user": {
    },
  • "permissions": [
    ]
}

Delete user ruleset

Delete a datasource connection user-level security ruleset

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
connection_uid
required
string
Example: co_qf2hyt
username
required
string
Example: louise.data

Responses

Response samples

Content type
application/json
""

List group rulesets

List the datasource connection group-level security rulesets

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
connection_uid
required
string
Example: co_qf2hyt
query Parameters
limit
integer [ 0 .. 1000 ]
Default: 20
Example: limit=20

The maximum number of results returned by the API when the response is paginated. Tip: You can make a request with the parameter "limit" set to 0 to get only the metadata ("results" property will contain an empty array).

offset
integer

The number of results to skip before beginning the listing in case of a paginated response

Responses

Response samples

Content type
application/json
{
  • "total_count": 18,
  • "next": null,
  • "previous": null,
  • "results": [
    ]
}

Create group ruleset

Create a datasource connection group-level security ruleset

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
connection_uid
required
string
Example: co_qf2hyt
Request Body schema: application/json
object

The group targeted by this ruleset.

permissions
Array of strings (RulesetPermission)
Items Enum: "explore_restricted_dataset" "explore_restricted_page" "edit_dataset" "publish_dataset" "manage_dataset" "manage_connection" "edit_page" "manage_page" "submit_private_form" "moderate_form" "edit_form"

List of special permissions granted to the target.

Responses

Request samples

Content type
application/json
{
  • "group": {
    },
  • "permissions": [
    ]
}

Response samples

Content type
application/json
{
  • "group": {
    },
  • "permissions": [
    ]
}

Retrieve group ruleset

Retrieve a datasource connection group-level security ruleset

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
connection_uid
required
string
Example: co_qf2hyt
group_uid
required
string
Example: group_identifier

Responses

Response samples

Content type
application/json
{
  • "group": {
    },
  • "permissions": [
    ]
}

Update group ruleset

Update a datasource connection group-level security ruleset

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
connection_uid
required
string
Example: co_qf2hyt
group_uid
required
string
Example: group_identifier
Request Body schema: application/json
object

The group targeted by this ruleset.

permissions
Array of strings (RulesetPermission)
Items Enum: "explore_restricted_dataset" "explore_restricted_page" "edit_dataset" "publish_dataset" "manage_dataset" "manage_connection" "edit_page" "manage_page" "submit_private_form" "moderate_form" "edit_form"

List of special permissions granted to the target.

Responses

Request samples

Content type
application/json
{
  • "group": {
    },
  • "permissions": [
    ]
}

Response samples

Content type
application/json
{
  • "group": {
    },
  • "permissions": [
    ]
}

Delete group ruleset

Delete a datasource connection group-level security ruleset

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
connection_uid
required
string
Example: co_qf2hyt
group_uid
required
string
Example: group_identifier

Responses

Response samples

Content type
application/json
""

Studio pages

Studio is the new no-code editor that is designed to help you do just that: create and edit pages, built on your data, in only minutes.

Through the Automation API, it is possible to manage studio pages as well as to configure their visiblity on the portal.

Studio page schema

uid
string non-empty

Unique identifier of the page

slug
string non-empty

Human-readable identifier used to generate the page URL

public
boolean
Default: false

Defines if the page is visible to a few specific users, or every user who can explore the portal

Array of objects
first_published_at
string <date-time> non-empty

Date when the page was first published

created_at
string <date-time> non-empty

Date when the page was created

updated_at
string <date-time> non-empty

Date when the page was last edited

object (RelatedUserReadOnly)

The user who created the page

{
  • "uid": "sp_qf2hyt",
  • "slug": "my-page",
  • "public": false,
  • "contents": [
    ],
  • "first_published_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_by": {
    }
}

List pages

List studio pages

Authorizations:
QueryAPIKeyHeaderAPIKey
query Parameters
limit
integer [ 0 .. 1000 ]
Default: 20
Example: limit=20

The maximum number of results returned by the API when the response is paginated. Tip: You can make a request with the parameter "limit" set to 0 to get only the metadata ("results" property will contain an empty array).

offset
integer

The number of results to skip before beginning the listing in case of a paginated response

Responses

Response samples

Content type
application/json
{
  • "total_count": 18,
  • "next": null,
  • "previous": null,
  • "results": [
    ]
}

Create page

Create a studio page

Authorizations:
QueryAPIKeyHeaderAPIKey
Request Body schema: application/json
slug
string non-empty

Human-readable identifier used to generate the page URL

public
boolean
Default: false

Defines if the page is visible to a few specific users, or every user who can explore the portal

Responses

Request samples

Content type
application/json
{
  • "slug": "my-page",
  • "public": false
}

Response samples

Content type
application/json
{
  • "uid": "sp_qf2hyt",
  • "slug": "my-page",
  • "public": false,
  • "contents": [
    ],
  • "first_published_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_by": {
    }
}

Retrieve page

Retrieve a studio page

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
studio_page_uid
required
string
Example: sp_qf2hyt

Responses

Response samples

Content type
application/json
{
  • "uid": "sp_qf2hyt",
  • "slug": "my-page",
  • "public": false,
  • "contents": [
    ],
  • "first_published_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_by": {
    }
}

Update page

Update a studio page

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
studio_page_uid
required
string
Example: sp_qf2hyt
Request Body schema: application/json
slug
string non-empty

Human-readable identifier used to generate the page URL

public
boolean
Default: false

Defines if the page is visible to a few specific users, or every user who can explore the portal

Responses

Request samples

Content type
application/json
{
  • "slug": "my-page",
  • "public": false
}

Response samples

Content type
application/json
{
  • "uid": "sp_qf2hyt",
  • "slug": "my-page",
  • "public": false,
  • "contents": [
    ],
  • "first_published_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_by": {
    }
}

Delete page

Delete a studio page

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
studio_page_uid
required
string
Example: sp_qf2hyt

Responses

Response samples

Content type
application/json
""

Publish page

Publish a studio page. The page content metadata must have a title set (via the content metadata endpoint) before publishing.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
studio_page_uid
required
string
Example: sp_qf2hyt

Responses

Response samples

Content type
application/json
{
  • "detail": "ok"
}

Unpublish page

Unpublish a studio page

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
studio_page_uid
required
string
Example: sp_qf2hyt

Responses

Response samples

Content type
application/json
{
  • "detail": "ok"
}

Studio pages content

Studio page content versions (blocks, layouts, data-providers and filters)

Retrieve content

Retrieve the blocks, layouts, data-providers and filters of a studio page content version

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
studio_page_uid
required
string
Example: sp_qf2hyt
version_name
required
string
Example: draft

Responses

Response samples

Content type
application/json
{
  • "version_name": "string",
  • "blocks": { },
  • "layouts": { },
  • "data_providers": { },
  • "filters": { },
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "updated_by": {
    }
}

Update content

Update the draft blocks, layouts, data-providers and filters of a studio page content version

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
studio_page_uid
required
string
Example: sp_qf2hyt
version_name
required
string
Example: draft
Request Body schema: application/json
required
object

Page blocks keyed by block UID

object

Page layouts configuration

object

Page data providers configuration

object

Page filters configuration

Responses

Request samples

Content type
application/json
{
  • "blocks": { },
  • "layouts": { },
  • "data_providers": { },
  • "filters": { }
}

Response samples

Content type
application/json
{
  • "version_name": "string",
  • "blocks": { },
  • "layouts": { },
  • "data_providers": { },
  • "filters": { },
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "updated_by": {
    }
}

Get studio page content metadata

Retrieve the metadata for a studio page content version.

The response is a two-level object: { template_name: { field_name: { value, remote_value, override_remote_value } } }.

asset template fields:

  • title — Title of the page (string)
  • description — Description of the page (string, may be HTML)

The exact list of templates and fields available on a given portal can be retrieved using the list-metadata-templates and list-metadata-template-fields operations.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
studio_page_uid
required
string
Example: sp_qf2hyt
version_name
required
string
Example: draft

Responses

Response samples

Content type
application/json
{
  • "asset": {
    }
}

Update studio page content metadata

Update the metadata for a studio page content version. asset.title must be set before the page can be published.

asset template fields:

  • title — Title of the page (string)
  • description — Description of the page (string, may be HTML)

The exact list of templates and fields available on a given portal can be retrieved using the list-metadata-templates and list-metadata-template-fields operations.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
studio_page_uid
required
string
Example: sp_qf2hyt
version_name
required
string
Example: draft
Request Body schema: application/json
required
property name*
additional property
any

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{ }

Studio pages security

The page security is the set of rules that defines who (which users / groups) can explore or edit a given studio page.

It is defined through 2 variables:

  • a page restriction through the public attribute in the page object, which defines if a page is visible to every user who can explore the portal
  • specific rulesets for users and groups

If the page isn't set as public, then the page will only appear in the portal for users who have a ruleset declared for them, either directly or through a group. Other users won't have any access to the page.

Rulesets can also give users permission to edit the page.

List group rulesets

List the studio page group level security rulesets

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
studio_page_uid
required
string
Example: sp_qf2hyt
query Parameters
limit
integer [ 0 .. 1000 ]
Default: 20
Example: limit=20

The maximum number of results returned by the API when the response is paginated. Tip: You can make a request with the parameter "limit" set to 0 to get only the metadata ("results" property will contain an empty array).

offset
integer

The number of results to skip before beginning the listing in case of a paginated response

Responses

Response samples

Content type
application/json
{
  • "total_count": 18,
  • "next": null,
  • "previous": null,
  • "results": [
    ]
}

Create group ruleset

Create a studio page group level security ruleset

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
studio_page_uid
required
string
Example: sp_qf2hyt
Request Body schema: application/json
object

The group targeted by this ruleset.

permissions
Array of strings (RulesetPermission)
Items Enum: "explore_restricted_dataset" "explore_restricted_page" "edit_dataset" "publish_dataset" "manage_dataset" "manage_connection" "edit_page" "manage_page" "submit_private_form" "moderate_form" "edit_form"

List of special permissions granted to the target.

Responses

Request samples

Content type
application/json
{
  • "group": {
    },
  • "permissions": [
    ]
}

Response samples

Content type
application/json
{
  • "group": {
    },
  • "permissions": [
    ]
}

Retrieve group ruleset

Retrieve a studio page group level security ruleset

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
studio_page_uid
required
string
Example: sp_qf2hyt
group_uid
required
string
Example: group_identifier

Responses

Response samples

Content type
application/json
{
  • "group": {
    },
  • "permissions": [
    ]
}

Update group ruleset

Update a studio page group level security ruleset

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
studio_page_uid
required
string
Example: sp_qf2hyt
group_uid
required
string
Example: group_identifier
Request Body schema: application/json
object

The group targeted by this ruleset.

permissions
Array of strings (RulesetPermission)
Items Enum: "explore_restricted_dataset" "explore_restricted_page" "edit_dataset" "publish_dataset" "manage_dataset" "manage_connection" "edit_page" "manage_page" "submit_private_form" "moderate_form" "edit_form"

List of special permissions granted to the target.

Responses

Request samples

Content type
application/json
{
  • "group": {
    },
  • "permissions": [
    ]
}

Response samples

Content type
application/json
{
  • "group": {
    },
  • "permissions": [
    ]
}

Delete group ruleset

Delete a studio page group level security ruleset

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
studio_page_uid
required
string
Example: sp_qf2hyt
group_uid
required
string
Example: group_identifier

Responses

Response samples

Content type
application/json
""

List user rulesets

List the studio page user-level security rulesets

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
studio_page_uid
required
string
Example: sp_qf2hyt
query Parameters
limit
integer [ 0 .. 1000 ]
Default: 20
Example: limit=20

The maximum number of results returned by the API when the response is paginated. Tip: You can make a request with the parameter "limit" set to 0 to get only the metadata ("results" property will contain an empty array).

offset
integer

The number of results to skip before beginning the listing in case of a paginated response

Responses

Response samples

Content type
application/json
{
  • "total_count": 18,
  • "next": null,
  • "previous": null,
  • "results": [
    ]
}

Create user ruleset

Create a studio page user-level security ruleset

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
studio_page_uid
required
string
Example: sp_qf2hyt
Request Body schema: application/json
object (RelatedUser)

The user targeted by this ruleset.

permissions
Array of strings (RulesetPermission)
Items Enum: "explore_restricted_dataset" "explore_restricted_page" "edit_dataset" "publish_dataset" "manage_dataset" "manage_connection" "edit_page" "manage_page" "submit_private_form" "moderate_form" "edit_form"

List of special permissions granted to the target.

Responses

Request samples

Content type
application/json
{
  • "user": {
    },
  • "permissions": [
    ]
}

Response samples

Content type
application/json
{
  • "user": {
    },
  • "permissions": [
    ]
}

Retrieve user ruleset

Retrieve a studio page user-level security ruleset

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
studio_page_uid
required
string
Example: sp_qf2hyt
username
required
string
Example: louise.data

Responses

Response samples

Content type
application/json
{
  • "user": {
    },
  • "permissions": [
    ]
}

Update user ruleset

Update a studio page user-level security ruleset

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
studio_page_uid
required
string
Example: sp_qf2hyt
username
required
string
Example: louise.data
Request Body schema: application/json
object (RelatedUser)

The user targeted by this ruleset.

permissions
Array of strings (RulesetPermission)
Items Enum: "explore_restricted_dataset" "explore_restricted_page" "edit_dataset" "publish_dataset" "manage_dataset" "manage_connection" "edit_page" "manage_page" "submit_private_form" "moderate_form" "edit_form"

List of special permissions granted to the target.

Responses

Request samples

Content type
application/json
{
  • "user": {
    },
  • "permissions": [
    ]
}

Response samples

Content type
application/json
{
  • "user": {
    },
  • "permissions": [
    ]
}

Delete user ruleset

Delete a studio page user-level security ruleset

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
studio_page_uid
required
string
Example: sp_qf2hyt
username
required
string
Example: louise.data

Responses

Response samples

Content type
application/json
""

Studio pages translations

Asset translations is a dictionary that stores terms localized into the languages supported by the domain.

When an asset is published, all internationalized (i18n) fields such as translatable metadata and schema information are enriched with their corresponding translations from this dictionary.

Get studio page translations

Retrieves the translation dictionary for a studio page

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
studio_page_uid
required
string
Example: sp_qf2hyt

Responses

Response samples

Content type
application/json
{
  • "Climate Data Analysis 2023": {
    },
  • "Temperature measurements from global weather stations": {
    }
}

Update studio page translations

Updates the translation dictionary for a studio page

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
studio_page_uid
required
string
Example: sp_qf2hyt
Request Body schema: application/json
required
additional property
object

The translations for a specific key

Responses

Request samples

Content type
application/json
{
  • "Climate Data Analysis 2023": {
    },
  • "Temperature measurements from global weather stations": {
    }
}

Response samples

Content type
application/json
{
  • "Climate Data Analysis 2023": {
    },
  • "Temperature measurements from global weather stations": {
    }
}

Code editor pages

Code editor pages can be used to write editorial content directly on the platform, build advanced dashboards and organize data portals.

Through the Automation API, it is possible to list, create, edit and delete code editor pages as well as to configure pages visiblity on the portal.

Code editor page schema

slug
string

Human-readable identifier used to generate the page URL

description
string

Page description

required
object

Internationalized page content

template
string

The HTML template used by this page

has_subdomain_copies
boolean

Inform if the page been distributed to any subdomain

is_pushed_by_parent
boolean

Inform if the page has been distributed by a parent domain

is_restricted
boolean

Defines if the page is visible to a few specific users, or every user who can explore the portal

is_published
boolean

Defines if the page is published or unpublished. An unpublished page isn't included in the license quota.

object (RelatedUserReadOnly)

The user who created the page

object (RelatedUserReadOnly)

The user who last modified the page

updated_at
string <date-time>

Date when the page was last edited

created_at
string <date-time>

Date when the page was created

last_published_at
string <date-time>

Date when the page was last published

{
  • "slug": "hello_world",
  • "description": "A page saying hello",
  • "content": {
    },
  • "template": "custom.html",
  • "has_subdomain_copies": false,
  • "is_pushed_by_parent": false,
  • "is_restricted": true,
  • "is_published": true,
  • "created_by": {
    },
  • "updated_by": {
    },
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "last_published_at": "2019-08-24T14:15:22Z"
}

List pages

List code editor pages

Authorizations:
QueryAPIKeyHeaderAPIKey
query Parameters
limit
integer [ 0 .. 1000 ]
Default: 20
Example: limit=20

The maximum number of results returned by the API when the response is paginated. Tip: You can make a request with the parameter "limit" set to 0 to get only the metadata ("results" property will contain an empty array).

offset
integer

The number of results to skip before beginning the listing in case of a paginated response

Responses

Response samples

Content type
application/json
{
  • "total_count": 18,
  • "next": null,
  • "previous": null,
  • "results": [
    ]
}

Create page

Create a code editor page

Authorizations:
QueryAPIKeyHeaderAPIKey
Request Body schema: application/json
slug
string

Human-readable identifier used to generate the page URL

description
string

Page description

required
object

Internationalized page content

template
string

The HTML template used by this page

is_restricted
boolean

Defines if the page is visible to a few specific users, or every user who can explore the portal

is_published
boolean

Defines if the page is published or unpublished. An unpublished page isn't included in the license quota.

Responses

Request samples

Content type
application/json
{
  • "slug": "hello_world",
  • "description": "A page saying hello",
  • "content": {
    },
  • "template": "custom.html",
  • "is_restricted": true,
  • "is_published": true
}

Response samples

Content type
application/json
{
  • "slug": "hello_world",
  • "description": "A page saying hello",
  • "content": {
    },
  • "template": "custom.html",
  • "has_subdomain_copies": false,
  • "is_pushed_by_parent": false,
  • "is_restricted": true,
  • "is_published": true,
  • "created_by": {
    },
  • "updated_by": {
    },
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "last_published_at": "2019-08-24T14:15:22Z"
}

Delete multiple pages

Delete all code editor pages matching the search defined by the search and slug query parameters.

Authorizations:
QueryAPIKeyHeaderAPIKey
query Parameters
slug
Array of strings
Example: slug=slug1&slug=slug2

List of page slug to be removed.

search
string
Example: search=My Page Title

A search term to delete matching pages.

Responses

Response samples

Content type
application/json
[
  • "slug1",
  • "slug2"
]

Retrieve page

Retrieve a code editor page

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
page_slug
required
string
Example: page_slug

Responses

Response samples

Content type
application/json
{
  • "slug": "hello_world",
  • "description": "A page saying hello",
  • "content": {
    },
  • "template": "custom.html",
  • "has_subdomain_copies": false,
  • "is_pushed_by_parent": false,
  • "is_restricted": true,
  • "is_published": true,
  • "created_by": {
    },
  • "updated_by": {
    },
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "last_published_at": "2019-08-24T14:15:22Z"
}

Update page

Update a code editor page

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
page_slug
required
string
Example: page_slug
Request Body schema: application/json
slug
string

Human-readable identifier used to generate the page URL

description
string

Page description

required
object

Internationalized page content

template
string

The HTML template used by this page

is_restricted
boolean

Defines if the page is visible to a few specific users, or every user who can explore the portal

is_published
boolean

Defines if the page is published or unpublished. An unpublished page isn't included in the license quota.

Responses

Request samples

Content type
application/json
{
  • "slug": "hello_world",
  • "description": "A page saying hello",
  • "content": {
    },
  • "template": "custom.html",
  • "is_restricted": true,
  • "is_published": true
}

Response samples

Content type
application/json
{
  • "slug": "hello_world",
  • "description": "A page saying hello",
  • "content": {
    },
  • "template": "custom.html",
  • "has_subdomain_copies": false,
  • "is_pushed_by_parent": false,
  • "is_restricted": true,
  • "is_published": true,
  • "created_by": {
    },
  • "updated_by": {
    },
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "last_published_at": "2019-08-24T14:15:22Z"
}

Delete page

Delete a code editor page

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
page_slug
required
string
Example: page_slug

Responses

Response samples

Content type
application/json
""

Unpublish page

Unpublish a code editor page

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
page_slug
required
string
Example: page_slug

Responses

Response samples

Content type
application/json
{
  • "detail": "ok"
}

Publish page

Publish a code editor page

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
page_slug
required
string
Example: page_slug

Responses

Response samples

Content type
application/json
{
  • "detail": "ok"
}

Get code editor page metadata

Retrieve the metadata for a code editor page.

The response is a two-level object: { template_name: { field_name: { value, remote_value, override_remote_value } } }.

asset template fields:

  • title — Title of the page (string)
  • description — Description of the page (string)

The exact list of templates and fields available on a given portal can be retrieved using the list-metadata-templates and list-metadata-template-fields operations.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
page_slug
required
string
Example: page_slug

Responses

Response samples

Content type
application/json
{
  • "asset": {
    }
}

Update code editor page metadata

Update the metadata for a code editor page.

asset template fields:

  • title — Title of the page (string)
  • description — Description of the page (string)

The exact list of templates and fields available on a given portal can be retrieved using the list-metadata-templates and list-metadata-template-fields operations.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
page_slug
required
string
Example: page_slug
Request Body schema: application/json
required
property name*
additional property
any

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{ }

Code editor pages security

The page security is the set of rules that defines who (which users / groups) can explore or edit a given code editor page.

It is defined through 2 variables:

  • a page restriction through the is_restricted attribute in the page object, which defines if a page is visible to every user who can explore the portal
  • specific rulesets for users and groups

If the page is set as restricted, then the page will only appear in the portal for users who have a ruleset declared for them, either directly or through a group. Other users won't have any access to the page.

Rulesets can also give users permission to edit the page and manage its security.

List group rulesets

List the code editor page group level security rulesets

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
page_slug
required
string
Example: page_slug
query Parameters
limit
integer [ 0 .. 1000 ]
Default: 20
Example: limit=20

The maximum number of results returned by the API when the response is paginated. Tip: You can make a request with the parameter "limit" set to 0 to get only the metadata ("results" property will contain an empty array).

offset
integer

The number of results to skip before beginning the listing in case of a paginated response

Responses

Response samples

Content type
application/json
{
  • "total_count": 18,
  • "next": null,
  • "previous": null,
  • "results": [
    ]
}

Create group ruleset

Create a code editor page group level security ruleset

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
page_slug
required
string
Example: page_slug
Request Body schema: application/json
object

The group targeted by this ruleset.

permissions
Array of strings (RulesetPermission)
Items Enum: "explore_restricted_dataset" "explore_restricted_page" "edit_dataset" "publish_dataset" "manage_dataset" "manage_connection" "edit_page" "manage_page" "submit_private_form" "moderate_form" "edit_form"

List of special permissions granted to the target.

Responses

Request samples

Content type
application/json
{
  • "group": {
    },
  • "permissions": [
    ]
}

Response samples

Content type
application/json
{
  • "group": {
    },
  • "permissions": [
    ]
}

Retrieve group ruleset

Retrieve a code editor page group level security ruleset

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
page_slug
required
string
Example: page_slug
group_uid
required
string
Example: group_identifier

Responses

Response samples

Content type
application/json
{
  • "group": {
    },
  • "permissions": [
    ]
}

Update group ruleset

Update a code editor page group level security ruleset

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
page_slug
required
string
Example: page_slug
group_uid
required
string
Example: group_identifier
Request Body schema: application/json
object

The group targeted by this ruleset.

permissions
Array of strings (RulesetPermission)
Items Enum: "explore_restricted_dataset" "explore_restricted_page" "edit_dataset" "publish_dataset" "manage_dataset" "manage_connection" "edit_page" "manage_page" "submit_private_form" "moderate_form" "edit_form"

List of special permissions granted to the target.

Responses

Request samples

Content type
application/json
{
  • "group": {
    },
  • "permissions": [
    ]
}

Response samples

Content type
application/json
{
  • "group": {
    },
  • "permissions": [
    ]
}

Delete group ruleset

Delete a code editor page group level security ruleset

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
page_slug
required
string
Example: page_slug
group_uid
required
string
Example: group_identifier

Responses

Response samples

Content type
application/json
""

List user rulesets

List the code editor page user-level permissions

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
page_slug
required
string
Example: page_slug
query Parameters
limit
integer [ 0 .. 1000 ]
Default: 20
Example: limit=20

The maximum number of results returned by the API when the response is paginated. Tip: You can make a request with the parameter "limit" set to 0 to get only the metadata ("results" property will contain an empty array).

offset
integer

The number of results to skip before beginning the listing in case of a paginated response

Responses

Response samples

Content type
application/json
{
  • "total_count": 18,
  • "next": null,
  • "previous": null,
  • "results": [
    ]
}

Create user ruleset

Create a code editor page user-level security ruleset

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
page_slug
required
string
Example: page_slug
Request Body schema: application/json
object (RelatedUser)

The user targeted by this ruleset.

permissions
Array of strings (RulesetPermission)
Items Enum: "explore_restricted_dataset" "explore_restricted_page" "edit_dataset" "publish_dataset" "manage_dataset" "manage_connection" "edit_page" "manage_page" "submit_private_form" "moderate_form" "edit_form"

List of special permissions granted to the target.

Responses

Request samples

Content type
application/json
{
  • "user": {
    },
  • "permissions": [
    ]
}

Response samples

Content type
application/json
{
  • "user": {
    },
  • "permissions": [
    ]
}

Retrieve user ruleset

Retrieve a code editor page user-level security ruleset

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
page_slug
required
string
Example: page_slug
username
required
string
Example: louise.data

Responses

Response samples

Content type
application/json
{
  • "user": {
    },
  • "permissions": [
    ]
}

Update user ruleset

Update a code editor page user-level security ruleset

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
page_slug
required
string
Example: page_slug
username
required
string
Example: louise.data
Request Body schema: application/json
object (RelatedUser)

The user targeted by this ruleset.

permissions
Array of strings (RulesetPermission)
Items Enum: "explore_restricted_dataset" "explore_restricted_page" "edit_dataset" "publish_dataset" "manage_dataset" "manage_connection" "edit_page" "manage_page" "submit_private_form" "moderate_form" "edit_form"

List of special permissions granted to the target.

Responses

Request samples

Content type
application/json
{
  • "user": {
    },
  • "permissions": [
    ]
}

Response samples

Content type
application/json
{
  • "user": {
    },
  • "permissions": [
    ]
}

Delete user ruleset

Delete a code editor page user-level security ruleset

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
page_slug
required
string
Example: page_slug
username
required
string
Example: louise.data

Responses

Response samples

Content type
application/json
""

Code editor pages translations

Asset translations is a dictionary that stores terms localized into the languages supported by the domain.

When an asset is published, all internationalized (i18n) fields such as translatable metadata and schema information are enriched with their corresponding translations from this dictionary.

Get code editor page translations

Retrieves the translation dictionary for a code editor page

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
page_slug
required
string
Example: page_slug

Responses

Response samples

Content type
application/json
{
  • "Climate Data Analysis 2023": {
    },
  • "Temperature measurements from global weather stations": {
    }
}

Update code editor page translations

Updates the translation dictionary for a code editor page

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
page_slug
required
string
Example: page_slug
Request Body schema: application/json
required
additional property
object

The translations for a specific key

Responses

Request samples

Content type
application/json
{
  • "Climate Data Analysis 2023": {
    },
  • "Temperature measurements from global weather stations": {
    }
}

Response samples

Content type
application/json
{
  • "Climate Data Analysis 2023": {
    },
  • "Temperature measurements from global weather stations": {
    }
}

Forms

A form is a structured template used to collect data from users in a consistent and governed way across the portal.

A form is composed of:

  • content (sections, fields, labels, languages) defining the structure of the questionnaire
  • configuration attributes, such as access rules, moderation, and submission options
  • draft versions that allow safe editing before publication

Through the Automation API, it is possible to:

  • create and delete forms
  • manage form drafts (retrieve, update, publish, unpublish)
  • configure form content and structure
  • list, retrieve, update, and delete form submissions

Form schema

uid
string non-empty

Internal identifier of the form

slug
required
string or null

Public slug used to reference the form (e.g. in the portal)

title
string

Human-readable form title

access_type
required
string non-empty
Enum: "authenticated" "restricted" "open"

Access mode of the form. "open" means the form can be submitted without authentication or API key, "authenticated" requires logged users, "restricted" means the forms is available for specific users/groups or your portal.

has_published_version
boolean
Default: false

Whether the form has at least one published version

enable_moderation
boolean
Default: false

Whether submissions must be moderated before validation

enable_notifications_on_submission
boolean
Default: false

Whether notifications are sent on each new submission

enable_frontoffice_submission_edition
boolean
Default: false

Whether submitters are allowed to edit their submissions

first_published_at
string <date-time>

Date when the formm was first published

created_at
string <date-time>

Date when the form was created

updated_at
string <date-time>

Date when the form was last edited

object (RelatedUserReadOnly)

The user who updated the form

object (RelatedUserReadOnly)

The user who created the form

published_at
string <date-time>

Date of the last publication

object (RelatedUserReadOnly)

The user who published the form

object
nb_submissions
integer

Number of submissions associated to this form

{
  • "uid": "fm_w4d2pu",
  • "slug": "my-form",
  • "title": "string",
  • "access_type": "authenticated",
  • "has_published_version": false,
  • "enable_moderation": false,
  • "enable_notifications_on_submission": false,
  • "enable_frontoffice_submission_edition": false,
  • "first_published_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "updated_by": {
    },
  • "created_by": {
    },
  • "published_at": "2019-08-24T14:15:22Z",
  • "published_by": {
    },
  • "errors": {
    },
  • "nb_submissions": 0
}

List forms

Returns a paginated list of forms available for the current domain.

Authorizations:
QueryAPIKeyHeaderAPIKey
query Parameters
limit
integer [ 0 .. 1000 ]
Default: 20
Example: limit=20

The maximum number of results returned by the API when the response is paginated. Tip: You can make a request with the parameter "limit" set to 0 to get only the metadata ("results" property will contain an empty array).

offset
integer

The number of results to skip before beginning the listing in case of a paginated response

status
string
Default: "all"
Example: status=published

Filter forms by status.

search
string

Full-text search

sort
string
Example: sort=-updated_at

Sort expression, usually a field name; prefix with "-" for descending order (e.g. "-updated_at").

Responses

Response samples

Content type
application/json
{
  • "total_count": 18,
  • "next": null,
  • "previous": null,
  • "results": [
    ]
}

Create a form

Creates a new form with basic configuration.

Authorizations:
QueryAPIKeyHeaderAPIKey
Request Body schema: application/json
slug
required
string or null

Public slug used to reference the form (e.g. in the portal)

title
string

Human-readable form title

access_type
required
string non-empty
Enum: "authenticated" "restricted" "open"

Access mode of the form. "open" means the form can be submitted without authentication or API key, "authenticated" requires logged users, "restricted" means the forms is available for specific users/groups or your portal.

has_published_version
boolean
Default: false

Whether the form has at least one published version

enable_moderation
boolean
Default: false

Whether submissions must be moderated before validation

enable_notifications_on_submission
boolean
Default: false

Whether notifications are sent on each new submission

enable_frontoffice_submission_edition
boolean
Default: false

Whether submitters are allowed to edit their submissions

Responses

Request samples

Content type
application/json
{
  • "slug": "my-form",
  • "title": "string",
  • "access_type": "authenticated",
  • "has_published_version": false,
  • "enable_moderation": false,
  • "enable_notifications_on_submission": false,
  • "enable_frontoffice_submission_edition": false
}

Response samples

Content type
application/json
{
  • "uid": "fm_w4d2pu",
  • "slug": "my-form",
  • "title": "string",
  • "access_type": "authenticated",
  • "has_published_version": false,
  • "enable_moderation": false,
  • "enable_notifications_on_submission": false,
  • "enable_frontoffice_submission_edition": false,
  • "first_published_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "updated_by": {
    },
  • "created_by": {
    },
  • "published_at": "2019-08-24T14:15:22Z",
  • "published_by": {
    },
  • "errors": {
    },
  • "nb_submissions": 0
}

Retrieve form

Retrieve a form

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
form_uid
required
string
Example: fm_wztr5n

Responses

Response samples

Content type
application/json
{
  • "uid": "fm_w4d2pu",
  • "slug": "my-form",
  • "title": "string",
  • "access_type": "authenticated",
  • "has_published_version": false,
  • "enable_moderation": false,
  • "enable_notifications_on_submission": false,
  • "enable_frontoffice_submission_edition": false,
  • "first_published_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "updated_by": {
    },
  • "created_by": {
    },
  • "published_at": "2019-08-24T14:15:22Z",
  • "published_by": {
    },
  • "errors": {
    },
  • "nb_submissions": 0
}

Delete form

Delete a form

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
form_uid
required
string
Example: fm_wztr5n

Responses

Response samples

Content type
application/json
""

Publish form

Publish a form

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
form_uid
required
string
Example: fm_wztr5n

Responses

Response samples

Content type
application/json
{
  • "detail": "ok"
}

Unpublish form

Unpublish a form

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
form_uid
required
string
Example: fm_wztr5n

Responses

Response samples

Content type
application/json
{
  • "detail": "ok"
}

Form content

Form content represents the full structure and configuration of a form. It includes all elements needed to define the user-facing questionnaire.

A form content consists of:

  • metadata, such as the form title, description, default language, and supported languages
  • sections, which group questions into logical parts
  • blocks, which represent individual fields (text, choice, rating, date, etc.) with their own configuration and constraints
  • validation rules, visibility conditions, and contextual help
  • ending configuration, defining what happens after a submission (message, redirect URL, or page redirection)
  • additional options, such as recaptcha, notifications, and automation settings

Form content exists only in drafts and can be edited until the draft is published. When published, it defines the version of the form that users will fill in the portal.

FormContent

default_language
required
string

Default language used for the form content

other_languages
Array of strings

Additional languages enabled for the form

required
object (Ending)

Configuration of the form ending behavior.

object

Form title, keyed by language code (e.g. "en")

object

Form description, keyed by language code

enable_recaptcha
boolean

Whether a reCAPTCHA is enabled on the form

enable_notifications_on_submission
boolean

Whether notifications are sent on submission

Array of objects (ShowHideLogic)

Rules defining dynamic show/hide behaviour for blocks

additional_extractor_fields
Array of strings

Additional metadata fields extracted from submissions

required
Array of objects (Section)

List of sections composing the form

{
  • "default_language": "en",
  • "other_languages": [
    ],
  • "ending": {
    },
  • "title": {
    },
  • "description": {
    },
  • "enable_recaptcha": false,
  • "enable_notifications_on_submission": false,
  • "show_hide_logics": [
    ],
  • "additional_extractor_fields": [
    ],
  • "sections": [
    ]
}

List drafts of a form

Returns a paginated list of drafts available of the form.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
form_uid
required
string
Example: fm_wztr5n
query Parameters
limit
integer [ 0 .. 1000 ]
Default: 20
Example: limit=20

The maximum number of results returned by the API when the response is paginated. Tip: You can make a request with the parameter "limit" set to 0 to get only the metadata ("results" property will contain an empty array).

offset
integer

The number of results to skip before beginning the listing in case of a paginated response

Responses

Response samples

Content type
application/json
{
  • "total_count": 18,
  • "next": null,
  • "previous": null,
  • "results": [
    ]
}

Retrieve a form draft

Retrieve a specific draft version of a form by its version number.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
form_uid
required
string
Example: fm_wztr5n
version
required
integer

Draft version number

Responses

Response samples

Content type
application/json
{
  • "version": 1,
  • "is_published": false,
  • "is_draft": true,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_by": {
    },
  • "content": {
    }
}

Update a form draft

Update a draft version with a new content

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
form_uid
required
string
Example: fm_wztr5n
version
required
integer

Draft version number

Request Body schema: application/json
required
object (FormContent)

Structure and content of the form, including sections, fields, ending screen and display logics.

Responses

Request samples

Content type
application/json
{
  • "content": {
    }
}

Response samples

Content type
application/json
{
  • "version": 1,
  • "is_published": false,
  • "is_draft": true,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_by": {
    },
  • "content": {
    }
}

Form security

The form security defines who (which users or groups) can view, submit, or edit a given form in the catalog. It is defined through two elements:

  • An access restriction through the access_type attribute, which determines the default visibility of the form.
  • Optional rulesets applied to specific users or groups that grant additional permissions.

Access type: A form defines its base visibility through the access_type property. Depending on its value, the form may be visible to every portal user or restricted to a defined subset.

Rulesets: Rulesets allow granting additional permissions to specific users or groups. They can extend access beyond the default restriction defined by access_type. They can also give users the ability to edit, review, or moderate submissions, depending on the form’s configuration.

List group rulesets

List the form group level security rulesets

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
form_uid
required
string
Example: fm_wztr5n
query Parameters
limit
integer [ 0 .. 1000 ]
Default: 20
Example: limit=20

The maximum number of results returned by the API when the response is paginated. Tip: You can make a request with the parameter "limit" set to 0 to get only the metadata ("results" property will contain an empty array).

offset
integer

The number of results to skip before beginning the listing in case of a paginated response

Responses

Response samples

Content type
application/json
{
  • "total_count": 18,
  • "next": null,
  • "previous": null,
  • "results": [
    ]
}

Create group ruleset

Create a form group level security ruleset

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
form_uid
required
string
Example: fm_wztr5n
Request Body schema: application/json
object

The group targeted by this ruleset.

permissions
Array of strings (RulesetPermission)
Items Enum: "explore_restricted_dataset" "explore_restricted_page" "edit_dataset" "publish_dataset" "manage_dataset" "manage_connection" "edit_page" "manage_page" "submit_private_form" "moderate_form" "edit_form"

List of special permissions granted to the target.

Responses

Request samples

Content type
application/json
{
  • "group": {
    },
  • "permissions": [
    ]
}

Response samples

Content type
application/json
{
  • "group": {
    },
  • "permissions": [
    ]
}

Retrieve group ruleset

Retrieve a form group level security ruleset

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
form_uid
required
string
Example: fm_wztr5n
group_uid
required
string
Example: group_identifier

Responses

Response samples

Content type
application/json
{
  • "group": {
    },
  • "permissions": [
    ]
}

Update group ruleset

Update a form group level security ruleset

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
form_uid
required
string
Example: fm_wztr5n
group_uid
required
string
Example: group_identifier
Request Body schema: application/json
object

The group targeted by this ruleset.

permissions
Array of strings (RulesetPermission)
Items Enum: "explore_restricted_dataset" "explore_restricted_page" "edit_dataset" "publish_dataset" "manage_dataset" "manage_connection" "edit_page" "manage_page" "submit_private_form" "moderate_form" "edit_form"

List of special permissions granted to the target.

Responses

Request samples

Content type
application/json
{
  • "group": {
    },
  • "permissions": [
    ]
}

Response samples

Content type
application/json
{
  • "group": {
    },
  • "permissions": [
    ]
}

Delete group ruleset

Delete a form group level security ruleset

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
form_uid
required
string
Example: fm_wztr5n
group_uid
required
string
Example: group_identifier

Responses

Response samples

Content type
application/json
""

List user rulesets

List the form user-level security rulesets

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
form_uid
required
string
Example: fm_wztr5n
query Parameters
limit
integer [ 0 .. 1000 ]
Default: 20
Example: limit=20

The maximum number of results returned by the API when the response is paginated. Tip: You can make a request with the parameter "limit" set to 0 to get only the metadata ("results" property will contain an empty array).

offset
integer

The number of results to skip before beginning the listing in case of a paginated response

Responses

Response samples

Content type
application/json
{
  • "total_count": 18,
  • "next": null,
  • "previous": null,
  • "results": [
    ]
}

Create user ruleset

Create a form user-level security ruleset

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
form_uid
required
string
Example: fm_wztr5n
Request Body schema: application/json
object (RelatedUser)

The user targeted by this ruleset.

permissions
Array of strings (RulesetPermission)
Items Enum: "explore_restricted_dataset" "explore_restricted_page" "edit_dataset" "publish_dataset" "manage_dataset" "manage_connection" "edit_page" "manage_page" "submit_private_form" "moderate_form" "edit_form"

List of special permissions granted to the target.

Responses

Request samples

Content type
application/json
{
  • "user": {
    },
  • "permissions": [
    ]
}

Response samples

Content type
application/json
{
  • "user": {
    },
  • "permissions": [
    ]
}

Retrieve user ruleset

Retrieve a form user-level security ruleset

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
form_uid
required
string
Example: fm_wztr5n
username
required
string
Example: louise.data

Responses

Response samples

Content type
application/json
{
  • "user": {
    },
  • "permissions": [
    ]
}

Update user ruleset

Update a form user-level security ruleset

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
form_uid
required
string
Example: fm_wztr5n
username
required
string
Example: louise.data
Request Body schema: application/json
object (RelatedUser)

The user targeted by this ruleset.

permissions
Array of strings (RulesetPermission)
Items Enum: "explore_restricted_dataset" "explore_restricted_page" "edit_dataset" "publish_dataset" "manage_dataset" "manage_connection" "edit_page" "manage_page" "submit_private_form" "moderate_form" "edit_form"

List of special permissions granted to the target.

Responses

Request samples

Content type
application/json
{
  • "user": {
    },
  • "permissions": [
    ]
}

Response samples

Content type
application/json
{
  • "user": {
    },
  • "permissions": [
    ]
}

Delete user ruleset

Delete a form user-level security ruleset

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
form_uid
required
string
Example: fm_wztr5n
username
required
string
Example: louise.data

Responses

Response samples

Content type
application/json
""

Form submissions

A form submission represents a single response provided by a user through a published form.

A submission contains:

  • the collected data, structured as key–value pairs using the technical IDs of each block
  • metadata, including the submission language, creation date, update date, and user information
  • the submission status, which can be:
  • pending, approved, or rejected when moderation is enabled
  • always approved when moderation is disabled
  • a revision history, which is only available when moderation is enabled and records changes requested or applied during the review process
  • a change request link, available only when enable_frontoffice_submission_edition is activated, allowing users to view their submitted data and submit a revision from the front office Submissions are always tied to the specific published version of the form that was active at the time of submission.

Add new submissions

To add new submissions, use the Portal API.

POST http://mydomain.huwise.com/api/portal/v1.0/forms/{slug}/submit/
  • No authentication needed if your form's access type is set to open

  • Use an API Key for forms with restricted access

  • Important: Use the form's slug (not the uid) in the endpoint URL.

The submission data should be sent as form data with a data parameter containing a JSON object. Structure your data using the technical IDs of each form block as keys:

{
  "cat_name": "Rio",
  "cat_age": 5,
  "cat_breed": ["Siberian"],
  "cat_rating": 5,
  "contact": {
    "email": "harry@cover.com"
  },
  "comments": null
}

The following is an example with cURL:

curl --location 'http://mydomain.huwise.com/api/portal/v1.0/forms/form-automation/submit/' \
  --form 'data="{\"cat_name\":\"Rio\",\"cat_age\":5,\"cat_breed\":[\"Siberian\"],\"cat_rating\":5,\"contact\":{\"email\":\"harry@cover.com\"},\"comments\":null}"'

Notes:

  • Ensure the JSON in the data parameter is properly escaped when using cURL
  • Field names must match the technical IDs defined in your form blocks
  • Nested objects (like contact) should follow the structure defined in your form schema

Submission

uid
string

Unique identifier of the submission

lang
string

Language of the form at the time the submission was filled, based on the form’s displayed language during submission.

created_at
string <date-time>

Date the submission was created

object (RelatedUserReadOnly)

User who created the submission (if applicable)

updated_at
string <date-time>

Date the submission was last updated

object (RelatedUserReadOnly)

User who last updated the submission (if applicable)

object (SubmissionContent)

Key-value structure containing all submitted values. Keys are block technical identifiers.

status
string
Enum: "pending" "approved" "rejected"

Status of the submission. When moderation is enabled, the value reflects the review workflow (pending, approved, or rejected). If moderation is disabled, the submission is always approved.

object (SubmissionRevision)

Common metadata shared by submissions and submission revisions.

change_request_link
string <uri>

URL to view the submitted form with its filled data and submit a revision.

{
  • "uid": "7c9519d9-62fc-4a8a-a5ef-5213aff7f55e",
  • "lang": "en",
  • "created_at": "2025-10-07T09:24:43Z",
  • "created_by": {
    },
  • "updated_at": "2025-10-28T15:24:02Z",
  • "updated_by": {
    },
  • "content": {
    },
  • "status": "approved",
  • "revision": {
    },
  • "change_request_link": "http://example.com"
}

List submissions of a form

Returns a paginated list of forms available for the current domain.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
form_uid
required
string
Example: fm_wztr5n
query Parameters
limit
integer [ 0 .. 1000 ]
Default: 20
Example: limit=20

The maximum number of results returned by the API when the response is paginated. Tip: You can make a request with the parameter "limit" set to 0 to get only the metadata ("results" property will contain an empty array).

offset
integer

The number of results to skip before beginning the listing in case of a paginated response

search
string

Full-text search

sort
string
Example: sort=-updated_at

Sort expression, usually a field name; prefix with "-" for descending order (e.g. "-updated_at").

ordering
string
Enum: "asc" "desc"
Example: ordering=asc

Ordering direction for the list of submissions. The default field used for ordering is implementation-specific (e.g. creation date).

expand
Array of strings
Examples:
  • expand=created_by&expand=updated_by - Expand both created_by and updated_by

List of related fields to expand. For example, "created_by" or "updated_by" can be expanded to include more details about the users.

Responses

Response samples

Content type
application/json
{
  • "total_count": 18,
  • "next": null,
  • "previous": null,
  • "results": [
    ]
}

Retrieve a submission of a form

Retrieve a submission of form

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
form_uid
required
string
Example: fm_wztr5n
s_uid
required
string
Example: 4c7286ad-6ede-4654-a1b3-3e39fcd199b7

Responses

Response samples

Content type
application/json
{
  • "uid": "7c9519d9-62fc-4a8a-a5ef-5213aff7f55e",
  • "lang": "en",
  • "created_at": "2025-10-07T09:24:43Z",
  • "created_by": {
    },
  • "updated_at": "2025-10-28T15:24:02Z",
  • "updated_by": {
    },
  • "content": {
    },
  • "status": "approved",
  • "revision": {
    },
  • "change_request_link": "http://example.com"
}

Delete a submission of a form

Delete a submission of a form

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
form_uid
required
string
Example: fm_wztr5n
s_uid
required
string
Example: 4c7286ad-6ede-4654-a1b3-3e39fcd199b7

Responses

Response samples

Content type
application/json
""

Update a submission

Updates the content of a specific submission. This request MUST be sent as multipart/form-data (not JSON), with a single field named data containing a JSON string that represents the updated submission values. Each form field must be included in the JSON using its technical ID as the key (for example: "firstname", "lastname", "email"). To set a block’s value to null, just remove its key from the JSON — no need to send null. Example of the data value: {"cat_name":"Rio","cat_age":5,"cat_breed":["Siberian"],"cat_rating":5,"contact":{"email":"harry@cover.com"}}

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
form_uid
required
string
Example: fm_wztr5n
s_uid
required
string
Example: 4c7286ad-6ede-4654-a1b3-3e39fcd199b7
Request Body schema: multipart/form-data
required
data
required
string

JSON string representing the updated submission values. Keys are the technical IDs of the form fields. To set a block’s value to null, just remove its key from the JSON — no need to send null.

Responses

Response samples

Content type
application/json
{
  • "uid": "7c9519d9-62fc-4a8a-a5ef-5213aff7f55e",
  • "lang": "en",
  • "created_at": "2025-10-07T09:24:43Z",
  • "created_by": {
    },
  • "updated_at": "2025-10-28T15:24:02Z",
  • "updated_by": {
    },
  • "content": {
    },
  • "status": "approved",
  • "revision": {
    },
  • "change_request_link": "http://example.com"
}

Glossary

Manage glossary terms on the domain

Glossary term

uid
string

Unique identifier of the glossary term

name
required
string

The display name of the glossary term

description
string <= 2000 characters

The description of the glossary term

aliases
Array of strings <= 10 items

Alternative names for this glossary term

updated_at
string <date-time>

The date and time the term was last updated (UTC)

created_at
string <date-time>

The date and time the term was created (UTC)

object (RelatedUserReadOnly)

User who last updated the term

object (RelatedUserReadOnly)

User who created the term

{
  • "uid": "te_abc123",
  • "name": "API",
  • "description": "A set of protocols and tools for building software applications",
  • "aliases": [
    ],
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_by": {
    },
  • "created_by": {
    }
}

List glossary terms

List all glossary terms on the domain.

Authorizations:
QueryAPIKeyHeaderAPIKey
query Parameters
limit
integer [ 0 .. 1000 ]
Default: 20
Example: limit=20

The maximum number of results returned by the API when the response is paginated. Tip: You can make a request with the parameter "limit" set to 0 to get only the metadata ("results" property will contain an empty array).

offset
integer

The number of results to skip before beginning the listing in case of a paginated response

search
string

Full-text search in term names, aliases, and descriptions

ordering
string
Enum: "name" "-name" "updated_at" "-updated_at" "description" "-description"

Sort results by the specified field. Prefix with - for descending order. Available fields: name, updated_at, description.

Responses

Response samples

Content type
application/json
{
  • "total_count": 18,
  • "next": null,
  • "previous": null,
  • "results": [
    ]
}

Create a glossary term

Create a new glossary term. The term name must be unique across all term names and aliases on the domain.

Authorizations:
QueryAPIKeyHeaderAPIKey
Request Body schema: application/json
name
required
string

The display name of the glossary term

description
string <= 2000 characters

The description of the glossary term

aliases
Array of strings <= 10 items

Alternative names for this glossary term

Responses

Request samples

Content type
application/json
{
  • "name": "API",
  • "description": "A set of protocols and tools for building software applications",
  • "aliases": [
    ]
}

Response samples

Content type
application/json
{
  • "uid": "te_abc123",
  • "name": "API",
  • "description": "A set of protocols and tools for building software applications",
  • "aliases": [
    ],
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_by": {
    },
  • "created_by": {
    }
}

Retrieve a glossary term

Retrieve a single glossary term by its unique identifier.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
uid
required
string
Example: te_abc123

The unique identifier of the glossary term

Responses

Response samples

Content type
application/json
{
  • "uid": "te_abc123",
  • "name": "API",
  • "description": "A set of protocols and tools for building software applications",
  • "aliases": [
    ],
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_by": {
    },
  • "created_by": {
    }
}

Update a glossary term

Update an existing glossary term. The term name and aliases must remain unique across all terms on the domain.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
uid
required
string
Example: te_abc123

The unique identifier of the glossary term

Request Body schema: application/json
name
required
string

The display name of the glossary term

description
string <= 2000 characters

The description of the glossary term

aliases
Array of strings <= 10 items

Alternative names for this glossary term

Responses

Request samples

Content type
application/json
{
  • "name": "API",
  • "description": "A set of protocols and tools for building software applications",
  • "aliases": [
    ]
}

Response samples

Content type
application/json
{
  • "uid": "te_abc123",
  • "name": "API",
  • "description": "A set of protocols and tools for building software applications",
  • "aliases": [
    ],
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_by": {
    },
  • "created_by": {
    }
}

Delete a glossary term

Delete a glossary term and all its aliases.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
uid
required
string
Example: te_abc123

The unique identifier of the glossary term

Responses

Response samples

Content type
application/json
""

Bulk delete glossary terms

Delete multiple glossary terms at once by providing a list of UIDs.

Authorizations:
QueryAPIKeyHeaderAPIKey
Request Body schema: application/json
uid_list
required
Array of strings

List of glossary term UIDs to delete

Responses

Request samples

Content type
application/json
{
  • "uid_list": [
    ]
}

Response samples

Content type
application/json
""

Assets

List image assets

List all domain assets urls

Authorizations:
QueryAPIKeyHeaderAPIKey
query Parameters
limit
integer [ 0 .. 1000 ]
Default: 20
Example: limit=20

The maximum number of results returned by the API when the response is paginated. Tip: You can make a request with the parameter "limit" set to 0 to get only the metadata ("results" property will contain an empty array).

offset
integer

The number of results to skip before beginning the listing in case of a paginated response

Responses

Response samples

Content type
application/json
{
  • "total_count": 18,
  • "next": null,
  • "previous": null,
  • "results": [
    ]
}

Create a new image asset

Add an asset to the library. The HTTP request must be a multipart request with a file property.

Authorizations:
QueryAPIKeyHeaderAPIKey
Request Body schema: multipart/form-data
required
file
required
string <binary>

The image file to upload

Responses

Response samples

Content type
application/json
{
  • "url": "/assets/theme_image/Acronym-Turquoise.svg"
}

Metadata templates

Metadata templates

Metadata template schema

name
required
string non-empty

Name (identifier) of the template

title
required
string

Title (description) of the template

is_active
required
boolean

True if the template is (needs to be) activated. False otherwise.

is_always_active
boolean

True if the template can't be deactivated.

is_system
boolean

True if the template is provided by the system. A system template cannot be modifiable nor removable. False for all other templates.

required
Array of objects (MetadataTemplateField)
created_at
string <date-time>

Date when the template was created

object (RelatedUserReadOnly)

The user who created the template

updated_at
string <date-time>

Date when the template was last edited

object (RelatedUserReadOnly)

The user who last modified the template

type
required
string
Enum: "interop" "basic" "extra" "admin"

The type of the template. Only templates with type basic or admin can be created.

{
  • "name": "my-custom-template",
  • "title": "My custom template",
  • "is_active": true,
  • "is_always_active": false,
  • "is_system": false,
  • "schema": [
    ],
  • "created_at": "2019-08-24T14:15:22Z",
  • "created_by": {
    },
  • "updated_at": "2019-08-24T14:15:22Z",
  • "updated_by": {
    },
  • "type": "basic"
}

List metadata templates

List all metadata templates of the current domain.

Authorizations:
QueryAPIKeyHeaderAPIKey
query Parameters
limit
integer [ 0 .. 1000 ]
Default: 20
Example: limit=20

The maximum number of results returned by the API when the response is paginated. Tip: You can make a request with the parameter "limit" set to 0 to get only the metadata ("results" property will contain an empty array).

offset
integer

The number of results to skip before beginning the listing in case of a paginated response

is_active
boolean

If provided and True then it will list only all activated templates. If provided and False it lists non-activated templates. If not provided then it will lists both activated and non-activated templates.

type
string
Enum: "interop" "admin" "basic" "extra"

Filter by type of Metadata Template.

Responses

Response samples

Content type
application/json
{
  • "total_count": 18,
  • "next": null,
  • "previous": null,
  • "results": [
    ]
}

Create metadata template

You can only create basic and admin metadata templates.

Authorizations:
QueryAPIKeyHeaderAPIKey
Request Body schema: application/json
name
required
string non-empty

Name (identifier) of the template

title
required
string

Title (description) of the template

is_active
required
boolean

True if the template is (needs to be) activated. False otherwise.

required
Array of objects (MetadataTemplateField)
type
required
string
Enum: "basic" "admin"

The type of the template. Only templates with type basic or admin can be created.

Responses

Request samples

Content type
application/json
{
  • "name": "my-custom-template",
  • "title": "My custom template",
  • "is_active": true,
  • "schema": [
    ],
  • "type": "basic"
}

Response samples

Content type
application/json
{
  • "name": "my-custom-template",
  • "title": "My custom template",
  • "is_active": true,
  • "is_always_active": false,
  • "is_system": false,
  • "schema": [
    ],
  • "created_at": "2019-08-24T14:15:22Z",
  • "created_by": {
    },
  • "updated_at": "2019-08-24T14:15:22Z",
  • "updated_by": {
    },
  • "type": "basic"
}

Retrieve a metadata template

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
template_name
required
string
Example: template_name

Metadata template name

Responses

Response samples

Content type
application/json
{
  • "name": "my-custom-template",
  • "title": "My custom template",
  • "is_active": true,
  • "is_always_active": false,
  • "is_system": false,
  • "schema": [
    ],
  • "created_at": "2019-08-24T14:15:22Z",
  • "created_by": {
    },
  • "updated_at": "2019-08-24T14:15:22Z",
  • "updated_by": {
    },
  • "type": "basic"
}

Update metadata template

Only non-system templates of type basic and admin can be fully editable. Other templates may be enabled. Templates with is_system=true and is_always_active=true are exceptions and can't be disabled.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
template_name
required
string
Example: template_name

Metadata template name

Request Body schema: application/json
name
required
string non-empty

Name (identifier) of the template

title
required
string

Title (description) of the template

is_active
required
boolean

True if the template is (needs to be) activated. False otherwise.

required
Array of objects (MetadataTemplateField)
type
required
string
Enum: "basic" "admin"

The type of the template. Only templates with type basic or admin can be created.

Responses

Request samples

Content type
application/json
{
  • "name": "my-custom-template",
  • "title": "My custom template",
  • "is_active": true,
  • "schema": [
    ],
  • "type": "basic"
}

Response samples

Content type
application/json
{
  • "name": "my-custom-template",
  • "title": "My custom template",
  • "is_active": true,
  • "is_always_active": false,
  • "is_system": false,
  • "schema": [
    ],
  • "created_at": "2019-08-24T14:15:22Z",
  • "created_by": {
    },
  • "updated_at": "2019-08-24T14:15:22Z",
  • "updated_by": {
    },
  • "type": "basic"
}

Delete a metadata template

Only non-system templates of type basic or admin can be removed.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
template_name
required
string
Example: template_name

Metadata template name

Responses

Response samples

Content type
application/json
""

List template's fields

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
template_name
required
string
Example: template_name

Metadata template name

query Parameters
limit
integer [ 0 .. 1000 ]
Default: 20
Example: limit=20

The maximum number of results returned by the API when the response is paginated. Tip: You can make a request with the parameter "limit" set to 0 to get only the metadata ("results" property will contain an empty array).

offset
integer

The number of results to skip before beginning the listing in case of a paginated response

Responses

Response samples

Content type
application/json
{
  • "total_count": 18,
  • "next": null,
  • "previous": null,
  • "results": [
    ]
}

Retrieve metadata template field

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
template_name
required
string
Example: template_name

Metadata template name

template_field_name
required
string
Example: field_name

Metadata template field name

Responses

Response samples

Content type
application/json
{
  • "name": "my-custom-field",
  • "type": "text",
  • "label": "My custom field",
  • "help_text": null,
  • "is_hidden": false,
  • "self_suggest": false,
  • "is_filter": false,
  • "i18n": false,
  • "suggest_url": null,
  • "choices": null,
  • "labels": null,
  • "requirement_level": "optional"
}

Suggest field choices

List suggestions ("choices") for the provided template field name.

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
template_name
required
string
Example: template_name

Metadata template name

template_field_name
required
string
Example: field_name

Metadata template field name

query Parameters
query
required
string

The query to perform to the service providing the suggestions. Most likely, it will be a prefix of what you're looking for.

count
number

Number of results which will be provided in the response.

Responses

Response samples

Content type
application/json
{
  • "hits": [
    ],
  • "nb_hits": 0,
  • "page": 0,
  • "hits_per_page": 0,
  • "exhaustive_nb_hits": true,
  • "exhaustive_typo": true,
  • "exhaustive": {
    },
  • "query": "string",
  • "params": "string",
  • "processing_time_ms": 0
}

I18n

Internationalization and translation endpoints

Get translation suggestions

Returns existing translations for the provided keys from the source language to the target language

Authorizations:
QueryAPIKeyHeaderAPIKey
query Parameters
from_language
required
string
Example: from_language=en

The source language code (e.g., 'en')

to_language
required
string
Example: to_language=fr

The target language code (e.g., 'fr')

keys
required
Array of strings
Example: keys=my title&keys=my description

The keys to translate (can be repeated multiple times)

Responses

Response samples

Content type
application/json
{
  • "Climate Data Analysis": "Analyse des données climatiques",
  • "Temperature measurements from global weather stations": "Mesures de température des stations météorologiques mondiales"
}

User requests

Users can submit different types of requests when they need access or want to contribute content to the platform. This API describes a unified model for handling three main kinds of user requests:

  • Access to the portal or domain – when a user needs permission to enter a restricted portal.
  • Access to datasets or external assets – when a user needs access to a restricted asset (dataset, page or other asset).
  • Showcase proposals – when a user wants to submit an external content (such as a dashboard or visualization) to be reviewed and published as a showcase.

The API uses a discriminator based on the type field to clearly identify the correct schema for each request.

Examples for each request type are provided to make the different payloads easy to understand and reuse.

UserRequest

uid
required
string

unique identifier of the user request

type
required
string

request type

status
string non-empty

request status (ex. pending, approved, rejected)

request_message
string or null
rejection_message
string or null
created_at
string <date-time> non-empty

Date when the request was created

updated_at
string <date-time> non-empty

Date when the user request was last updated

object (RelatedUserReadOnly)

The user who updated the request

Anonymous user (object) or Logged user (object)

The user who created the request. For external showcases, the user could be a guest (anonymous user).

Example
{
  • "uid": "fc50dcdf-ab41-4ed8-bc65-070278ba2363",
  • "type": "domain_access",
  • "status": "pending",
  • "created_at": "2025-11-13T13:36:23Z",
  • "created_by": {
    },
  • "updated_at": "2025-11-13T13:36:23Z",
  • "updated_by": {
    },
  • "request_message": "let me in!",
  • "rejection_message": null
}

List user requests

Returns a paginated list of the user requests for the current domain.

Authorizations:
QueryAPIKeyHeaderAPIKey
query Parameters
limit
integer [ 0 .. 1000 ]
Default: 20
Example: limit=20

The maximum number of results returned by the API when the response is paginated. Tip: You can make a request with the parameter "limit" set to 0 to get only the metadata ("results" property will contain an empty array).

offset
integer

The number of results to skip before beginning the listing in case of a paginated response

search
string

Full-text search

expand
Array of strings
Examples:
  • expand=created_by&expand=updated_by - Expand both created_by and updated_by

List of related fields to expand. For example, "created_by" or "updated_by" can be expanded to include more details about the users.

status
string
Example: status=pending

status request (pending, approved, rejected).

type
string
Example: type=domain_access

type request (domain_access, dataset_asset_access, external_asset_access, external_showcase)

raised_in
integer
Example: raised_in=6

Return only the requests submitted in the last N days.Fort the last 7 days, it's the value 6.

raised_before
integer
Example: raised_before=89

Return only the requests submitted before the last X days

Responses

Response samples

Content type
application/json
{
  • "total_count": 18,
  • "next": null,
  • "previous": null,
  • "results": [
    ]
}

Retrieve an user request

Retrieve an user request

Authorizations:
QueryAPIKeyHeaderAPIKey
path Parameters
ur_uid
required
string
Example: 4c7286ad-6ede-4654-a1b3-3e39fcd199b7

Unique identifier of the user request

Responses

Response samples

Content type
application/json
Example
{
  • "uid": "fc50dcdf-ab41-4ed8-bc65-070278ba2363",
  • "type": "domain_access",
  • "status": "pending",
  • "created_at": "2025-11-13T13:36:23Z",
  • "created_by": {
    },
  • "updated_at": "2025-11-13T13:36:23Z",
  • "updated_by": {
    },
  • "request_message": "let me in!",
  • "rejection_message": null
}