Read from the package's own PHP files at the commit 66e2f44b5ee9: its namespaces, classes, interfaces and enums, their public constants, properties and methods with their PHPDoc, and the options its factories take. Nothing of it is run.
CrossrefSourceclassCrossref (api.crossref.org, no key): the reference metadata of any work with a Crossref DOI - title, authors and their ORCIDs, journal or book, volume, pages, publisher, ISBNs, licence, the citation count Crossref knows - the works an ORCID was deposited with, and a bibliographic search.
6 methods · 3 constants
CrossrefSourceFactoryclassCrossref: reference metadata by DOI, works by ORCID, bibliographic search - no key.
1 option
Omnischolar\Crossref
CrossrefSource class
final class CrossrefSource extends HttpSource CrossrefSource.php:29
Crossref (api.crossref.org, no key): the reference metadata of any work with a Crossref DOI - title, authors and their ORCIDs, journal or book, volume, pages, publisher, ISBNs, licence, the citation count Crossref knows - the works an ORCID was deposited with, and a bibliographic search.
Crossref has no author profiles. The mailto puts the calls in its "polite" pool (3 a second, as of 2026); without it, the public pool.
const BASE_URI = 'https://api.crossref.org/'const MAX_ROWS = 1000The most rows Crossref serves per page.
const MAX_OFFSET = 10000The deepest offset Crossref pages to (its cursors do not sort by date).
CrossrefSource::__construct()
public function __construct(HttpClientInterface $http, readonly ?string $mailto = null, string $baseUri = self::BASE_URI, array $headers = [], float $throttle = 0.0)CrossrefSource::getName()
public function getName(): stringCrossrefSource::capabilities()
public function capabilities(): arrayCrossrefSource::works()
public function works(Identifier|string $author, ?Query $query = null): PageThe works deposited with an ORCID; or, by a name, those whose authors include that name (Crossref's author query is fuzzy: its answers are kept only when one of their authors has the family name and the first initial asked, and they come by relevance).
CrossrefSource::work()
public function work(Identifier|string $id): ?WorkCrossrefSource::search()
public function search(Query $query): PageCrossrefSourceFactory class
final class CrossrefSourceFactory extends SourceFactory CrossrefSourceFactory.php:18
Crossref: reference metadata by DOI, works by ORCID, bibliographic search - no key.
options: mailto: 'support@glitchr.io' # sent with every call and in the User-Agent: Crossref's polite pool base_uri: 'https://api.crossref.org/' throttle: 0 # seconds between two calls
Options
| Option | Default | |
|---|---|---|
base_uri | CrossrefSource::BASE_URI |