For Agents
Read a Code::Stats user profile or submit a programming-activity pulse with per-language XP using an X-API-Token header.
Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the Code::Stats API, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
Two steps, two machines. Install the instance in a safe environment, then register your agent from wherever it runs.
Step 1: Jentic One Host machine
# On the machine that will host your Jentic One instance:
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | shStep 2: Agent machine
# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with Code::Stats API.
Submit a pulse of XP across one or more programming languages via POST /my/pulses
Read any user's public profile, including total XP and per-language breakdowns, via GET /users/{username}
Calculate level progress from XP using the published formula (level = floor(0.025 * sqrt(xp)))
GET STARTED
Use for: Submit a pulse of XP for Python coding activity, Get the public profile and total XP for a Code::Stats user, Find which programming language a user has the most XP in, Check whether a Code::Stats username exists
Not supported: Does not handle private profile data, account creation, or aggregated leaderboards — use for public profile reads and personal pulse submission only.
Jentic publishes the only available OpenAPI specification for Code::Stats API, keeping it validated and agent-ready. Code::Stats is a free, open-source programming activity tracker — editor plugins watch what a developer types in each language and report XP (experience points) to a hosted profile that visualises long-term coding activity. The API has just 2 endpoints over codestats.net/api: GET /users/{username} returns a public profile with per-language XP and totals, and POST /my/pulses lets a client submit a fresh pulse of XP gained against one or more languages. Pulse submission requires a signed API token (X-API-Token header).
Compare two developers' per-language XP for friendly competition or onboarding metrics
Drive a custom editor plugin or CI hook that reports coding activity to Code::Stats
Patterns agents use Code::Stats API for, with concrete tasks.
★ Custom Editor Activity Reporting
Developers using editors that lack an official Code::Stats plugin can build a thin client that posts pulses through POST /my/pulses. Each save or focus event accumulates XP per language and is flushed periodically. Lets unsupported tools (custom IDEs, terminal-based editors, niche notebooks) participate in the same long-term activity profile as the official plugins.
Buffer typed-character counts per language for 60 seconds, then POST /my/pulses with coded_at=now and an xps array of {language, xp} pairs
Developer Profile Embed for a Personal Site
Embed live Code::Stats data in a personal website by calling GET /users/{username} server-side and rendering total XP, top languages, and recent activity. The page stays in sync with the developer's coding activity without manual updates. Replaces stale 'I work in Rust and Python' bullet points with data sourced from the editor itself.
Call GET /users/alice, extract the top 5 languages by XP, and render them as a sorted list on the personal site
Team or Cohort Activity Dashboard
Bootcamps and engineering teams use Code::Stats to give learners and members a shared, public view of their progress. The agent loops over a list of usernames calling GET /users/{username} and aggregates XP into a leaderboard or cohort dashboard. Builds friendly motivation around consistent practice rather than headline output.
For each username in cohort.csv call GET /users/{username}, sum total XP for the last 30 days, and render a leaderboard
Agent-Driven Code::Stats via Jentic
An AI agent connected to Jentic can answer 'how much XP did I earn this week?' or post a pulse from a custom toolchain without holding the raw signed token. Jentic stores the X-API-Token in its vault and executes /users/{username} or /my/pulses on the agent's behalf, returning parsed responses.
Search Jentic for 'submit Code::Stats pulse', load the POST /my/pulses schema, and execute it with coded_at=now and xps=[{language: 'Python', xp: 100}]
2 endpoints — jentic publishes the only available openapi specification for code::stats api, keeping it validated and agent-ready.
METHOD
PATH
DESCRIPTION
/users/{username}
Get a user's public profile
/my/pulses
Submit a programming-activity pulse
/users/{username}
Get a user's public profile
/my/pulses
Submit a programming-activity pulse
Three things that make agents converge on Jentic-routed access.
Credential isolation
The signed Code::Stats X-API-Token is stored encrypted in the Jentic vault. Agents receive scoped execution access; the raw token never enters agent context, and rotation can be handled centrally without redeploying plugins.
Intent-based discovery
Agents search Jentic by intent (e.g., 'submit a Code::Stats pulse') and Jentic returns the matching operation with parameter schema, so the agent can call /my/pulses without scraping vendor docs.
Time to first call
Direct Code::Stats integration: an hour or two to wire the X-API-Token header and pulse payload format. Through Jentic: under 15 minutes — search, load, execute.
Alternatives and complements available in the Jentic catalogue.
GitHub API
Pair with Code::Stats to combine commit-level activity (GitHub) with editor-level XP (Code::Stats)
Use GitHub for commit-driven activity and Code::Stats for editor-driven XP when building a holistic developer dashboard
Specific to using Code::Stats API through Jentic.
Why is there no official OpenAPI spec for Code::Stats API?
Code::Stats does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Code::Stats API via structured tooling. It is validated against the live API and kept up to date. Get started at https://app.jentic.com/sign-up.
What authentication does the Code::Stats API use?
Profile reads at GET /users/{username} are public and need no auth. Pulse submission at POST /my/pulses requires a signed token in the X-API-Token header, generated in the Code::Stats Machine control panel. Through Jentic the token is stored in the vault.
Can I submit programming activity from a custom editor?
Yes. POST /my/pulses accepts a coded_at timestamp and an xps array of {language, xp} entries, so any tool that observes coding activity can report it. Bundle multiple languages in one pulse if a session crosses files of different types.
What are the rate limits for the Code::Stats API?
Code::Stats does not publish a fixed public rate limit. The service is community-run, so pulse submission frequency should match the official plugins (one pulse every minute or so) and profile reads should be cached. Back off on HTTP 429 responses.
How do I read a user profile through Jentic?
Search Jentic for 'get Code::Stats user profile', load the GET /users/{username} schema, and execute it with the username. The endpoint is unauthenticated, so Jentic simply returns the parsed profile including total XP and per-language XP.