POST/meta-search

meta-search: filter and sort metadata

Filter paper bibliographic metadata by structured conditions such as year, journal, DOI, and language.

Overview

meta-search returns bibliographic metadata such as title, abstract, authors, and publication year. It is suited for paper lists, filtering, and exports, but does not return passage text. You can search precisely with filters and sort without query, or use query for full-text fuzzy matching (query and sort can be combined: with sort, results are hard-sorted by the field and query degrades to a match filter; without sort, use freshness_boost to bias toward recent papers, impact_boost to favor highly-cited ones, or language_affinity to favor papers in the query's language).

Use cases

  • · Filter literature lists by fields such as subject, year, journal, and language.
  • · Use meta-catalog to dynamically generate UI filters.
  • · Use cursor pagination for cross-page retrieval.

Not for

  • · Use agentic-search for open-ended semantic evidence retrieval.
  • · Use content when you need full source text.
  • · Use resource when you need Figure, Table, or attachment binaries.

Capability boundaries

  • · meta-search is for structured scholarly metadata retrieval and does not return evidence chunk text.
  • · filters, fields, and sort names must come from meta-catalog; do not hard-code or invent field names.
  • · query and sort should not be combined for relevance-ranked use cases; use cursor for deep pagination beyond page * page_size 10000.
  • · Returned fields may be trimmed by account field permissions.

Authentication

Use API key Bearer token authentication for all requests. Add this HTTP header:

Authorization: Bearer YOUR_API_TOKEN

Request example

curl -X POST https://api.sciverse.space/meta-search \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "graphene battery cycle stability",
    "filters": [
      {"field": "publication_published_year", "operator": "FILTER_OP_GTE", "value": 2022}
    ],
    "fields": ["title", "doi", "publication_published_year", "publication_venue_name_unified"],
    "page": 1,
    "page_size": 10
  }'

Request body (JSON)

FilterItem: { field, operator?, value }. operator defaults to EQ; supported values are FILTER_OP_EQ/NE/GT/GTE/LT/LTE/IN/NIN/CONTAINS/MATCH/MATCH_PHRASE. SortItem: { field, order }. order defaults to SORT_ORDER_DESC.

FieldTypeRequiredDescription
collectionstringOptionalEntity collection to search. papers (default) / authors / sources. Each collection has its own field schema — call meta-catalog?collection=<name> for its field list. Link from paper results via orcid (authors) or issn (sources).
Default papersRange papers / authors / sources
querystringOptionalFull-text fuzzy query. Can be combined with sort — with sort, results are hard-sorted by the field and query degrades to a match filter (no relevance ranking).
filtersarray<FilterItem>OptionalList of field filter conditions.
sortarray<SortItem>OptionalSort field list. Sortable fields: publication_published_year / publication_published_date / reference_count / citation_count / influential_citation_count / fwci. Can be combined with query (with sort, results are hard-sorted by the field and query degrades to a match filter); when sort is set, freshness_boost/impact_boost/language_affinity are ignored (hard sort takes precedence).
fieldsarray<string>OptionalField projection. doc_id is always returned.
pageintegerOptionalPage number.
Default 1Range ≥ 1
page_sizeintegerOptionalItems per page.
Default 25Range 1–200
cursorstringOptionalCursor pagination token; mutually exclusive with page > 1.
freshness_boostenumOptionalFreshness boosting for fuzzy search. MILD: 10-year decay, suited for everyday literature search. STRONG: 3-year decay, suited for tracking research directions / latest progress. Only effective when query is non-empty and sort is not provided (ignored when sort is set, as hard sort takes precedence); can be combined with impact_boost. Implemented via a two-phase rescore (BM25 retrieves top-N candidates, then reranks them with gauss decay); when a boost is active, only shallow paging is supported (no cursor).
Default NONERange NONE / MILD / STRONG
impact_boostenumOptionalImpact boosting for fuzzy search: highly-cited papers rise while relevance is preserved. MILD: light boost, relevance still dominant; STRONG: strongly favors highly-cited papers. Only effective when query is non-empty and sort is not provided; can be combined with freshness_boost (set both non-NONE for relevant + recent + highly-cited). Implemented via a two-phase rescore, impact factor = 1 + weight × saturation(citation_count) (multiplicative, bounded, neutral for zero-citation); when a boost is active, only shallow paging is supported (no cursor).
Default NONERange NONE / MILD / STRONG
language_affinityenumOptionalLanguage-affinity boosting for fuzzy search: results not in the query's language are demoted (never excluded). The target language is detected server-side from the query text (kana→ja / hangul→ko / Han→zh / Latin→en; other scripts have no effect); papers with unknown language (empty / und / zxx) stay neutral and are not demoted. MILD: non-target languages ×0.5, strongly relevant cross-language results can still surface; STRONG: ×0.2, near-exclusive focus on the target language. Only effective when query is non-empty and sort is not provided; can be combined with freshness_boost / impact_boost; when a boost is active, only shallow paging is supported. To hard-exclude a language, use the language field in filters instead (soft and hard constraints have different semantics).
Default NONERange NONE / MILD / STRONG

Field capabilities

Field visibility depends on the current token permissions. Dotted subfields are for filters / sort only and cannot be used in fields[] projections. At runtime, prefer the meta-catalog response as the source of truth.

FieldTypeFilterSearchSortDefaultProjectDescription
doc_idstringContent hash (sha256) of the full-text artifact. Present only when the record has full text; metadata-only records have no doc_id. Use unique_id to reference the metadata record itself; use doc_id only when fetching full text via /content.
unique_idstringGlobal unique ID of the metadata record. Every record has one regardless of whether full text exists; ideal for reference, dedup, and cross-service linking. Returned by default.
metadata_typestringMetadata source type. Paper sources use paper; book sources use ebook.
titlestringResource title.
abstractstringAbstract, summary, or content overview.
languagestringResource language.
doistringDigital object identifier, mainly used to locate academic resources such as papers.
isbnsarray<string>Book ISBN list, possibly containing multiple ISBNs.
isbn13string13-digit ISBN, the standard identifier for book resources.
typestringResource or literature type.
authorarray<object>Author list (array of objects with name/orcid subfields). Filter by author name: exact via author.name.keyword, fuzzy MATCH via author.name; pass field as author.
contributorsarray<string>Contributor list, such as editors and translators.
locationsarray<object>Accessible locations, source links, holdings, or open-access location list.
access_is_oastringWhether the resource is open access.
access_oa_statusstringOpen-access status.
access_oa_urlstringOpen-access URL.
access_licensestringOpen-access or usage license.
publication_published_datedatePublication date (ISO yyyy-MM-dd). Supports range filters, day-level sort, and day-level freshness_boost. About 19.6% of documents use YYYY-01-01 as a year-only placeholder and will cluster at the start of the year under day precision.
publication_published_yearintegerPublication year.
publication_published_placearray<string>Publication place.
publication_published_countryarray<string>Publication country/region.
publication_venue_name_unifiedstringCanonical form of the publication venue name (abbreviation / casing / punctuation normalized). Preferred over publication_venue_name_unified for exact match and aggregation; can replace venue_name in those scenarios.
publication_venue_typestringPublication venue type.
publication_venue_issnarray<string>Publication venue ISSN list.
publication_publisherarray<string>Publisher.
publication_venue_biblio_volumestringJournal/conference volume.
publication_venue_biblio_issuestringJournal/conference issue.
publication_venue_biblio_pagesstringJournal/conference page range.
publication_pagesintegerBook page count or total resource page count.
keywordsarray<string>Keyword list.
primary_topicobjectPrimary topic information.
topicsarray<object>Topic list.
subjectsarray<string>Book subject list.
genrearray<string>Book genre/type list.
reference_countintegerReference count: how many works this work cites.
citation_countintegerCitation count: the number of times this work has been cited by other works, an important impact indicator.
influential_citation_countintegerInfluential citation count.
fwcifloatField-Weighted Citation Impact (FWCI) for a work.
referencesarray<string>Reference list cited by this paper.
related_worksarray<string>Related works list.
citation_normalized_percentileobjectCitation percentile for a work, indicating its citation position within a comparable set by type, publication year, and subfield.
cited_by_percentile_yearobjectCitation percentile by publication year. min: 0, max: 100; 99-100 means the top 1% among works from the same year.
citationsarray<object>List of works that cite this paper (projected on demand; returned as a whole, not filtered by subfield).
primary_topic.idstringPrimary topic OpenAlex topic ID, such as https://openalex.org/T11615.
primary_topic.display_namestringExact-match display name of the primary topic.
primary_topic.scorefloatPrimary topic confidence score, from 0 to 1.
primary_topic.domain.idstringOpenAlex domain ID for the primary topic, such as https://openalex.org/domains/3.
primary_topic.domain.display_namestringExact-match display name of the primary topic domain.
topics.idstringTopic ID (nested; OpenAlex URL format).
topics.display_namestringExact-match topic display name (nested).
topics.scorefloatTopic confidence score (nested).
citation_normalized_percentile.valuefloatCitation percentile from 0 to 1; 0.99 means top 1%.
citation_normalized_percentile.is_in_top_10_percentbooleanWhether the work is in the top 10% by citations.
citation_normalized_percentile.is_in_top_1_percentbooleanWhether the work is in the top 1% by citations.
cited_by_percentile_year.minfloatLower bound of citation percentile within the publication year, from 0 to 100.
cited_by_percentile_year.maxfloatUpper bound of citation percentile within the publication year, from 0 to 100.

Response structure

FieldTypeDescription
resultsarray<object>Matched records; fields depend on the fields parameter and token permissions.
results[].abstractstringAbstract, summary, or content overview.
results[].access_is_oastringWhether the resource is open access.
results[].access_licensestringOpen-access or usage license.
results[].access_oa_statusstringOpen-access status.
results[].access_oa_urlstringOpen-access URL.
results[].authorarray<object>Author list (array of objects with name/orcid subfields).
results[].citation_countintegerCitation count: the number of times this work has been cited by other works, an important impact indicator.
results[].citation_normalized_percentileobjectCitation percentile for a work, indicating its citation position within a comparable set by type, publication year, and subfield.
results[].cited_by_percentile_yearobjectCitation percentile by publication year. min: 0, max: 100; 99-100 means the top 1% among works from the same year.
results[].contributorsarray<string>Contributor list, such as editors and translators.
results[].doc_idstringContent hash (sha256) of the full-text artifact. Present only when the record has full text; metadata-only records have no doc_id. Use unique_id to reference the metadata record itself; use doc_id only when fetching full text via /content.
results[].doistringDigital object identifier, mainly used to locate academic resources such as papers.
results[].fwcifloatField-Weighted Citation Impact (FWCI) for a work.
results[].genrearray<string>Book genre/type list.
results[].influential_citation_countintegerInfluential citation count.
results[].isbn13string13-digit ISBN, the standard identifier for book resources.
results[].isbnsarray<string>Book ISBN list, possibly containing multiple ISBNs.
results[].keywordsarray<string>Keyword list.
results[].languagestringResource language.
results[].locationsarray<object>Accessible locations, source links, holdings, or open-access location list.
results[].metadata_typestringMetadata source type. Paper sources use paper; book sources use ebook.
results[].primary_topicobjectPrimary topic information.
results[].publication_pagesintegerBook page count or total resource page count.
results[].publication_published_countryarray<string>Publication country/region.
results[].publication_published_datedatePublication date (ISO yyyy-MM-dd). Supports range filters, day-level sort, and day-level freshness_boost. About 19.6% of documents use YYYY-01-01 as a year-only placeholder and will cluster at the start of the year under day precision.
results[].publication_published_placearray<string>Publication place.
results[].publication_published_yearintegerPublication year.
results[].publication_publisherarray<string>Publisher.
results[].publication_venue_biblio_issuestringJournal/conference issue.
results[].publication_venue_biblio_pagesstringJournal/conference page range.
results[].publication_venue_biblio_volumestringJournal/conference volume.
results[].publication_venue_issnarray<string>Publication venue ISSN list.
results[].publication_venue_name_unifiedstringCanonical form of the publication venue name (abbreviation / casing / punctuation normalized). Preferred over publication_venue_name_unified for exact match and aggregation; can replace venue_name in those scenarios.
results[].publication_venue_typestringPublication venue type.
results[].reference_countintegerReference count: how many works this work cites.
results[].referencesarray<string>Reference list cited by this paper.
results[].related_worksarray<string>Related works list.
results[].subjectsarray<string>Book subject list.
results[].titlestringResource title.
results[].topicsarray<object>Topic list.
results[].typestringResource or literature type.
results[].unique_idstringGlobal unique ID of the metadata record. Every record has one regardless of whether full text exists; ideal for reference, dedup, and cross-service linking. Returned by default.
total_countintegerTotal hit count.
pageintegerCurrent page.
page_sizeintegerItems per page.
total_pagesintegerTotal pages.
search_time_msfloatSearch time in milliseconds.
next_cursorstringNext cursor for deep pagination.

Response example

{
  "results": [
    {
      "doc_id": "d_2a91...",
      "title": "Cycle stability of graphene composite cathodes",
      "doi": "10.1234/xyz",
      "language": "en",
      "publication_published_year": 2024,
      "publication_venue_name_unified": "Adv. Energy Mater.",
      "citation_count": 42,
      "fwci": 1.84
    }
  ],
  "total_count": 318,
  "page": 1,
  "page_size": 25,
  "total_pages": 13,
  "search_time_ms": 56.4,
  "next_cursor": "eyJvZmZzZXQiOjI1fQ=="
}

Errors

CodeMessageDescription
400INVALID_REQUEST / INVALID_ARGUMENTInvalid parameters, including sorting on a non-sortable field or cursor/page mutual exclusion.
401UNAUTHORIZED / UNAUTHENTICATEDAuthentication failed.
403PERMISSION_DENIEDNo permission for the field; adjust fields or use another token.
429RATE_LIMITEDAccount quota limit reached.
500/502/503/504UPSTREAM_UNAVAILABLEService error.

See the Errors section for shared error codes.

Parameter bounds

LimitValue
page lower bound≥ 1
page_size1-200, default 25
Shallow paginationpage * page_size ≤ 10000
Deep paginationUse cursor; cursor is mutually exclusive with page > 1.
query and sortCan be combined: with sort, results are hard-sorted by the field and query degrades to a match filter; without sort, sorted by relevance.
Default rate limit30 requests / minute unless account-specific rules are configured

Retry guidance

  • · Retry recommended: 502 / 503 / 504
  • · Do not retry: 400 / 401 / 403; for 429, wait for the limit window or daily quota reset.

FAQ

What is meta-search best for?

It is best for filtering papers by year, venue, DOI, language, OA status, and other structured fields, returning paper-level metadata lists.

Does meta-search return full-text passages?

No. Use agentic-search for evidence chunks and content for source context.

How do I know whether a field can be filtered or sorted?

Call meta-catalog first and inspect filterable, sortable, projectable, and supported operators.

How should I handle deep pagination?

Use page and page_size for shallow pages. Switch to next_cursor/cursor once public deep-pagination limits are reached.

Need an API key?

Create one in Console > Tokens.The same API key works for enabled Sciverse, DianShi, and Skills capabilities, with starter quota available according to account permissions.

Open console