openalex-client
Version:
TypeScript SDK for OpenAlex academic database API
367 lines • 8.77 kB
TypeScript
export interface OpenAlexConfig {
timeout?: number;
retries?: number;
retryDelay?: number;
}
export interface PaginationParams {
page?: number;
per_page?: number;
cursor?: string;
}
export interface FilterParams {
filter?: Record<string, any>;
search?: string;
sort?: string;
group_by?: string;
}
export interface QueryParams extends PaginationParams, FilterParams {
select?: string;
mailto?: string;
}
export interface ExternalIds {
openalex?: string;
doi?: string;
mag?: string;
pmid?: string;
pmcid?: string;
arxiv?: string;
scopus?: string;
wos?: string;
}
export interface Location {
is_oa: boolean;
landing_page_url?: string;
pdf_url?: string;
source?: {
id: string;
display_name: string;
issn_l?: string;
issn?: string[];
is_oa: boolean;
is_in_doaj: boolean;
host_organization?: string;
type: string;
};
license?: string;
version?: string;
host_venue?: any;
}
export interface CountByYear {
year: number;
cited_by_count: number;
works_count?: number;
}
export interface Work {
id: string;
doi?: string;
title?: string;
display_name?: string;
publication_year?: number;
publication_date?: string;
ids: ExternalIds;
language?: string;
primary_location?: Location;
type: string;
type_crossref?: string;
open_access: {
is_oa: boolean;
oa_date?: string;
oa_url?: string;
any_repository_has_fulltext: boolean;
};
authorships: Authorship[];
countries_distinct_count: number;
institutions_distinct_count: number;
corresponding_author_ids: string[];
corresponding_institution_ids: string[];
apc_list?: {
value: number;
currency: string;
value_usd: number;
provenance: string;
};
apc_paid?: {
value: number;
currency: string;
value_usd: number;
provenance: string;
};
has_fulltext: boolean;
fulltext_origin?: string;
cited_by_count: number;
cited_by_api_url: string;
counts_by_year: CountByYear[];
updated_date: string;
created_date: string;
locations: Location[];
best_oa_location?: Location;
sustainable_development_goals: SustainableDevelopmentGoal[];
grants: Grant[];
referenced_works: string[];
related_works: string[];
concepts: WorkConcept[];
mesh: MeshTerm[];
locations_count: number;
referenced_works_count: number;
related_works_count: number;
ngrams_url?: string;
abstract_inverted_index?: Record<string, number[]>;
cited_by_api_url_v2: string;
biblio: {
volume?: string;
issue?: string;
first_page?: string;
last_page?: string;
};
is_retracted: boolean;
is_paratext: boolean;
}
export interface Authorship {
author_position: string;
author: {
id: string;
display_name: string;
orcid?: string;
};
institutions: Institution[];
countries: string[];
is_corresponding: boolean;
raw_author_name?: string;
raw_affiliation_string?: string;
}
export interface WorkConcept {
id: string;
wikidata?: string;
display_name: string;
level: number;
score: number;
}
export interface MeshTerm {
descriptor_ui: string;
descriptor_name: string;
qualifier_ui?: string;
qualifier_name?: string;
is_major_topic: boolean;
}
export interface Grant {
funder: string;
funder_display_name: string;
award_id?: string;
}
export interface SustainableDevelopmentGoal {
id: string;
display_name: string;
score: number;
}
export interface Author {
id: string;
orcid?: string;
display_name: string;
display_name_alternatives: string[];
works_count: number;
cited_by_count: number;
ids: ExternalIds;
last_known_institution?: {
id: string;
display_name: string;
ror?: string;
country_code: string;
type: string;
};
counts_by_year: CountByYear[];
works_api_url: string;
updated_date: string;
created_date: string;
summary_stats: {
two_yr_mean_citedness: number;
h_index: number;
i10_index: number;
};
x_concepts: AuthorConcept[];
}
export interface AuthorConcept {
id: string;
wikidata?: string;
display_name: string;
level: number;
score: number;
}
export interface Institution {
id: string;
ror?: string;
display_name: string;
country_code: string;
type: string;
homepage_url?: string;
image_url?: string;
image_thumbnail_url?: string;
display_name_acronyms: string[];
display_name_alternatives: string[];
works_count: number;
cited_by_count: number;
ids: ExternalIds;
geo: {
city: string;
geonames_city_id: string;
region?: string;
country_code: string;
country: string;
latitude: number;
longitude: number;
};
international: {
display_name: Record<string, string>;
};
associated_institutions: AssociatedInstitution[];
counts_by_year: CountByYear[];
x_concepts: InstitutionConcept[];
works_api_url: string;
updated_date: string;
created_date: string;
summary_stats: {
two_yr_mean_citedness: number;
h_index: number;
i10_index: number;
};
}
export interface AssociatedInstitution {
id: string;
display_name: string;
ror?: string;
country_code: string;
type: string;
relationship: string;
}
export interface InstitutionConcept {
id: string;
wikidata?: string;
display_name: string;
level: number;
score: number;
}
export interface Source {
id: string;
issn_l?: string;
issn?: string[];
display_name: string;
publisher?: string;
works_count: number;
cited_by_count: number;
is_oa: boolean;
is_in_doaj: boolean;
homepage_url?: string;
ids: ExternalIds;
host_organization?: string;
host_organization_name?: string;
host_organization_lineage: string[];
type: string;
counts_by_year: CountByYear[];
works_api_url: string;
updated_date: string;
created_date: string;
apc_prices: APCPrice[];
apc_usd?: number;
country_code?: string;
societies: Society[];
alternate_titles: string[];
abbreviated_title?: string;
x_concepts: SourceConcept[];
summary_stats: {
two_yr_mean_citedness: number;
h_index: number;
i10_index: number;
};
}
export interface APCPrice {
price: number;
currency: string;
}
export interface Society {
url: string;
organization: string;
}
export interface SourceConcept {
id: string;
wikidata?: string;
display_name: string;
level: number;
score: number;
}
export interface Concept {
id: string;
wikidata?: string;
display_name: string;
level: number;
description?: string;
works_count: number;
cited_by_count: number;
ids: ExternalIds;
image_url?: string;
image_thumbnail_url?: string;
international: {
display_name: Record<string, string>;
description?: Record<string, string>;
};
ancestors: ConceptAncestor[];
related_concepts: RelatedConcept[];
counts_by_year: CountByYear[];
works_api_url: string;
updated_date: string;
created_date: string;
summary_stats: {
two_yr_mean_citedness: number;
h_index: number;
i10_index: number;
};
}
export interface ConceptAncestor {
id: string;
wikidata?: string;
display_name: string;
level: number;
}
export interface RelatedConcept {
id: string;
wikidata?: string;
display_name: string;
level: number;
score: number;
}
export interface OpenAlexResponse<T> {
results: T[];
meta: {
count: number;
db_response_time_ms: number;
page: number;
per_page: number;
};
group_by?: GroupByResult[];
}
export interface GroupByResult {
key: string;
key_display_name: string;
count: number;
}
export interface AutocompleteResponse {
results: AutocompleteResult[];
meta: {
count: number;
db_response_time_ms: number;
};
}
export interface AutocompleteResult {
id: string;
display_name: string;
hint?: string;
cited_by_count?: number;
works_count?: number;
entity_type: string;
external_id?: string;
}
export type OpenAlexEntity = Work | Author | Institution | Source | Concept;
export interface OpenAlexError {
error: string;
message: string;
status_code?: number;
}
//# sourceMappingURL=index.d.ts.map