POST /api/crossref/works/search
Price: 1 credit
Search scholarly works with rich query fields and filters
Search Crossref scholarly works. Combine a free-text query with field-scoped queries (bibliographic, author, title, container-title, editor, publisher-name, affiliation) and filters (work type, ISSN, ISBN, ORCID, member, prefix, funder, award, subject category, publication/created/deposit/index date ranges, and presence flags for abstract, ORCID, funder, references, license, full text). Sort by relevance, score, publication/index/created/deposit date, or citation/reference counts. Each result is a full work with title, authors, journal, dates, counts, funders, licenses and links.
access-token string requiredtimeout integer — Max scrapping execution timeout (in seconds) (default: 300; min: 20; max: 1500)query string nullable — Free-text search across all fieldsbibliographic string nullable — Search bibliographic metadata (title, author, year, journal combined)author string nullable — Search contributor (author/editor) nameswork_title string nullable — Search work titlecontainer_title string nullable — Search the containing publication title (journal or book)editor string nullable — Search editor namespublisher_name string nullable — Search publisher nameaffiliation string nullable — Search author affiliationtype string nullable — Filter by work type (one of: "book-section", "monograph", "report-component", "report", "peer-review", "book-track", "journal-article", "book-part", "other", "book", "journal-volume", "book-set", "reference-entry", "proceedings-article", "journal", "component", "book-chapter", "proceedings-series", "report-series", "proceedings", "database", "standard", "reference-book", "posted-content", "journal-issue", "dissertation", "grant", "dataset", "book-series", "edited-book")issn string nullable — Filter by journal ISSNisbn string nullable — Filter by ISBNdoi string nullable — Filter by exact DOIorcid string nullable — Filter by author ORCIDmember string nullable — Filter by Crossref member idprefix string nullable — Filter by DOI prefixfunder string nullable — Filter by funder DOIaward_funder string nullable — Filter by award funder DOIaward_number string nullable — Filter by award/grant numbercategory_name string nullable — Filter by subject category namefrom_pub_date string nullable — Earliest publication date (YYYY, YYYY-MM or YYYY-MM-DD)until_pub_date string nullable — Latest publication date (YYYY, YYYY-MM or YYYY-MM-DD)from_created_date string nullable — Earliest Crossref-record creation dateuntil_created_date string nullable — Latest Crossref-record creation datefrom_online_pub_date string nullable — Earliest online publication dateuntil_online_pub_date string nullable — Latest online publication datefrom_deposit_date string nullable — Earliest metadata deposit dateuntil_deposit_date string nullable — Latest metadata deposit datefrom_index_date string nullable — Earliest Crossref index dateuntil_index_date string nullable — Latest Crossref index datehas_abstract boolean nullable — Only works that include an abstracthas_orcid boolean nullable — Only works with at least one author ORCIDhas_funder boolean nullable — Only works with funder informationhas_references boolean nullable — Only works with a deposited reference listhas_license boolean nullable — Only works with license informationhas_full_text boolean nullable — Only works with full-text linksis_update boolean nullable — Only works that are updates (corrections, retractions)sort string nullable — Sort field (one of: "relevance", "score", "published", "indexed", "created", "deposited", "is-referenced-by-count", "references-count")order string nullable — Sort order (one of: "asc", "desc")count integer required — Number of works to return (min: 1)@type string (default: "CrossrefWork")doi string requiredsubtitle string nullableshort_title string nullableoriginal_title string nullablecontainer_title array (default: [])short_container_title array (default: [])type string nullablepublisher string nullablepublisher_location string nullablemember_id string nullableprefix string nullablelanguage string nullablesource string nullableabstract string nullableissn array (default: [])isbn array (default: [])volume string nullableissue string nullablepage string nullablearticle_number string nullableissued_date string nullablepublished_date string nullablepublished_print_date string nullablepublished_online_date string nullablecreated_at string nullabledeposited_at string nullableindexed_at string nullablescore number nullablereference_count integer (default: 0)is_referenced_by_count integer (default: 0)subjects array (default: [])alternative_ids array (default: [])web_url string nullableresource_url string nullableevent object nullable@type string (default: "CrossrefEvent")name string nullablelocation string nullableacronym string nullablesponsors array (default: [])start_date string nullableend_date string nullableauthors array (default: [])@type string (default: "CrossrefAuthor")given string nullablefamily string nullablename string nullablesequence string nullableorcid string nullableis_authenticated_orcid boolean (default: false)affiliations array (default: [])@type string (default: "CrossrefAffiliation")name string requiredfunders array (default: [])@type string (default: "CrossrefFunder")name string requireddoi string nullableawards array (default: [])licenses array (default: [])@type string (default: "CrossrefLicense")url string requiredcontent_version string nullablestart_date string nullabledelay_in_days integer nullablelinks array (default: [])@type string (default: "CrossrefLink")url string requiredcontent_type string nullablecontent_version string nullableintended_application string nullablereferences array (default: [])@type string (default: "CrossrefReference")key string nullabledoi string nullablearticle_title string nullablejournal_title string nullableauthor string nullableyear string nullablevolume string nullablefirst_page string nullableissn string nullableisbn string nullableunstructured string nullable422 — The request body did not validate Check the fields against this schema. A URN with the wrong prefix is the most common cause.408 — The request ran past its time limit Raise `timeout` in the request body, up to the maximum this endpoint documents. Lowering `count` or turning off the `with_*` flags also helps, because less work finishes sooner.412 — The entity was not found, or a precondition failed Retrying will not help: either the entity does not exist, or the input points at a different one.429 — Too many requests: a rate limit or a usage window is exhausted When the response carries an X-Retry-After header, wait that many seconds and retry: the same number is in the body as `detail.retry_after`, and the limit clears once that window passes. The message in the body names the limit that was hit.500 — Something broke on our side Retrying will not help. If it keeps happening, send us the X-Request-ID from the response headers.529 — Rate limit reached, or the endpoint is overloaded Wait at least 30 seconds, then retry.X-Error — Error message text (present only on error)X-Request-ID — Unique request identifierX-Execution-Time — Execution time in secondsX-Result-Count — How many records the body carries. 0 means an empty result, which is a normal answer and not by itself an error. A non-zero count can come back together with X-Error when the failure happened partway through — read this header and X-Error independently.X-Total-Available-Results — How many records exist for this query, when the endpoint can say. On a `dry_run` request this is the answer and the body is empty. It saturates: the endpoint's documented maximum means 'at least that many', any smaller number is exact.X-Warning — Present when the request body carried keys this endpoint does not document. They were ignored, so any filter you meant to apply through them did not apply. Check the spelling against this schema and retry.X-Retry-After — Seconds to wait before retrying. Present only on 429.