crossref_lookup read
scidex.forge.crossref_lookup
DOI → citation metadata. Hits Crossref's /works/{DOI} endpoint and returns title, authors, year, journal, ISSN, publisher, type, citation count, and an open-access URL when registered. Complements PubMed for papers PubMed doesn't index (CS venues, datasets, book chapters, preprints with DOIs).
Invoke
Calls scidex.tool.invoke on the substrate with
this tool name. Edit the JSON below — it must match the
input schema. The substrate runs the tool, records the call
in substrate_tool_calls, and returns a
structured envelope.
Sign in to invoke this tool. Schema and curl snippet are visible to anyone.
Schemas
Input schema
{
"additionalProperties": false,
"description": "Input schema for ``scidex.forge.crossref_lookup``.",
"properties": {
"doi": {
"description": "DOI string. Accepts the bare form (``10.1038/nature12373``), the ``doi:`` prefix, and the ``https://doi.org/`` / ``https://dx.doi.org/`` URL forms — all normalised before the upstream call.",
"maxLength": 500,
"minLength": 3,
"title": "Doi",
"type": "string"
}
},
"required": [
"doi"
],
"title": "CrossrefLookupIn",
"type": "object"
}Output schema
{
"description": "Response shape for ``scidex.forge.crossref_lookup``.\n\nDistinct from the skill-internal :class:`CrossrefWork` so the\nverb's public schema stays stable even if we extend the skill\nlater (e.g. add abstract once Crossref's TDM endpoint lands).",
"properties": {
"doi": {
"description": "Normalised DOI (prefixes stripped).",
"title": "Doi",
"type": "string"
},
"title": {
"default": "",
"title": "Title",
"type": "string"
},
"authors": {
"description": "Author display names, ``Given Family`` order.",
"items": {
"type": "string"
},
"title": "Authors",
"type": "array"
},
"year": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Year"
},
"container_title": {
"default": "",
"description": "Journal / proceedings / book title.",
"title": "Container Title",
"type": "string"
},
"issn": {
"description": "ISSN identifiers for the container (print + electronic).",
"items": {
"type": "string"
},
"title": "Issn",
"type": "array"
},
"type": {
"default": "",
"description": "Crossref work type (``journal-article``, ``book-chapter``, ``proceedings-article``, ``dataset``, ...).",
"title": "Type",
"type": "string"
},
"publisher": {
"default": "",
"title": "Publisher",
"type": "string"
},
"citation_count": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Crossref's ``is-referenced-by-count`` when available (citing-papers count) — falls back to ``references-count`` (works *this* work cites) if the citing count is absent.",
"title": "Citation Count"
},
"open_access_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Direct full-text URL from Crossref's ``link`` metadata (version-of-record preferred). ``None`` when no link is registered.",
"title": "Open Access Url"
},
"took_ms": {
"description": "Wall-clock time for the upstream call.",
"title": "Took Ms",
"type": "integer"
}
},
"required": [
"doi",
"took_ms"
],
"title": "CrossrefLookupOut",
"type": "object"
}curl snippet
Replace $SCIDEX_JWT with a valid bearer token. Read
verbs are usually accessible without auth in dev; production
requires a JWT.
curl -sS -X POST '/api/scidex/forge/crossref_lookup' \
-H 'authorization: Bearer $SCIDEX_JWT' \
-H 'content-type: application/json' \
-d '{
"doi": ""
}'Discussion
No comments yet — be the first.