{"openapi":"3.0.1","info":{"title":"OpenAIRE Graph API","description":"SKG-IF API","termsOfService":"https://graph.openaire.eu/docs/apis/terms","contact":{"name":"Contact us","url":"https://graph.openaire.eu/helpdesk"},"license":{"name":"License","url":"https://graph.openaire.eu/docs/license"}},"servers":[{"url":"https://api.openaire.eu/graph","description":"Server base URL"}],"tags":[{"name":"Organisations","description":"API endpoints to explore <strong>Organisation</strong> entity."},{"name":"Persons","description":"API endpoints to explore <strong>Person</strong> entity."},{"name":"Grants","description":"API endpoints to explore <strong>Grant</strong> entity."},{"name":"Products","description":"API endpoints to explore <strong>Product</strong> entity."},{"name":"Data Sources","description":"API endpoints to explore <strong>Data Source</strong> entity."}],"paths":{"/skg-if/v1/products":{"get":{"tags":["Products"],"description":"Get a list of `product` matching the provided filter criteria.","operationId":"search","parameters":[{"name":"filter","in":"query","description":"   Filter string with pipe-separated values for multiple values per key.\n\n   **Format:** `key1:value1|value2,key2:value3`\n\n   **Examples:**\n   - Single values: `product_type:literature,cf.search.title:ocean`\n   - Multiple values: `product_type:literature|research data|research software`\n   - Mixed: `product_type:literature|research data,cf.search.title:ocean`\n\n   **IMPORTANT:** Duplicate keys are not allowed (use pipe `|` to separate multiple values)\n\n   **Attribute Filters:**\n- `product_type`: literature, research data, research software, other\n- `identifiers.id`: product identifier (DOI, arXiv, etc.)\n- `identifiers.scheme`: identifier scheme (doi, arxiv, etc.)\n- `contributions.by.local_identifier`: contributor local ID\n- `contributions.by.identifiers.id`: contributor identifier (ORCID, etc.)\n- `contributions.by.identifiers.scheme`: contributor ID scheme (orcid, etc.)\n- `contributions.by.family_name`: contributor family name\n- `contributions.by.given_name`: contributor given name\n- `contributions.by.name`: contributor full name\n- `contributions.declared_affiliations.local_identifier`: affiliation local ID\n- `contributions.declared_affiliations.identifiers.id`: affiliation identifier\n- `contributions.declared_affiliations.identifiers.scheme`: affiliation ID scheme\n- `contributions.declared_affiliations.name`: affiliation name\n- `contributions.declared_affiliations.short_name`: affiliation short name\n- `funding.local_identifier`: funding local identifier\n- `funding.grant_number`: funding grant number\n- `funding.identifiers.id`: funding identifier\n- `funding.identifiers.scheme`: funding identifier scheme\n\n**Convenience Filters:**\n- `cf.search.title`: title search\n- `cf.search.title_abstract`: title and abstract search\n- `cf.contributions_orcid`: ORCID-based contributor search\n- `cf.cites`: citation relationships\n- `cf.subject`: subject classification\n- `cf.publication_year`: publication year\n- `cf.language`: language filter\n- `cf.access_rights`: access rights filter\n","required":true,"schema":{"type":"string"},"example":"product_type:publication"},{"name":"page","in":"query","description":"Search page reference: a page number or a search iteration (cursor) token.\n\n- Page number (e.g. `page=2`): basic offset pagination, limited to the first 10000 records.\n- Cursor token: cursor-based pagination for retrieving datasets of any size. Initial value: `page=*`.\n\nTo iterate, follow the `meta.next_page.local_identifier` URL returned in the response;\nthe last page has no `meta.next_page`.\n","required":false,"schema":{"type":"string","default":"1"}},{"name":"page_size","in":"query","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer","default":10}}],"responses":{"200":{"description":"OK","content":{"application/ld+json":{"schema":{"$ref":"#/components/schemas/SkgIfJsonLdResponse"}}}},"400":{"description":"Bad Request","content":{"application/ld+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Unprocessable Entity","content":{"application/ld+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/ld+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/skg-if/v1/products/{localIdentifier}":{"get":{"tags":["Products"],"description":"Get product by local identifier.","operationId":"getById","parameters":[{"name":"localIdentifier","in":"path","description":"The local identifier of the product","required":true,"schema":{"type":"string"}}],"responses":{"404":{"description":"Not Found","content":{"application/ld+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"200":{"description":"OK","content":{"application/ld+json":{"schema":{"$ref":"#/components/schemas/SkgIfJsonLdResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/ld+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/skg-if/v1/persons":{"get":{"tags":["Persons"],"description":"Get a list of `person` matching the provided filter criteria.","operationId":"search_1","parameters":[{"name":"filter","in":"query","description":"   Filter string with pipe-separated values for multiple values per key.\n\n   **Format:** `key1:value1|value2,key2:value3`\n\n   **Examples:**\n   - Single values: `family_name:Carberry,given_name:Josiah`\n   - Multiple values: `family_name:Carberry|Smith`\n\n   **IMPORTANT:** Duplicate keys are not allowed (use pipe `|` to separate multiple values)\n\n   **Attribute Filters:**\n- `identifiers.id`: person identifier (ORCID)\n- `given_name`: the given name of the person\n- `family_name`: the family name of the person\n\n**Convenience Filters:**\n- `cf.search.given_name`: given name search\n- `cf.search.family_name`: family name search\n- `cf.search.name`: search across given and family name\n","required":true,"schema":{"type":"string"},"example":"family_name:Carberry"},{"name":"page","in":"query","description":"Search page reference: a page number or a search iteration (cursor) token.\n\n- Page number (e.g. `page=2`): basic offset pagination, limited to the first 10000 records.\n- Cursor token: cursor-based pagination for retrieving datasets of any size. Initial value: `page=*`.\n\nTo iterate, follow the `meta.next_page.local_identifier` URL returned in the response;\nthe last page has no `meta.next_page`.\n","required":false,"schema":{"type":"string","default":"1"}},{"name":"page_size","in":"query","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer","default":10}}],"responses":{"200":{"description":"OK","content":{"application/ld+json":{"schema":{"$ref":"#/components/schemas/SkgIfJsonLdResponse"}}}},"400":{"description":"Bad Request","content":{"application/ld+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Unprocessable Entity","content":{"application/ld+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/ld+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/skg-if/v1/persons/{localIdentifier}":{"get":{"tags":["Persons"],"description":"Get person by local identifier.","operationId":"getById_1","parameters":[{"name":"localIdentifier","in":"path","description":"The local identifier of the person","required":true,"schema":{"type":"string"}}],"responses":{"404":{"description":"Not Found","content":{"application/ld+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"200":{"description":"OK","content":{"application/ld+json":{"schema":{"$ref":"#/components/schemas/SkgIfJsonLdResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/ld+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/skg-if/v1/organisations":{"get":{"tags":["Organisations"],"description":"Get a list of `organisation` matching the provided filter criteria.","operationId":"search_2","parameters":[{"name":"filter","in":"query","description":"   Filter string with pipe-separated values for multiple values per key.\n\n   **Format:** `key1:value1|value2,key2:value3`\n\n   **Examples:**\n   - Single values: `country:GR,cf.search.name:athena`\n   - Multiple values: `country:GR|IT|FR`\n\n   **IMPORTANT:** Duplicate keys are not allowed (use pipe `|` to separate multiple values)\n\n   **Attribute Filters:**\n- `identifiers.id`: organisation identifier (ROR, GRID, etc.)\n- `name`: organisation legal name\n- `short_name`: organisation legal short name\n- `country`: ISO 3166-1 alpha-2 country code\n\n**Convenience Filters:**\n- `cf.search.name`: name search\n","required":true,"schema":{"type":"string"},"example":"country:GR"},{"name":"page","in":"query","description":"Search page reference: a page number or a search iteration (cursor) token.\n\n- Page number (e.g. `page=2`): basic offset pagination, limited to the first 10000 records.\n- Cursor token: cursor-based pagination for retrieving datasets of any size. Initial value: `page=*`.\n\nTo iterate, follow the `meta.next_page.local_identifier` URL returned in the response;\nthe last page has no `meta.next_page`.\n","required":false,"schema":{"type":"string","default":"1"}},{"name":"page_size","in":"query","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer","default":10}}],"responses":{"200":{"description":"OK","content":{"application/ld+json":{"schema":{"$ref":"#/components/schemas/SkgIfJsonLdResponse"}}}},"400":{"description":"Bad Request","content":{"application/ld+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Unprocessable Entity","content":{"application/ld+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/ld+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/skg-if/v1/organisations/{localIdentifier}":{"get":{"tags":["Organisations"],"description":"Get organisation by local identifier.","operationId":"getById_2","parameters":[{"name":"localIdentifier","in":"path","description":"The local identifier of the organisation","required":true,"schema":{"type":"string"}}],"responses":{"404":{"description":"Not Found","content":{"application/ld+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"200":{"description":"OK","content":{"application/ld+json":{"schema":{"$ref":"#/components/schemas/SkgIfJsonLdResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/ld+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/skg-if/v1/grants":{"get":{"tags":["Grants"],"description":"Get a list of `grant` matching the provided filter criteria.","operationId":"search_3","parameters":[{"name":"filter","in":"query","description":"   Filter string with pipe-separated values for multiple values per key.\n\n   **Format:** `key1:value1|value2,key2:value3`\n\n   **Examples:**\n   - Single values: `grant_number:101095129,funding_agency.short_name:EC`\n   - Multiple values: `acronym:GraspOS|OSTrails`\n\n   **IMPORTANT:** Duplicate keys are not allowed (use pipe `|` to separate multiple values)\n\n   **Attribute Filters:**\n- `grant_number`: the grant agreement code\n- `acronym`: the grant acronym\n- `funding_stream`: the name of the funding stream\n- `funding_agency.short_name`: the short name of the funder\n- `beneficiaries.name`: name of a beneficiary organisation\n- `beneficiaries.short_name`: short name of a beneficiary organisation\n- `beneficiaries.country`: country code of a beneficiary organisation\n\n**Convenience Filters:**\n- `cf.search.title`: title search\n- `cf.duration.start.from`: start date on or after (YYYY or YYYY-MM-DD)\n- `cf.duration.start.to`: start date on or before (YYYY or YYYY-MM-DD)\n- `cf.duration.end.from`: end date on or after (YYYY or YYYY-MM-DD)\n- `cf.duration.end.to`: end date on or before (YYYY or YYYY-MM-DD)\n","required":true,"schema":{"type":"string"},"example":"grant_number:101095129"},{"name":"page","in":"query","description":"Search page reference: a page number or a search iteration (cursor) token.\n\n- Page number (e.g. `page=2`): basic offset pagination, limited to the first 10000 records.\n- Cursor token: cursor-based pagination for retrieving datasets of any size. Initial value: `page=*`.\n\nTo iterate, follow the `meta.next_page.local_identifier` URL returned in the response;\nthe last page has no `meta.next_page`.\n","required":false,"schema":{"type":"string","default":"1"}},{"name":"page_size","in":"query","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer","default":10}}],"responses":{"200":{"description":"OK","content":{"application/ld+json":{"schema":{"$ref":"#/components/schemas/SkgIfJsonLdResponse"}}}},"400":{"description":"Bad Request","content":{"application/ld+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Unprocessable Entity","content":{"application/ld+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/ld+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/skg-if/v1/grants/{localIdentifier}":{"get":{"tags":["Grants"],"description":"Get grant by local identifier.","operationId":"getById_3","parameters":[{"name":"localIdentifier","in":"path","description":"The local identifier of the grant","required":true,"schema":{"type":"string"}}],"responses":{"404":{"description":"Not Found","content":{"application/ld+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"200":{"description":"OK","content":{"application/ld+json":{"schema":{"$ref":"#/components/schemas/SkgIfJsonLdResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/ld+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/skg-if/v1/datasources":{"get":{"tags":["Data Sources"],"description":"Get a list of `datasource` matching the provided filter criteria.","operationId":"search_4","parameters":[{"name":"filter","in":"query","description":"   Filter string with pipe-separated values for multiple values per key.\n\n   **Format:** `key1:value1|value2,key2:value3`\n\n   **Examples:**\n   - Single values: `data_source_classification:repository,cf.search.name:archive`\n   - Multiple values: `data_source_classification:repository|aggregator`\n\n   **IMPORTANT:** Duplicate keys are not allowed (use pipe `|` to separate multiple values)\n\n   **Attribute Filters:**\n- `data_source_classification`: repository, aggregator, scientific database, journal archive, publisher archive, cris system\n- `identifiers.value`: data source identifier\n\n**Convenience Filters:**\n- `cf.search.name`: name search (official and English name)\n","required":true,"schema":{"type":"string"},"example":"data_source_classification:repository"},{"name":"page","in":"query","description":"Search page reference: a page number or a search iteration (cursor) token.\n\n- Page number (e.g. `page=2`): basic offset pagination, limited to the first 10000 records.\n- Cursor token: cursor-based pagination for retrieving datasets of any size. Initial value: `page=*`.\n\nTo iterate, follow the `meta.next_page.local_identifier` URL returned in the response;\nthe last page has no `meta.next_page`.\n","required":false,"schema":{"type":"string","default":"1"}},{"name":"page_size","in":"query","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer","default":10}}],"responses":{"200":{"description":"OK","content":{"application/ld+json":{"schema":{"$ref":"#/components/schemas/SkgIfJsonLdResponse"}}}},"400":{"description":"Bad Request","content":{"application/ld+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Unprocessable Entity","content":{"application/ld+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/ld+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/skg-if/v1/datasources/{localIdentifier}":{"get":{"tags":["Data Sources"],"description":"Get datasource by local identifier.","operationId":"getById_4","parameters":[{"name":"localIdentifier","in":"path","description":"The local identifier of the datasource","required":true,"schema":{"type":"string"}}],"responses":{"404":{"description":"Not Found","content":{"application/ld+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"200":{"description":"OK","content":{"application/ld+json":{"schema":{"$ref":"#/components/schemas/SkgIfJsonLdResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/ld+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}},"components":{"schemas":{"SkgIfJsonLdResponse":{"type":"object","properties":{"@context":{"type":"array","items":{"type":"object"}},"meta":{"$ref":"#/components/schemas/SkgIfResponseMeta"},"@graph":{"type":"array","items":{"type":"object"}}}},"SkgIfPageRef":{"type":"object","properties":{"local_identifier":{"type":"string"},"entity_type":{"type":"string"}}},"SkgIfPartOf":{"type":"object","properties":{"local_identifier":{"type":"string"},"entity_type":{"type":"string"},"total_items":{"type":"integer","format":"int64"},"first_page":{"$ref":"#/components/schemas/SkgIfPageRef"}}},"SkgIfResponseMeta":{"type":"object","properties":{"local_identifier":{"type":"string"},"entity_type":{"type":"string"},"prev_page":{"$ref":"#/components/schemas/SkgIfPageRef"},"next_page":{"$ref":"#/components/schemas/SkgIfPageRef"},"part_of":{"$ref":"#/components/schemas/SkgIfPartOf"}}},"ErrorResponse":{"type":"object","properties":{"message":{"type":"string","description":"The application error message"},"error":{"type":"string","description":"The http error message"},"code":{"type":"integer","description":"The http error code","format":"int32"},"timestamp":{"type":"string","description":"The timestamp the error occurred","format":"date-time"},"path":{"type":"string","description":"The path of the request"}}}}}}