Forge Tools crossref_lookup

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).

HTTP: POST /api/scidex/forge/crossref_lookup

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

Posting anonymously. Sign in for attribution.

No comments yet — be the first.