{
  "version": "2",
  "generatedAt": "2026-11-03T21:36:30.074Z",
  "listing": {
    "slug": "cgrates--cgrates",
    "name": "CGRateS",
    "tagline": "Real-time charging and rating engine for telecom and ISPs, driven entirely by JSON-RPC APIs.",
    "shortTagline": "Telecom charging and rating engine",
    "description": "CGRateS rates sessions and events in real time, keeps account balances and bundles, logs CDRs, and runs routing, thresholds and stats as micro-services. Everything is configured in cgrates.json and tariff-plan CSVs and driven through its RPC APIs, which is why the API is the product. Telecom-specific, long-lived, AGPL.",
    "capabilities": [
      "adaptable",
      "operable"
    ],
    "vertical": "invoicing-finance",
    "shape": "business-app",
    "formFactor": "api",
    "executionModel": "deterministic",
    "provenance": "human-written",
    "codeStack": {
      "languages": [
        "Go"
      ],
      "frameworks": [],
      "packageManager": "go modules",
      "database": [
        "Redis",
        "MongoDB",
        "MySQL",
        "PostgreSQL"
      ],
      "hostingTarget": [
        "Debian packages",
        "Docker",
        "bare metal"
      ]
    },
    "modelStack": null,
    "repos": [
      {
        "url": "https://github.com/cgrates/cgrates",
        "owner": "cgrates",
        "name": "cgrates",
        "license": "AGPL-3.0",
        "stars": 512,
        "lastCommit": "2026-08-28"
      }
    ],
    "interface": {
      "kind": "api",
      "url": "https://cgrates.readthedocs.io/en/latest/",
      "official": true,
      "hosted": "local"
    },
    "operability": "official",
    "recommendedWrapper": null,
    "reach": [
      {
        "job": "Rate calls and events (RALs)",
        "reachable": true,
        "evidence": "APIerS exposes rating profiles and rates; docs 'Rating engine'"
      },
      {
        "job": "Real-time session charging with reservation",
        "reachable": true,
        "evidence": "SessionS service over JSON-RPC (docs subsystems list)"
      },
      {
        "job": "Account balances and bundles",
        "reachable": true,
        "evidence": "APIerS account and balance calls; README 'Account Balances Management with bundle support'"
      },
      {
        "job": "CDR logging and export",
        "reachable": true,
        "evidence": "CDRs service; README 'CDR logging with support for Interim Records'"
      },
      {
        "job": "Least-cost routing",
        "reachable": true,
        "evidence": "RouteS service; README 'QoS LCR and LCR over Bundles'"
      },
      {
        "job": "Fraud thresholds and automatic mitigation",
        "reachable": true,
        "evidence": "ThresholdS service; README 'Fraud detection with automatic mitigation'"
      },
      {
        "job": "Statistics and pattern monitoring",
        "reachable": true,
        "evidence": "StatS, TrendS, RankingS services"
      },
      {
        "job": "Load tariff plans",
        "reachable": true,
        "evidence": "cgr-loader CLI and APIerS load calls documented in tutorials"
      },
      {
        "job": "Switch integration (FreeSWITCH, Kamailio, Asterisk)",
        "reachable": true,
        "evidence": "agents in docs tutorial; configured in cgrates.json"
      }
    ],
    "editions": [
      {
        "name": "Free",
        "price": null,
        "open": true,
        "distributions": [
          {
            "kind": "source",
            "url": "https://github.com/cgrates/cgrates"
          },
          {
            "kind": "installable",
            "url": "https://cgrates.readthedocs.io/en/latest/installation.html",
            "command": "apt-get install cgrates"
          }
        ]
      }
    ],
    "skills": {
      "kind": "none",
      "paths": [],
      "install": null,
      "note": "No SKILL.md, Claude Code plugin, or skills install target in the repo."
    },
    "customization": {
      "summary": "Everything is a JSON config: enable subsystems, storage backends and switch agents in /etc/cgrates/cgrates.json, then load tariff plans (rates, destinations, accounts) from CSVs with cgr-loader. No code edits for a working deployment; expect to learn telecom charging concepts.",
      "envVars": [],
      "configFiles": [
        "/etc/cgrates/cgrates.json",
        "data/tariffplans/*.csv"
      ],
      "promptFiles": [],
      "effort": "config-only",
      "editCount": 2
    },
    "useWhen": [
      "I run a VoIP or ISP service and need prepaid balances and per-second rating that my softswitch can call",
      "I want an agent to set up rates, load tariff plans and query CDRs without a dashboard"
    ],
    "accounts": [],
    "active": true,
    "lastActivity": "2026-08-28",
    "gotchas": [
      "Telecom-specific vocabulary (CDRs, tariff plans, LCR); not a general invoicing tool",
      "AGPL-3.0",
      "Sits next to a softswitch; not useful on its own"
    ],
    "fit": {
      "adaptable": 2,
      "operable": 3
    },
    "evidence": {
      "formFactor": "micro-services with 'rich set of RPC APIs' (README)",
      "executionModel": "rating engine, no model at runtime",
      "operability": "JSON-RPC APIs documented at cgrates.readthedocs.io by the Builder; apier package on pkg.go.dev",
      "effort": "cgrates.json config and tariff-plan CSVs per docs tutorials",
      "editions": "README: open source, commercial support available; no paid edition seen",
      "active": "GitHub pushedAt 2026-08-28"
    },
    "confidence": {
      "formFactor": 0.9,
      "executionModel": 0.95,
      "operability": 0.9,
      "effort": 0.75,
      "reach": 0.7,
      "editions": 0.9
    },
    "openQuestions": [
      "Confirm the exact default config path and whether Docker images are official",
      "Whether there is a Redis-only minimal deployment for small operators"
    ],
    "sources": [
      {
        "url": "https://github.com/cgrates/cgrates",
        "foundBy": "sourcing:invoicing-finance:curated"
      },
      {
        "url": "https://cgrates.readthedocs.io/en/latest/",
        "foundBy": "sourcing:invoicing-finance:curated"
      }
    ],
    "research": {
      "stage": "verified",
      "verdict": "unverified",
      "reason": "The API is the product, so Reach is complete; config-only through cgrates.json. Niche telecom fit and AGPL keep Adaptable at 2.",
      "disputed": []
    },
    "url": "apps/cgrates--cgrates.html",
    "coverage": "complete",
    "paid": false,
    "source": "research/verified/cgrates--cgrates.json"
  }
}
