Download OpenAPI specification:Download
This is the unofficial API documentation for the EUDAMED API. EUDAMED is the European database of medical devices.
We at OpenRegulatory built a better EUDAMED, called BEUDAMED. While building it, we learned a thing or two about the EUDAMED data structure.
We share our findings here because we believe that this level of openness and transparency ultimately leads to technological progress, with beneficial second-order effects for the EU, medical device manufacturers and, most importantly, patients.
In the past, these values led us to publish all our MDR / ISO 13485 templates for free which are nowadays used by hundreds of companies (and known by Notified Bodies) and have enabled medical device manufacturers to enter the market at a much lower cost.
This is the endpoint used by the UI when you perform a device search. Note that it also works when the search query is empty. In simple terms, this returns the list of devices which are displayed by the UI. Most importantly, that list is in the content
key of the response. Other useful pagination data is returned, too, e.g. first
, last
and totalPages
.
page required | integer The page number of results which should be returned. Starts at 1. |
pageSize required | integer The count of results which should be returned per page. Maximum of 300 (the options shown in the EU are less). |
size required | integer Another parameter about the count of results per page. Seems to be a duplicate of |
iso2Code required | string Probably the language of results which should be returned. Commonly |
languageIso2Code required | string Probalby another parameter about the language of results to be returned, seems to be a duplicate of |
{- "content": [
- {
- "basicUdi": "string",
- "primaryDi": "string",
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "ulid": "string",
- "basicUdiDiDataUlid": "string",
- "riskClass": {
- "code": "refdata.risk-class.class-i"
}, - "tradeName": "string",
- "manufacturerName": "string",
- "manufacturerSrn": "string",
- "deviceStatusType": {
- "code": "refdata.device-model-status.on-the-market"
}, - "manufacturerStatus": {
- "code": "string"
}, - "latestVersion": true,
- "versionNumber": 0,
- "reference": "string",
- "authorisedRepresentativeSrn": "string",
- "authorisedRepresentativeName": "string"
}
], - "first": true,
- "last": true,
- "number": 0,
- "numberOfElements": 0,
- "size": 0,
- "sort": { },
- "totalElements": 0,
- "totalPages": 0
}
This is the endpoint used by the UI when you click on a specific device. Things get a bit messy here: First off, the device data returned by this endpoint looks similar like the list data returned by the search endpoint above. However, the data here is more detailed. Additionally, the UI actually performs two API queries here - the second one hits the basicUdiData
endpoint (below) which provides additional data for this level. Think of it this way: This endpoint provides data for a specific device version (e.g. v1.0 of a software device); the basicUdiDi
endpoint below provides data spanning across all versions of the device (e.g. all versions of a software device in general). Confusing.
deviceId required | string <uuid> ID of device to return |
languageIso2Code required | string Probably the language of what to return. Commonly |
{- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "ulid": "string",
- "primaryDi": {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "code": "string",
- "issuingAgency": {
- "code": "string"
}, - "type": "string",
- "new": true
}, - "containedItem": { },
- "marketInfoLink": {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "ulid": "string",
- "msWhereAvailable": [
- {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "marketInfoLinkId": 0,
- "country": {
- "name": "string",
- "type": "string",
- "iso2Code": "string",
- "nonEUMemberState": true
}, - "startDate": "string",
- "endDate": "string",
- "new": true
}
], - "versionState": {
- "code": "string"
}, - "latestVersion": true,
- "versionNumber": 0,
- "discardedDate": "string",
- "versionDate": "2019-08-24T14:15:22Z",
- "new": true
}, - "secondaryDi": { },
- "secondaryDiApplicable": true,
- "additionalDescription": "string",
- "tradeName": {
- "texts": [
- {
- "language": { },
- "text": "string",
- "allLanguagesApplicable": true
}
]
}, - "tradeNameApplicable": true,
- "annexXVIApplicable": true,
- "brainElectroStimulation": true,
- "cmrSubstance": true,
- "cmrSubstances": [
- null
], - "componentDis": [
- null
], - "contactLenses": true,
- "directMarking": true,
- "directMarkingSameAsUdiDi": true,
- "directMarkingDi": { },
- "emr": true,
- "endocrineDisruptingSubstances": [
- null
], - "endocrineDisruptor": true,
- "equipmentForAdiposeTissue": true,
- "fillingByInjection": true,
- "humanProductSubstances": [
- null
], - "latex": true,
- "udiPiType": {
- "batchNumber": true,
- "serializationNumber": true,
- "manufacturingDate": true,
- "expirationDate": true,
- "softwareIdentification": true
}, - "medicinalProductSubstances": [
- null
], - "cndNomenclatures": [
- {
- "uuid": "string",
- "code": "string",
- "description": {
- "texts": [
- {
- "language": {
- "isoCode": "string",
- "name": "string"
}, - "text": "string",
- "allLanguagesApplicable": true
}
]
}, - "gmdnNomenclatures": [
- null
]
}
], - "oemApplicable": true,
- "productDesigner": { },
- "placedOnTheMarket": {
- "name": "string",
- "type": "string",
- "iso2Code": "string",
- "nonEUMemberState": true
}, - "productsToBeIntroduced": { },
- "reference": "string",
- "reprocessed": true,
- "maxNumberOfReuses": 0,
- "maxNumberOfReusesApplicable": true,
- "singleUse": true,
- "clinicalSizeApplicable": true,
- "clinicalSizes": [
- null
], - "deviceStatus": {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "type": {
- "code": "refdata.device-model-status.on-the-market"
}, - "statusDate": "2019-08-24",
- "new": true
}, - "subStatuses": [
- null
], - "sterile": true,
- "sterilization": true,
- "storageApplicable": true,
- "storageHandlingConditions": [
- null
], - "unitOfUse": { },
- "criticalWarningsApplicable": true,
- "criticalWarnings": [
- null
], - "additionalInformationUrl": "string",
- "storageSymbol": { },
- "baseQuantity": 0,
- "versionDate": "2019-08-24T14:15:22Z",
- "versionState": {
- "code": "string"
}, - "latestVersion": true,
- "versionNumber": 0,
- "newDevice": true,
- "discardedDate": "string",
- "linkedUdiDiView": { },
- "new": true
}
This is the second endpoint which is queried by the UI when you navigate to a device detail page. It contains even more additional device data, i.e. more device data than the other device endpoint (used in the same view), and more data than when you search. The context here is probably that a "Basic UDI-DI" is something of a higher-level identifier, i.e. it contains information valid across device versions. This is in contrast to the device endpoint which might only contain data for one specific device version.
basicUdiDiId required | string <uuid> ID of device to return |
languageIso2Code required | string Probably the language of what to return. Commonly |
{- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "ulid": "string",
- "udiDiData": { },
- "manufacturer": {
- "importers": [
- null
], - "nonEuManufacturers": { },
- "actorDataPublicView": {
- "ulid": "string",
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "type": {
- "code": "refdata.actor-type.manufacturer",
- "srnCode": "string",
- "category": "string"
}, - "actorStatus": {
- "code": "refdata.actor-status.active"
}, - "actorStatusFromDate": "string",
- "country": {
- "name": "string",
- "type": "string",
- "iso2Code": "string",
- "nonEUMemberState": true
}, - "name": {
- "texts": [
- {
- "language": { },
- "text": "string",
- "allLanguagesApplicable": true
}
]
}, - "abbreviatedName": { },
- "europeanVatNumberApplicable": true,
- "europeanVatNumber": "string",
- "eudamedIdentifier": "string",
- "tradeRegister": "string",
- "eori": "string",
- "organizationIdentificationDocuments": [
- null
], - "authorisedRepresentatives": [
- {
- "nonEuManufacturerUuid": "e4f2e9b4-0380-4260-a883-c5c5e09a77ec",
- "authorisedRepresentativeUuid": "db449171-14ce-4290-8015-d8a1dc28a929",
- "authorisedRepresentativeUlid": "string",
- "name": "string",
- "srn": "string",
- "address": "string",
- "countryName": "string",
- "startDate": "2019-08-24",
- "endDate": "2019-08-24",
- "terminationDate": "string",
- "email": "string",
- "telephone": "string",
- "mandateStatus": {
- "code": "string"
}, - "actorStatus": {
- "code": "string"
}, - "actorStatusFromDate": "string",
- "versionNumber": 0,
- "versionState": {
- "code": "string"
}, - "latestVersion": true,
- "lastUpdateDate": "2019-08-24T14:15:22Z",
- "ulid": "string"
}
], - "competentAuthorityResponsibility": { },
- "telephone": "string",
- "electronicMail": "string",
- "website": "string",
- "actorAddress": {
- "streetName": "string",
- "streetInfoApplicable": true,
- "buildingNumber": "string",
- "complement": "string",
- "postbox": "string",
- "gps": "string",
- "cityName": "string",
- "postalZone": "string",
- "country": {
- "name": "string",
- "type": "string",
- "iso2Code": "string",
- "nonEUMemberState": true
}
}, - "validatorName": "string",
- "validatorUuid": "8d1f3290-b0a1-415b-81e1-2b8d508e4aa2",
- "validatorType": {
- "code": "string",
- "srnCode": "string",
- "category": "string"
}, - "validatorSrn": "string",
- "validatorAddress": {
- "streetName": "string",
- "streetInfoApplicable": true,
- "buildingNumber": "string",
- "complement": "string",
- "postbox": "string",
- "gps": "string",
- "cityName": "string",
- "postalZone": "string",
- "country": {
- "name": "string",
- "type": "string",
- "iso2Code": "string",
- "nonEUMemberState": true
}
}, - "validatorEmail": "string",
- "validatorTelephone": "string",
- "regulatoryComplianceResponsibles": [
- {
- "firstName": "string",
- "familyName": "string",
- "electronicMail": "string",
- "telephone": "string",
- "position": "string",
- "geographicalAddress": {
- "streetName": "string",
- "streetInfoApplicable": true,
- "buildingNumber": "string",
- "complement": "string",
- "postbox": "string",
- "gps": "string",
- "cityName": "string",
- "postalZone": "string",
- "country": {
- "name": "string",
- "type": "string",
- "iso2Code": "string",
- "nonEUMemberState": true
}
}
}
], - "legislationLinks": { },
- "latestSubsidiary": { },
- "certificates": { },
- "latestVersion": true,
- "versionNumber": 0,
- "versionState": {
- "code": "string"
}, - "lastUpdateDate": "2019-08-24T14:15:22Z",
- "accuracyData": [
- null
], - "lastAccuracyDate": "string"
}
}, - "authorisedRepresentative": {
- "nonEuManufacturerUuid": "e4f2e9b4-0380-4260-a883-c5c5e09a77ec",
- "authorisedRepresentativeUuid": "db449171-14ce-4290-8015-d8a1dc28a929",
- "authorisedRepresentativeUlid": "string",
- "name": "string",
- "srn": "string",
- "address": "string",
- "countryName": "string",
- "startDate": "2019-08-24",
- "endDate": "2019-08-24",
- "terminationDate": "string",
- "email": "string",
- "telephone": "string",
- "mandateStatus": {
- "code": "string"
}, - "actorStatus": {
- "code": "string"
}, - "actorStatusFromDate": "string",
- "versionNumber": 0,
- "versionState": {
- "code": "string"
}, - "latestVersion": true,
- "lastUpdateDate": "2019-08-24T14:15:22Z",
- "ulid": "string"
}, - "active": true,
- "administeringMedicine": true,
- "animalTissues": true,
- "nbDecision": { },
- "basicUdi": {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "code": "string",
- "issuingAgency": {
- "code": "string"
}, - "type": "string",
- "new": true
}, - "companionDiagnostics": true,
- "reagent": true,
- "instrument": true,
- "professionalTesting": true,
- "kit": true,
- "device": true,
- "multiComponent": true,
- "deviceCriterion": "string",
- "basicUdiType": { },
- "deviceModel": "string",
- "deviceModelApplicable": true,
- "deviceName": "string",
- "humanTissues": true,
- "humanProduct": true,
- "medicinalProduct": true,
- "implantable": true,
- "sutures": { },
- "legislation": {
- "code": "refdata.applicable-legislation.mdd",
- "legacyDirective": true
}, - "measuringFunction": true,
- "microbialSubstances": true,
- "nearPatientTesting": true,
- "reusable": true,
- "riskClass": {
- "code": "refdata.risk-class.class-i"
}, - "selfTesting": true,
- "specialDeviceType": {
- "code": "refdata.special-mdd-device-type.software"
}, - "specialDeviceTypeApplicable": true,
- "medicalPurpose": { },
- "typeExaminationApplicable": true,
- "deviceCertificateInfoList": [
- {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "ulid": "string",
- "certificateExpiry": "2019-08-24",
- "certificateNumber": "string",
- "certificateRevision": "string",
- "notifiedBody": {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "ulid": "string",
- "versionNumber": 0,
- "versionState": {
- "code": "string"
}, - "latestVersion": true,
- "lastUpdateDate": "2019-08-24T14:15:22Z",
- "name": "string",
- "names": {
- "texts": [
- {
- "language": { },
- "text": "string",
- "allLanguagesApplicable": true
}
]
}, - "abbreviatedNames": {
- "texts": [
- {
- "language": { },
- "text": "string",
- "allLanguagesApplicable": true
}
]
}, - "actorType": {
- "code": "string",
- "srnCode": "string",
- "category": "string"
}, - "status": {
- "code": "string"
}, - "statusFromDate": "string",
- "countryIso2Code": "string",
- "countryName": "string",
- "countryType": "string",
- "geographicalAddress": "string",
- "electronicMail": "string",
- "telephone": "string",
- "srn": "string"
}, - "certificateType": {
- "code": "string"
}, - "versionState": {
- "code": "string"
}, - "latestVersion": true,
- "versionNumber": 0,
- "discardedDate": "string",
- "issueDate": "2019-08-24",
- "status": {
- "code": "string"
}, - "nbProvidedCertificate": true,
- "startingValidityDate": "2019-08-24",
- "new": true
}
], - "deviceCertificateInfoListForDisplay": [
- {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "ulid": "string",
- "certificateExpiry": "2019-08-24",
- "certificateNumber": "string",
- "certificateRevision": "string",
- "notifiedBody": {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "ulid": "string",
- "versionNumber": 0,
- "versionState": {
- "code": "string"
}, - "latestVersion": true,
- "lastUpdateDate": "2019-08-24T14:15:22Z",
- "name": "string",
- "names": {
- "texts": [
- {
- "language": { },
- "text": "string",
- "allLanguagesApplicable": true
}
]
}, - "abbreviatedNames": {
- "texts": [
- {
- "language": { },
- "text": "string",
- "allLanguagesApplicable": true
}
]
}, - "actorType": {
- "code": "string",
- "srnCode": "string",
- "category": "string"
}, - "status": {
- "code": "string"
}, - "statusFromDate": "string",
- "countryIso2Code": "string",
- "countryName": "string",
- "countryType": "string",
- "geographicalAddress": "string",
- "electronicMail": "string",
- "telephone": "string",
- "srn": "string"
}, - "certificateType": {
- "code": "string"
}, - "versionState": {
- "code": "string"
}, - "latestVersion": true,
- "versionNumber": 0,
- "discardedDate": "string",
- "issueDate": "2019-08-24",
- "status": {
- "code": "string"
}, - "nbProvidedCertificate": true,
- "startingValidityDate": "2019-08-24",
- "new": true
}
], - "clinicalInvestigationApplicable": true,
- "clinicalInvestigationLinks": [
- null
], - "versionDate": "2019-08-24T14:15:22Z",
- "versionState": {
- "code": "string"
}, - "latestVersion": true,
- "versionNumber": 0,
- "legacyDeviceUdiDiApplicable": true,
- "discardedDate": "string",
- "linkedSscp": {
- "ulid": "string",
- "validated": true,
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "referenceNumber": "string",
- "revisionNumber": "string",
- "issueDate": "2019-08-24",
- "versionNumber": 0,
- "inactive": true,
- "inactiveStatusDate": "string"
}, - "new": true
}
This is the endpoint used by the UI when you click on a specific actor (e.g. manufacturer, importer, etc.). Like with devices (= udiDiData
), this endpoint provides more data on an actor than its search endpoint.
actorId required | string <uuid> ID of actor to return |
languageIso2Code required | string Probably the language of what to return. Commonly |
{- "importers": [
- null
], - "nonEuManufacturers": { },
- "actorDataPublicView": {
- "ulid": "string",
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "type": {
- "code": "refdata.actor-type.manufacturer",
- "srnCode": "string",
- "category": "string"
}, - "actorStatus": {
- "code": "refdata.actor-status.active"
}, - "actorStatusFromDate": "string",
- "country": {
- "name": "string",
- "type": "string",
- "iso2Code": "string",
- "nonEUMemberState": true
}, - "name": {
- "texts": [
- {
- "language": { },
- "text": "string",
- "allLanguagesApplicable": true
}
]
}, - "abbreviatedName": { },
- "europeanVatNumberApplicable": true,
- "europeanVatNumber": "string",
- "eudamedIdentifier": "string",
- "tradeRegister": "string",
- "eori": "string",
- "organizationIdentificationDocuments": [
- null
], - "authorisedRepresentatives": [
- {
- "nonEuManufacturerUuid": "e4f2e9b4-0380-4260-a883-c5c5e09a77ec",
- "authorisedRepresentativeUuid": "db449171-14ce-4290-8015-d8a1dc28a929",
- "authorisedRepresentativeUlid": "string",
- "name": "string",
- "srn": "string",
- "address": "string",
- "countryName": "string",
- "startDate": "2019-08-24",
- "endDate": "2019-08-24",
- "terminationDate": "string",
- "email": "string",
- "telephone": "string",
- "mandateStatus": {
- "code": "string"
}, - "actorStatus": {
- "code": "string"
}, - "actorStatusFromDate": "string",
- "versionNumber": 0,
- "versionState": {
- "code": "string"
}, - "latestVersion": true,
- "lastUpdateDate": "2019-08-24T14:15:22Z",
- "ulid": "string"
}
], - "competentAuthorityResponsibility": { },
- "telephone": "string",
- "electronicMail": "string",
- "website": "string",
- "actorAddress": {
- "streetName": "string",
- "streetInfoApplicable": true,
- "buildingNumber": "string",
- "complement": "string",
- "postbox": "string",
- "gps": "string",
- "cityName": "string",
- "postalZone": "string",
- "country": {
- "name": "string",
- "type": "string",
- "iso2Code": "string",
- "nonEUMemberState": true
}
}, - "validatorName": "string",
- "validatorUuid": "8d1f3290-b0a1-415b-81e1-2b8d508e4aa2",
- "validatorType": {
- "code": "string",
- "srnCode": "string",
- "category": "string"
}, - "validatorSrn": "string",
- "validatorAddress": {
- "streetName": "string",
- "streetInfoApplicable": true,
- "buildingNumber": "string",
- "complement": "string",
- "postbox": "string",
- "gps": "string",
- "cityName": "string",
- "postalZone": "string",
- "country": {
- "name": "string",
- "type": "string",
- "iso2Code": "string",
- "nonEUMemberState": true
}
}, - "validatorEmail": "string",
- "validatorTelephone": "string",
- "regulatoryComplianceResponsibles": [
- {
- "firstName": "string",
- "familyName": "string",
- "electronicMail": "string",
- "telephone": "string",
- "position": "string",
- "geographicalAddress": {
- "streetName": "string",
- "streetInfoApplicable": true,
- "buildingNumber": "string",
- "complement": "string",
- "postbox": "string",
- "gps": "string",
- "cityName": "string",
- "postalZone": "string",
- "country": {
- "name": "string",
- "type": "string",
- "iso2Code": "string",
- "nonEUMemberState": true
}
}
}
], - "legislationLinks": { },
- "latestSubsidiary": { },
- "certificates": { },
- "latestVersion": true,
- "versionNumber": 0,
- "versionState": {
- "code": "string"
}, - "lastUpdateDate": "2019-08-24T14:15:22Z",
- "accuracyData": [
- null
], - "lastAccuracyDate": "string"
}
}