share-research-api

Discover open access research outputs via the SHARE notification API

191 stars

Best use case

share-research-api is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Discover open access research outputs via the SHARE notification API

Teams using share-research-api should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/share-research-api/SKILL.md --create-dirs "https://raw.githubusercontent.com/wentorai/research-plugins/main/skills/literature/search/share-research-api/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/share-research-api/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How share-research-api Compares

Feature / Agentshare-research-apiStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Discover open access research outputs via the SHARE notification API

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# SHARE Research API

## Overview

SHARE (SHared Access Research Ecosystem) aggregates metadata from 200+ research repositories, preprint servers, and publishers into a unified search API. Operated by the Center for Open Science, it tracks research outputs as they move through the scholarly communication cycle — from preprint to publication. Free, no authentication for search.

## API Endpoints

### Base URL

```
https://share.osf.io/api/v2
```

### Search

```bash
# Text search across all sources
curl "https://share.osf.io/api/v2/search/creativeworks/?q=climate+change&page[size]=20"

# Filter by type
curl "https://share.osf.io/api/v2/search/creativeworks/?q=neural+networks&filter[type]=preprint"

# Filter by source
curl "https://share.osf.io/api/v2/search/creativeworks/?q=genomics&filter[sources]=PubMed+Central"

# Filter by date
curl "https://share.osf.io/api/v2/search/creativeworks/?q=COVID-19&filter[date][gte]=2024-01-01"

# Filter by tag/subject
curl "https://share.osf.io/api/v2/search/creativeworks/?q=machine+learning&filter[tags]=deep+learning"
```

### Query Parameters

| Parameter | Description | Example |
|-----------|-------------|---------|
| `q` | Search query | `q=CRISPR` |
| `filter[type]` | Output type | `preprint`, `article`, `dataset`, `thesis` |
| `filter[sources]` | Source repository | `PubMed Central`, `arXiv`, `Zenodo` |
| `filter[date][gte]` | From date | `2024-01-01` |
| `filter[date][lte]` | Until date | `2026-12-31` |
| `filter[tags]` | Tag filter | `open+data` |
| `page[size]` | Results per page | `page[size]=50` |
| `sort` | Sort order | `-date_updated` |

### Available Sources (200+)

| Source | Type |
|--------|------|
| arXiv | Preprints |
| PubMed Central | Biomedical articles |
| Zenodo | Multi-discipline repository |
| Figshare | Data/figures |
| SSRN | Social science preprints |
| DataCite | Research data |
| Institutional repositories | Various |

## Python Usage

```python
import requests

BASE_URL = "https://share.osf.io/api/v2"


def search_share(query: str, output_type: str = None,
                 source: str = None,
                 from_date: str = None,
                 page_size: int = 20) -> list:
    """Search SHARE for research outputs."""
    params = {"q": query, "page[size]": page_size}
    if output_type:
        params["filter[type]"] = output_type
    if source:
        params["filter[sources]"] = source
    if from_date:
        params["filter[date][gte]"] = from_date

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

    results = []
    for item in data.get("data", []):
        attrs = item.get("attributes", {})
        results.append({
            "title": attrs.get("title"),
            "description": (attrs.get("description") or "")[:300],
            "type": attrs.get("type"),
            "date": attrs.get("date_updated", "")[:10],
            "sources": attrs.get("sources", []),
            "tags": attrs.get("tags", []),
            "identifiers": attrs.get("identifiers", []),
        })
    return results


# Example: find recent preprints on a topic
preprints = search_share(
    "transformer architecture",
    output_type="preprint",
    from_date="2024-01-01",
)
for p in preprints[:5]:
    print(f"[{p['date']}] {p['title']}")
    print(f"  Type: {p['type']} | Sources: {', '.join(p['sources'][:3])}")
```

## References

- [SHARE](https://share.osf.io/)
- [SHARE API Documentation](https://share.osf.io/api/v2/)
- [Center for Open Science](https://cos.io/)