B2INST Integration#
B2SHARE can connect to B2INST, the EUDAT instrument metadata service. When enabled, depositors can search B2INST for registered instruments and link them directly to a record. Linked instruments are automatically enriched with full metadata from B2INST whenever the record is retrieved via the API.
Linking an instrument during deposit#
Open the Instruments section#
The Instruments accordion is available on the deposit form under Recommended Information. Click the accordion header to expand it if it is collapsed.

Click Search B2INST to open the instrument search widget.
Search and select an instrument#
The widget opens a modal with three panels:
- Community — filter results to a specific B2INST community using the dropdown.
- Search — type a keyword and press Enter or click Search.
- Facets — narrow results by instrument type, manufacturer, or other available filters.
Each result shows the instrument name, type, manufacturer, model, owner, and measured variables. Click Open in B2INST to inspect a record in full before adding it. Click Add to link the instrument to the draft.

The added instrument appears in the Instruments field with its Handle identifier. You can add multiple instruments; duplicate entries (same Handle) are automatically detected and blocked.
Instrument field in the published record#
After selection the instrument appears as an entry in the Instruments field. The name and Handle identifier are stored in the record metadata.

Instrument expansion in the published record.#
If the instrument expansion is enabled, B2SHARE will automatically fetch additional metadata from the B2INST instance. You can see the extra fields clicking on the expand icon.

Instrument expansion in the API#
When a published record is retrieved through the REST API, B2SHARE automatically resolves each instrument’s Handle identifier and fetches the full metadata from B2INST.
The enriched data is embedded under expanded.instruments in the API response.
{
"metadata": {
"instruments": [
{
"instrument_name": "Example Sensor XR-5",
"identifier": "21.T11998/0000-001A-3905-F",
"scheme": "handle"
}
]
},
"expanded": {
"instruments": [
{
"instrument_name": "Example Sensor XR-5",
"identifier": "21.T11998/0000-001A-3905-F",
"scheme": "handle",
"expanded": true,
"metadata": {
"name": "Example Sensor XR-5",
"instrument_type": "Sensor",
"manufacturer": [{ "name": "Example Instruments GmbH" }],
"model": "XR-5",
"owner": "Example University",
"measured_variable": ["Temperature", "Humidity"],
"description": "...",
"landing_page": "https://b2inst.gwdg.de/records/..."
}
}
]
}
}
If a Handle cannot be resolved (e.g. the B2INST record was removed or the service is unreachable), the entry appears with "expanded": false and an "error" field instead of "metadata".
Administrator notes#
The feature is disabled by default. Enable it and configure the B2INST endpoint in invenio.cfg:
B2INST_INSTRUMENT_SELECTOR_ENABLED = True
B2INST_API_URL = "https://b2inst.gwdg.de/api"
B2INST_UI_URL = "https://b2inst.gwdg.de"
Additional tuning options:
| Variable | Default | Purpose |
|---|---|---|
B2INST_SEARCH_TIMEOUT |
10 |
Seconds before a B2INST search request times out |
B2INST_SEARCH_PAGE_SIZE |
10 |
Results per page in the widget |
B2INST_FACETS_CACHE_TTL |
600 |
Seconds to cache facet lists |
B2INST_COMMUNITIES_CACHE_TTL |
3600 |
Seconds to cache the community list |
B2INST_FACET_EXCLUDE |
{"access_status", "file_type", "resource_types"} |
Facets to hide from the widget |