{"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":"Products","description":"API endpoints to explore <strong>Product</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:publication,cf.search.title:ocean`\n   - Multiple values: `product_type:publication|dataset|software`\n   - Mixed: `product_type:publication|dataset,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`: publication, dataset, 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","required":false,"schema":{"minimum":1,"type":"integer","default":1}},{"name":"page_size","in":"query","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer","default":100}}],"responses":{"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"}}}},"200":{"description":"OK","content":{"application/ld+json":{"schema":{"$ref":"#/components/schemas/SkgIfJsonLdResponse"}}}}}}},"/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":{"500":{"description":"Internal Server Error","content":{"application/ld+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"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"}}}}}}}},"components":{"schemas":{"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"}}},"SkgIfJsonLdResponse":{"type":"object","properties":{"@context":{"type":"array","items":{"type":"object"}},"meta":{"$ref":"#/components/schemas/SkgIfResponseMeta"},"@graph":{"type":"array","items":{"type":"object"}}}},"SkgIfNextPage":{"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"}}},"SkgIfPrevPage":{"type":"object","properties":{"local_identifier":{"type":"string"},"entity_type":{"type":"string"}}},"SkgIfResponseMeta":{"type":"object","properties":{"local_identifier":{"type":"string"},"entity_type":{"type":"string"},"prev_page":{"$ref":"#/components/schemas/SkgIfPrevPage"},"next_page":{"$ref":"#/components/schemas/SkgIfNextPage"},"part_of":{"$ref":"#/components/schemas/SkgIfPartOf"}}}}}}