Skip to main content
REST API v1

Polystacks Public API

Query quantum computing projects, packages, benchmark showcases, and ecosystem organizations directly from your applications, research pipelines, and scripts.

Base URL

https://polystacks.dev/api/v1

Public Rate Limit

60 requests / minute

IP-based, no auth required

Higher Limits

600 requests / minute

Via x-api-key header

curl -s "https://polystacks.dev/api/v1/projects?limit=5&framework=qiskit"

Endpoints Reference

GET/api/v1
Test Endpoint

Returns API health status, version metadata, and a catalog of all available endpoint URLs.

Sample Response

{
  "name": "Polystacks Public API",
  "version": "1.0.0",
  "status": "online",
  "documentation": "https://polystacks.dev/api",
  "endpoints": {
    "projects": "https://polystacks.dev/api/v1/projects",
    "project_by_id": "https://polystacks.dev/api/v1/projects/{id_or_slug}",
    "organizations": "https://polystacks.dev/api/v1/organizations",
    "organization_by_id": "https://polystacks.dev/api/v1/organizations/{id}",
    "showcases": "https://polystacks.dev/api/v1/showcases",
    "showcase_by_slug": "https://polystacks.dev/api/v1/showcases/{slug}"
  },
  "rate_limits": {
    "public": "60 requests / minute",
    "authenticated": "600 requests / minute (via x-api-key header)"
  }
}
GET/api/v1/projects
Test Endpoint

Fetch paginated lists of quantum open source projects with filtering, sorting, and full-text keyword search.

Parameters

ParameterTypeDescription
pageintegerPage number (1-indexed).
limitintegerResults per page (max 100).
frameworkstringFilter by framework (e.g. qiskit, cirq, pennylane).
task_typestringFilter by task type (e.g. optimization, simulation, chemistry).
typestringFilter by category (framework, simulator, algorithm, compiler-tool).
authorstringFilter by repository owner / author.
searchstringKeyword search across name, description, tags, and authors.
sortstringSort field: stars, forks, name, created_at, last_updated.
orderstringSort direction: desc or asc.

Sample Response

{
  "data": [
    {
      "id": "qiskit-terra",
      "slug": "qiskit-qiskit-terra",
      "name": "Qiskit Terra",
      "author": "Qiskit",
      "description": "An open-source SDK for working with quantum computers...",
      "githubUrl": "https://github.com/Qiskit/qiskit",
      "metadata": {
        "framework": "qiskit",
        "taskType": "simulation",
        "tags": ["sdk", "quantum", "circuits"],
        "license": "Apache-2.0"
      },
      "stats": {
        "stars": 4500,
        "forks": 1200
      }
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 2,
    "total": 164,
    "totalPages": 82,
    "hasNext": true,
    "hasPrev": false
  }
}
GET/api/v1/projects/{id}
Test Endpoint

Fetch detailed data for a specific project by ID or slug, including full README and research papers.

Parameters

ParameterTypeDescription
id*string (path)Project ID or URL slug (e.g. quantumlib-cirq).

Sample Response

{
  "data": {
    "id": "quantumlib-cirq",
    "slug": "quantumlib-cirq",
    "name": "Cirq",
    "author": "Google Quantum AI",
    "description": "Python library for writing, manipulating, and optimizing quantum circuits...",
    "githubUrl": "https://github.com/quantumlib/Cirq",
    "metadata": {
      "framework": "cirq",
      "taskType": "simulation"
    },
    "papers": [
      {
        "title": "Supplementary information for Quantum supremacy using a programmable superconducting processor",
        "arxivId": "1910.11333"
      }
    ]
  }
}
GET/api/v1/organizations
Test Endpoint

Fetch list of quantum research institutes, tech companies, and open source communities with member project counts.

Parameters

ParameterTypeDescription
pageintegerPage number.
limitintegerResults per page (max 100).

Sample Response

{
  "data": [
    {
      "id": "ibm-quantum",
      "name": "IBM Quantum",
      "displayName": "IBM Quantum",
      "description": "Leading quantum computing hardware and software development.",
      "githubUrl": "https://github.com/qiskit",
      "stats": {
        "repositories": 12,
        "members": 150
      },
      "repositories": ["qiskit-terra", "qiskit-aer", "qiskit-nature"]
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 2,
    "total": 10,
    "totalPages": 5,
    "hasNext": true,
    "hasPrev": false
  }
}
GET/api/v1/organizations/{id}
Test Endpoint

Fetch detailed profile for a specific organization by ID.

Parameters

ParameterTypeDescription
id*string (path)Organization identifier (e.g. ibm-quantum, google-quantumai).

Sample Response

{
  "data": {
    "id": "ibm-quantum",
    "name": "IBM Quantum",
    "displayName": "IBM Quantum",
    "description": "Leading quantum computing hardware and software development.",
    "website": "https://quantum.ibm.com",
    "githubUrl": "https://github.com/qiskit"
  }
}
GET/api/v1/showcases
Test Endpoint

Fetch published curated showcases, benchmarks, and reproducibility deep dives.

Parameters

ParameterTypeDescription
pageintegerPage number.
limitintegerResults per page (max 100).

Sample Response

{
  "data": [
    {
      "id": "sc-1",
      "slug": "cirq-googles-quantum-framework",
      "title": "Cirq: Google’s Framework for NISQ Algorithms",
      "subtitle": "An in-depth look at Cirq architecture and benchmarks.",
      "publishDate": "2026-03-01",
      "author": "Polystacks Team"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 2,
    "total": 4,
    "totalPages": 2,
    "hasNext": true,
    "hasPrev": false
  }
}
GET/api/v1/showcases/{slug}
Test Endpoint

Fetch full content, code snippets, and benchmark data for a specific showcase.

Parameters

ParameterTypeDescription
slug*string (path)Showcase URL slug (e.g. cirq-googles-quantum-framework).

Sample Response

{
  "data": {
    "id": "sc-1",
    "slug": "cirq-googles-quantum-framework",
    "title": "Cirq: Google’s Framework for NISQ Algorithms",
    "subtitle": "An in-depth look at Cirq architecture and benchmarks.",
    "publishDate": "2026-03-01",
    "author": "Polystacks Team",
    "content": {
      "overview": "Cirq is an open-source Python library for writing and executing quantum circuits..."
    }
  }
}

Response Headers & Error Handling

Every API response returns standard rate-limiting headers so your application can throttle dynamically:

X-RateLimit-Limit: Maximum allowed requests per 60-second window (60 or 600)
X-RateLimit-Remaining: Number of remaining requests in current window
X-RateLimit-Reset: Seconds remaining until the quota resets

Status Codes

  • 200 OK — Successful query.
  • 400 Bad Request — Invalid parameter format.
  • 401 Unauthorized — Invalid API key provided in header.
  • 404 Not Found — Requested resource not found.
  • 429 Too Many Requests — Exceeded rate limit window.
Have questions or need higher limits for academic research? Reach out on our Contact page or contribute on GitHub.