Skip to content
ImpactMojo ImpactMojo
Home Catalog Docs

Partner API

A free, read-only REST API for organizations to integrate ImpactMojo's open development-education catalog: courses, games, Free Studio tools, and interactive reading companions.

No API key required Read-only (GET) JSON CORS enabled CC BY-NC-ND 4.0

Base URL

https://www.impactmojo.in/api/v1

No key, read-only, please cache. Every endpoint is a public GET that returns JSON with Cache-Control: public, max-age=300 and permissive CORS (Access-Control-Allow-Origin: *). Please respect the cache headers and keep request rates modest (roughly ≤60 requests/minute). Contact hello@impactmojo.in for higher-volume access.
License & attribution. All content is licensed CC BY-NC-ND 4.0. You may link to and surface ImpactMojo content provided you give attribution to ImpactMojo (impactmojo.in). Non-commercial use only; no derivatives of the content itself. This API exposes catalog metadata (titles, descriptions, URLs, tags) to help you link learners to the original material.

Endpoints

GET/api/v1

API index: name, version, the list of available endpoints, the license/attribution note, and the rate-limit note.

Example response
{
  "name": "ImpactMojo Partner API",
  "version": "1.0",
  "base_url": "https://www.impactmojo.in/api/v1",
  "endpoints": [
    { "method": "GET", "path": "/api/v1", "description": "This index." },
    { "method": "GET", "path": "/api/v1/catalog", "description": "Full content catalog..." },
    { "method": "GET", "path": "/api/v1/courses", "description": "Courses only..." },
    { "method": "GET", "path": "/api/v1/courses/{slug}", "description": "Single course detail..." },
    { "method": "GET", "path": "/api/v1/stats", "description": "Content counts by type." }
  ],
  "license": "CC BY-NC-ND 4.0 — attribution to ImpactMojo (impactmojo.in) required; ...",
  "rate_limit": "No API key required. Read-only. Please cache responses ...",
  "contact": "hello@impactmojo.in"
}
GET/api/v1/catalog

The full content catalog (courses, games, Free Studio tools, and reading companions) derived from the site's search index.

Query paramDescription
typeFilter by content type. One of course, game, lab, book, handout. Omit for all types.
qCase-insensitive substring match against title and description.
limitMaximum items to return. Default 100, maximum 500.
Example request
GET https://www.impactmojo.in/api/v1/catalog?type=game&q=auction&limit=50
Example response
{
  "count": 1,
  "total": 1,
  "limit": 50,
  "filters": { "type": "game", "q": "auction" },
  "items": [
    {
      "id": "GAME001",
      "title": "Bidding Wars",
      "description": "Strategic auction and bidding simulation exploring market competition",
      "type": "game",
      "category": "Economics",
      "url": "https://www.impactmojo.in/Games/bidding-wars-game.html",
      "tags": ["auction", "market", "competition", "bidding"]
    }
  ],
  "license": "CC BY-NC-ND 4.0 — attribution to ImpactMojo (impactmojo.in) required; ...",
  "attribution": "Content © ImpactMojo, CC BY-NC-ND 4.0 — https://impactmojo.in"
}
GET/api/v1/courses

Courses only, both 101 foundational decks and flagship courses, enriched with slide counts, level, format, license, sections, and feature flags where available.

Example response
{
  "count": 106,
  "courses": [
    {
      "slug": "dev-economics",
      "id": "101-dev-economics",
      "title": "Development Economics 101",
      "description": "100-slide foundational deck covering poverty, growth, ...",
      "url": "https://www.impactmojo.in/101-courses/dev-economics.html",
      "track": "101 Foundational Courses",
      "level": "Foundational",
      "format": "Native HTML",
      "tier": "101",
      "slides": 100,
      "license": "CC BY-NC-ND 4.0",
      "features": { "quiz": false, "glossary": false, "selfPaced": true, "free": true },
      "sections": ["What Development Economics Is", "Poverty & Growth", "..."],
      "tags": ["development economics", "poverty", "growth", "101"]
    }
  ],
  "license": "CC BY-NC-ND 4.0 — attribution to ImpactMojo (impactmojo.in) required; ..."
}
GET/api/v1/courses/{slug}

A single course's detail, looked up by its slug (the value returned in the courses list, e.g. mel, gandhi, dev-economics). Returns 404 with a JSON error body if no course matches.

Example request
GET https://www.impactmojo.in/api/v1/courses/gandhi
Example response
{
  "course": {
    "slug": "gandhi",
    "id": "gandhi",
    "title": "Gandhi's Political Thought: Philosophy for Praxis",
    "description": "Comprehensive exploration of Gandhian political philosophy ...",
    "url": "https://www.impactmojo.in/courses/gandhi/",
    "track": "Philosophy, Law & Governance",
    "level": "Advanced",
    "format": "Flagship course",
    "tier": "flagship",
    "slides": null,
    "license": "CC BY-NC-ND 4.0",
    "tags": ["philosophy", "politics", "gandhi", "swaraj"]
  },
  "license": "CC BY-NC-ND 4.0 — attribution to ImpactMojo (impactmojo.in) required; ..."
}
404 response
{ "error": "No course found with slug \"does-not-exist\"." }
GET/api/v1/stats

Aggregate content counts by type, plus a flagship / 101-foundational course breakdown.

Example response
{
  "total_items": 709,
  "by_type": {
    "course": 106,
    "game": 17,
    "lab": 13,
    "book-summary": 51,
    "bct": 203,
    "dataverse": 215
  },
  "courses": { "total": 106, "flagship": 13, "foundational_101": 93 },
  "license": "CC BY-NC-ND 4.0 — attribution to ImpactMojo (impactmojo.in) required; ..."
}

Errors

Errors return a JSON body of the form { "error": "message" } with an appropriate HTTP status: 400 (invalid query parameter), 404 (unknown endpoint or course slug), 405 (non-GET method), and 502 (upstream catalog data temporarily unavailable). An OPTIONS preflight returns 204 with CORS headers.

Need more?

This API is intentionally simple and read-only. If your organization needs higher request volumes, bulk exports, or a deeper integration, write to hello@impactmojo.in and we'll help.