Wardn Hub
MCP ServersSkillsCategoriesAPI docsSubmit server
Submit server
Wardn HubTrusted MCP server directory.

Registry

  • MCP Servers
  • Skills
  • Categories

Resources

  • API docs
  • Score method

Contribute

  • Submit server
  • Advertise
© 2026 Wardn Hub
Wardn Hub
MCP ServersSkillsCategoriesAPI docsSubmit server
Submit server
skills/brycewang-stanford/Auto-Empirical-Research-Skills/43-wentorai-research-plugins-skills-literature-metadata-crossref-event-data-api

43-wentorai-research-plugins-skills-literature-metadata-crossref-event-data-api

1
brycewang-stanford/Auto-Empirical-Research-Skills·Research·Audit pending·Snapshot 708532a5188e

Summary

This source did not publish a separate summary. Review SKILL.md before using the skill.

SKILL.md

Crossref Event Data API

Overview

Crossref Event Data tracks where scholarly publications are discussed, shared, and referenced across the open web — Wikipedia citations, Twitter/X mentions, Reddit posts, blog references, policy document citations, and more. Unlike traditional citation counts, Event Data captures real-time online attention to research. Free, no authentication required.

API Endpoints

Base URL

https://api.eventdata.crossref.org/v1

Query Events

# Get events for a specific DOI
curl "https://api.eventdata.crossref.org/v1/events?obj-id=10.1038/nature14539&rows=20"

# Filter by source
curl "https://api.eventdata.crossref.org/v1/events?\
obj-id=10.1038/nature14539&source=wikipedia"

# Filter by date range
curl "https://api.eventdata.crossref.org/v1/events?\
from-occurred-date=2024-01-01&until-occurred-date=2024-12-31&source=twitter&rows=100"

# Get events about a DOI prefix (publisher level)
curl "https://api.eventdata.crossref.org/v1/events?obj-id.prefix=10.1371&rows=50"

# Events from a specific source
curl "https://api.eventdata.crossref.org/v1/events?source=reddit&rows=50"

Event Sources

SourceDescriptionWhat it tracks
wikipediaWikipedia article referencesDOIs cited in Wikipedia
twitterTwitter/X postsTweets linking to DOIs
redditReddit posts/commentsReddit links to papers
hypothesisHypothesis annotationsWeb annotations on papers
newsfeedNews articlesMedia coverage of research
stackexchange
Stack Exchange Q&A
Technical discussions
webGeneral web pagesBlog posts, reports
wordpressdotcomWordPress blogsBlog references
dataciteDataCite DOIsDataset-paper linkages
crossrefCrossref metadataReference list updates

Query Parameters

ParameterDescriptionExample
obj-idDOI of the paperobj-id=10.1038/nature14539
obj-id.prefixDOI prefix (publisher)obj-id.prefix=10.1371
sourceEvent sourcesource=wikipedia
from-occurred-dateEvents from date2024-01-01
until-occurred-dateEvents until date2024-12-31
rowsResults per page (max 10000)rows=100
cursorPagination cursorReturned in response

Response Structure

{
  "status": "ok",
  "message-type": "event-list",
  "message": {
    "total-results": 245,
    "events": [
      {
        "obj_id": "https://doi.org/10.1038/nature14539",
        "source_id": "wikipedia",
        "subj_id": "https://en.wikipedia.org/wiki/Deep_learning",
        "relation_type_id": "references",
        "occurred_at": "2024-03-15T10:30:00Z",
        "subj": {
          "title": "Deep learning - Wikipedia",
          "url": "https://en.wikipedia.org/wiki/Deep_learning"
        }
      }
    ],
    "next-cursor": "abc123..."
  }
}

Python Usage

import requests
from collections import Counter

BASE_URL = "https://api.eventdata.crossref.org/v1"


def get_events(doi: str, source: str = None,
               rows: int = 100) -> list:
    """Get Event Data events for a DOI."""
    params = {"obj-id": doi, "rows": rows}
    if source:
        params["source"] = source

    resp = requests.get(f"{BASE_URL}/events", params=params)
    resp.raise_for_status()
    data = resp.json()

    events = []
    for ev in data.get("message", {}).get("events", []):
        events.append({
            "source": ev.get("source_id"),
            "subject_url": ev.get("subj_id"),
            "subject_title": ev.get("subj", {}).get("title", ""),
            "relation": ev.get("relation_type_id"),
            "date": ev.get("occurred_at", "")[:10],
        })
    return events


def get_attention_summary(doi: str) -> dict:
    """Summarize online attention for a paper."""
    events = get_events(doi, rows=10000)
    source_counts = Counter(e["source"] for e in events)
    return {
        "total_events": len(events),
        "by_source": dict(source_counts),
        "first_event": min((e["date"] for e in events), default=None),
        "latest_event": max((e["date"] for e in events), default=None),
    }


def find_wikipedia_citations(doi: str) -> list:
    """Find Wikipedia articles that cite a paper."""
    events = get_events(doi, source="wikipedia")
    return [
        {"wikipedia_page": e["subject_title"],
         "url": e["subject_url"],
         "date": e["date"]}
        for e in events
        if e["relation"] == "references"
    ]


# Example: analyze online attention for a paper
doi = "10.1038/nature14539"
summary = get_attention_summary(doi)
print(f"Total events: {summary['total_events']}")
for source, count in sorted(summary["by_source"].items(),
                             key=lambda x: -x[1]):
    print(f"  {source}: {count}")

# Example: find Wikipedia coverage
wiki_refs = find_wikipedia_citations(doi)
for ref in wiki_refs:
    print(f"Cited in: {ref['wikipedia_page']} ({ref['date']})")

Use Cases

  1. Altmetrics research: Measure non-traditional scholarly impact
  2. Public engagement: Track how research reaches public audiences
  3. Policy monitoring: Discover when research informs policy documents
  4. Social media analytics: Track paper sharing on Twitter, Reddit
  5. Wikipedia coverage: Find which papers are cited in encyclopedias

References

  • Crossref Event Data
  • Event Data API Guide
  • Event Data User Guide

Related skills

r-reproducibility-guideAnswering Research QuestionsBuilding Paper Screening RubricsChina-CF-StudyCleaning Up Research Sessions