Research Products
ResearchProductsFilters
Bases: BaseModel
Filter model for the Research Products V3 endpoint (/v3/research-products).
Field names mirror the V3 query parameters exactly. See the V3 OpenAPI spec
for the authoritative list and allowed values. Most string fields support
inline logical operators (OR/AND/NOT) with double-quoted values.
Notable V3 changes from V1/V2:
- authorOrcid renamed to authorId.
- bestOpenAccessRightLabel renamed to accessRightLabel
(allowed: Open Access, Closed Access, Restricted, Open Source, Embargo,
Unknown).
- sdg (was list[str]) renamed to sdgLabel (str; use inline
OR for multiple, e.g. sdgLabel='"3. Good health" OR "4. Education"').
- 17 new fields added (publication-year filters, language, hasLicense,
relProject, relFunder, relFundingLevel{0,1,2}Id, source,
eoscIfGuidelines, subCommunity, relCommunityName,
relOrganization, relHostingDataSource, excludePubDateRange).
Source code in src/aireloom/endpoints.py
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 | |
accessRightLabel = None
class-attribute
instance-attribute
authorFullName = None
class-attribute
instance-attribute
authorId = None
class-attribute
instance-attribute
citationCountClass = None
class-attribute
instance-attribute
countryCode = None
class-attribute
instance-attribute
description = None
class-attribute
instance-attribute
eoscIfGuidelines = None
class-attribute
instance-attribute
excludePubDateRange = None
class-attribute
instance-attribute
fos = None
class-attribute
instance-attribute
fromPublicationDate = None
class-attribute
instance-attribute
fromPublicationYear = None
class-attribute
instance-attribute
hasLicense = None
class-attribute
instance-attribute
hasProjectRel = None
class-attribute
instance-attribute
id = None
class-attribute
instance-attribute
impulseClass = None
class-attribute
instance-attribute
influenceClass = None
class-attribute
instance-attribute
instanceType = None
class-attribute
instance-attribute
isGreen = None
class-attribute
instance-attribute
isInDiamondJournal = None
class-attribute
instance-attribute
isPeerReviewed = None
class-attribute
instance-attribute
isPubliclyFunded = None
class-attribute
instance-attribute
language = None
class-attribute
instance-attribute
logicalOperator = None
class-attribute
instance-attribute
mainTitle = None
class-attribute
instance-attribute
model_config = ConfigDict(extra='forbid')
class-attribute
instance-attribute
openAccessColor = None
class-attribute
instance-attribute
originalId = None
class-attribute
instance-attribute
pid = None
class-attribute
instance-attribute
popularityClass = None
class-attribute
instance-attribute
publicationYear = None
class-attribute
instance-attribute
publisher = None
class-attribute
instance-attribute
relCollectedFromDatasourceId = None
class-attribute
instance-attribute
relCommunityId = None
class-attribute
instance-attribute
relCommunityName = None
class-attribute
instance-attribute
relFunder = None
class-attribute
instance-attribute
relFundingLevel0Id = None
class-attribute
instance-attribute
relFundingLevel1Id = None
class-attribute
instance-attribute
relFundingLevel2Id = None
class-attribute
instance-attribute
relHostingDataSource = None
class-attribute
instance-attribute
relHostingDataSourceId = None
class-attribute
instance-attribute
relOrganization = None
class-attribute
instance-attribute
relOrganizationId = None
class-attribute
instance-attribute
relProject = None
class-attribute
instance-attribute
relProjectCode = None
class-attribute
instance-attribute
relProjectFundingShortName = None
class-attribute
instance-attribute
relProjectFundingStreamId = None
class-attribute
instance-attribute
relProjectId = None
class-attribute
instance-attribute
rorId = None
class-attribute
instance-attribute
sdgLabel = None
class-attribute
instance-attribute
search = None
class-attribute
instance-attribute
source = None
class-attribute
instance-attribute
subCommunity = None
class-attribute
instance-attribute
subjects = None
class-attribute
instance-attribute
toPublicationDate = None
class-attribute
instance-attribute
toPublicationYear = None
class-attribute
instance-attribute
type = None
class-attribute
instance-attribute
ResearchProductsClient
Bases: GraphV3FilterSerializationMixin, BatchMixin, GettableMixin, SearchableMixin, CursorIterableMixin, BaseResourceClient
Client for the OpenAIRE Research Products API endpoint.
This client provides standardized methods (get, search, iterate) for
accessing research product data, by inheriting from bibliofabric mixins.
It also provides search_links, iterate_links, and get_relations_info
for the V3 /research-products/links sub-endpoint.
Attributes:
| Name | Type | Description |
|---|---|---|
_entity_path |
str
|
The API path for research products. |
_entity_model |
type[ResearchProduct]
|
Pydantic model for a single research product. |
_search_response_model |
type[ResearchProductResponse]
|
Pydantic model for the search response envelope. |
Source code in src/aireloom/resources/research_products_client.py
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 | |
search_links(*, filters=None, page=0, page_size=20)
async
Search for relation links between research products.
Uses the V3 /research-products/links endpoint (NOT the Scholix API).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
filters
|
LinksFilters | None
|
Optional :class: |
None
|
page
|
int
|
0-indexed page number. |
0
|
page_size
|
int
|
Number of results per page (max 99; values >=100 are silently truncated to 10 by V3). |
20
|
Returns:
| Name | Type | Description |
|---|---|---|
A |
LinksResponse
|
class: |
Source code in src/aireloom/resources/research_products_client.py
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 | |
iterate_links(*, filters=None, page_size=MAX_LINK_PAGE_SIZE)
async
Iterate through all relation links matching filters.
Automatically handles page-based pagination using totalPages
from the response header.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
filters
|
LinksFilters | None
|
Optional :class: |
None
|
page_size
|
int
|
Number of results per page (max 99; see :meth: |
MAX_LINK_PAGE_SIZE
|
Yields:
| Type | Description |
|---|---|
AsyncIterator[Relation]
|
class: |
Source code in src/aireloom/resources/research_products_client.py
119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 | |
get_relations_info()
async
Retrieve available relation types from the links endpoint.
Uses the V3 /research-products/links/relations-info endpoint.
Returns:
| Type | Description |
|---|---|
list[dict[str, Any]]
|
A list of dicts describing relation types (name, inverse, description). |
Source code in src/aireloom/resources/research_products_client.py
161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 | |