← All action domains

GitHub

24 operations. Call each with POST https://app.chirply.io/api/v1/actions/<name> and a bearer token; the response is { "data": { "action", "summary", "result" } }. A read badge means the operation changes nothing; write requires the credential’s write scope.

Summarize code activity

github.activity_summaryread

The whole picture for a window in one call: commits, lines added and removed, the repositories that moved, every contributor's totals, and the AI review scores for that period. Every line total carries how many commits it was measured from, because GitHub's commit list has no line counts and the mirror fills them in progressively — read the two together or you will under-report. Read-only from the local mirror; costs nothing and generates nothing.

Parameters

FieldTypeRequiredDescription
period"rolling" | "yesterday"optionalUse yesterday for the previous local calendar day; rolling preserves the last N days ending now. Explicit from/to take precedence. Default: "rolling"
timezonestringoptionalIANA timezone such as America/Chicago. Required with period=yesterday so the calendar boundary is explicit rather than silently using UTC.
daysintegeroptionalHow many days back to look, ending now. 1 is 'since this time yesterday' — the daily-standup window. Ignored when `from` and `to` are given. Default: 1
fromstring (date-time)optionalStart of an explicit window, as an ISO 8601 timestamp, e.g. 2026-09-14T00:00:00Z.
tostring (date-time)optionalEnd of an explicit window, as an ISO 8601 timestamp. Must be after `from`.

Example

curl -X POST https://app.chirply.io/api/v1/actions/github.activity_summary \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "period": "rolling",
    "timezone": "example"
  }'
Test with your API key

Over MCP the same operation is the tool github_activity_summary at https://app.chirply.io/api/mcp, same bearer token, same input.

Connect another GitHub account

github.add_accountwriteadmin only

Connect an ADDITIONAL GitHub account alongside the ones already linked, using a personal access token belonging to that GitHub user. This is the fix when repositories are missing and no permission change reveals them: a token can only ever reach what its own GitHub user can see, so a second account needs a second token. The token is verified against GitHub before it is stored and is encrypted with AES-256-GCM; it is never returned. Give each account a short label so it can be told apart later. Costs nothing.

Parameters

FieldTypeRequiredDescription
labelstringrequiredShort name for this account, e.g. 'tier5dev'. Used to tell connected accounts apart; reusing a label replaces that account's token.
tokenstringrequiredA GitHub personal access token belonging to the account you are adding, with the repo and read:org scopes. Verified against GitHub before it is stored, then encrypted.
orgstringoptionalRestrict this account to one GitHub organization by name. Leave it out to follow every repository the token can reach, which is usually what you want.

Example

curl -X POST https://app.chirply.io/api/v1/actions/github.add_account \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "label": "example",
    "token": "example"
  }'
Test with your API key

Over MCP the same operation is the tool github_add_account at https://app.chirply.io/api/mcp, same bearer token, same input.

Check remote branch indexing

github.branch_backfill_statusread

Read saved indexing progress, inspected branches, pending repositories and failures for one account-scoped backfill, or the latest account-wide job when both ID and repositories are omitted. An optional repository selection matches only that exact scoped job; an explicit ID without repositories may read any job in this account. Returns not_started if no job matches the requested scope. Makes no GitHub requests and starts no work. Partial or unfinished indexing is unknown coverage, not zero work.

Parameters

FieldTypeRequiredDescription
idstring (uuid)optionalBackfill ID returned by github.start_branch_backfill. Omit to read the latest job matching the repository selection, or the latest account-wide job when no selection is supplied. Returns not_started if that scope has no job.
repositoriesstring[]optionalRestrict every evidence source and GitHub search to these 1–100 repositories currently tracked in this account. Unknown, untracked, other-account or empty selections fail without broadening. Omit for all account-tracked repositories; this never changes shared tracking preferences.

Example

curl -X POST https://app.chirply.io/api/v1/actions/github.branch_backfill_status \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool github_branch_backfill_status at https://app.chirply.io/api/mcp, same bearer token, same input.

Build the code activity digest

github.daily_digestwrite

Produce and save the report for a window — what shipped, in which repositories, written by whom, and how the code scored — with a plain-English summary a non-engineer can read. Optionally audits some not-yet-reviewed commits first so the quality section rests on real reviews; each audit is a model call billed to this account's own OpenRouter key, and `review_commits` is the spend control. The figures are computed and saved whether or not AI is connected — without it the report is the numbers plus a factual summary rather than a narrative. Re-running a window replaces that window's saved digest.

Parameters

FieldTypeRequiredDescription
period"rolling" | "yesterday"optionalUse yesterday for the previous local calendar day; rolling preserves the last N days ending now. Explicit from/to take precedence. Default: "rolling"
timezonestringoptionalIANA timezone such as America/Chicago. Required with period=yesterday so the calendar boundary is explicit rather than silently using UTC.
daysintegeroptionalHow many days back to look, ending now. 1 is 'since this time yesterday' — the daily-standup window. Ignored when `from` and `to` are given. Default: 1
fromstring (date-time)optionalStart of an explicit window, as an ISO 8601 timestamp, e.g. 2026-09-14T00:00:00Z.
tostring (date-time)optionalEnd of an explicit window, as an ISO 8601 timestamp. Must be after `from`.
review_commitsintegeroptionalAudit up to this many not-yet-reviewed commits from the window before summarizing. Each one is a model call billed to this account's OpenRouter key. 0 uses only reviews that already exist. Default: 0

Example

curl -X POST https://app.chirply.io/api/v1/actions/github.daily_digest \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "period": "rolling",
    "timezone": "example"
  }'
Test with your API key

Over MCP the same operation is the tool github_daily_digest at https://app.chirply.io/api/mcp, same bearer token, same input.

Open a commit

github.get_commitread

Fetch one stored commit with its repository, author, line counts and its AI code review if one has been generated. Read-only from the local mirror; costs nothing and generates nothing — use github.review_commit to produce a review that doesn't exist yet.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredThe commit's id from github.list_commits.

Example

curl -X POST https://app.chirply.io/api/v1/actions/github.get_commit \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool github_get_commit at https://app.chirply.io/api/mcp, same bearer token, same input.

List connected GitHub accounts

github.list_accountsread

List every GitHub account this Chirply account has connected, with the GitHub login each token belongs to and how many repositories it reaches. Read-only; costs nothing. Worth checking whenever a repository seems missing: a personal access token only reaches what ITS OWN GitHub user can see, so work living under a second GitHub account is invisible until that account is connected too — no scope change on the first token will ever reveal it.

Parameters

No parameters — POST an empty body.

Example

curl -X POST https://app.chirply.io/api/v1/actions/github.list_accounts \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{}'
Test with your API key

Over MCP the same operation is the tool github_list_accounts at https://app.chirply.io/api/mcp, same bearer token, same input.

List commits

github.list_commitsread

List stored commits, newest first, with author, message, line counts and whether an AI review exists. Filter by repository, by GitHub login, or to a time window. Merge commits are included but flagged — their diff is the whole branch they bring in, so they are excluded from every total this integration reports. Read-only from the local mirror; costs nothing.

Parameters

FieldTypeRequiredDescription
repository_idstring (uuid)optionalOnly commits in this repository.
author_loginstringoptionalOnly commits by this GitHub login (case-insensitive), e.g. 'octocat'.
sincestring (date-time)optionalOnly commits at or after this ISO 8601 timestamp.
untilstring (date-time)optionalOnly commits before this ISO 8601 timestamp.
include_mergesbooleanoptionalInclude merge commits. Default false, matching how reports count. Default: false
limitintegeroptionalMax rows to return (1–200). Default: 50

Example

curl -X POST https://app.chirply.io/api/v1/actions/github.list_commits \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "repository_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "author_login": "example"
  }'
Test with your API key

Over MCP the same operation is the tool github_list_commits at https://app.chirply.io/api/mcp, same bearer token, same input.

List contributors

github.list_contributorsread

Who wrote code in a window, with commits, lines added and removed, repositories touched, and the Chirply team member each GitHub account is linked to (null when nobody has linked it yet). Merge commits are excluded so nobody is credited with a branch they merged. Read-only from the local mirror; costs nothing.

Parameters

FieldTypeRequiredDescription
period"rolling" | "yesterday"optionalUse yesterday for the previous local calendar day; rolling preserves the last N days ending now. Explicit from/to take precedence. Default: "rolling"
timezonestringoptionalIANA timezone such as America/Chicago. Required with period=yesterday so the calendar boundary is explicit rather than silently using UTC.
daysintegeroptionalHow many days back to look, ending now. 1 is 'since this time yesterday' — the daily-standup window. Ignored when `from` and `to` are given. Default: 1
fromstring (date-time)optionalStart of an explicit window, as an ISO 8601 timestamp, e.g. 2026-09-14T00:00:00Z.
tostring (date-time)optionalEnd of an explicit window, as an ISO 8601 timestamp. Must be after `from`.

Example

curl -X POST https://app.chirply.io/api/v1/actions/github.list_contributors \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "period": "rolling",
    "timezone": "example"
  }'
Test with your API key

Over MCP the same operation is the tool github_list_contributors at https://app.chirply.io/api/mcp, same bearer token, same input.

List saved digests

github.list_digestsread

The code activity digests already built for this account, newest first, each with its window, its figures and its summary. Read-only from the local mirror; costs nothing and generates nothing — use github.daily_digest to build one that doesn't exist yet.

Parameters

FieldTypeRequiredDescription
limitintegeroptionalMax digests to return (1–60). Default: 14

Example

curl -X POST https://app.chirply.io/api/v1/actions/github.list_digests \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "limit": 14
  }'
Test with your API key

Over MCP the same operation is the tool github_list_digests at https://app.chirply.io/api/mcp, same bearer token, same input.

List GitHub accounts

github.list_identitiesread

Every GitHub account seen pushing to this workspace's repositories, and which Chirply team member each one is linked to. An unlinked account still appears in reports under its GitHub login — linking is what lets a report say a person's name. Read-only from the local mirror; costs nothing.

Parameters

FieldTypeRequiredDescription
unlinked_onlybooleanoptionalOnly accounts with no team member linked yet — the list a manager needs to work through. Default: false

Example

curl -X POST https://app.chirply.io/api/v1/actions/github.list_identities \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "unlinked_only": false
  }'
Test with your API key

Over MCP the same operation is the tool github_list_identities at https://app.chirply.io/api/mcp, same bearer token, same input.

View team GitHub usernames

github.list_member_profilesread

Read current account members and the GitHub usernames they entered in their own profiles. These are self-reported hints, not verified ownership; explicit manager mappings are listed separately by github.list_identities. Read-only, sends no messages and costs nothing.

Parameters

No parameters — POST an empty body.

Example

curl -X POST https://app.chirply.io/api/v1/actions/github.list_member_profiles \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{}'
Test with your API key

Over MCP the same operation is the tool github_list_member_profiles at https://app.chirply.io/api/mcp, same bearer token, same input.

List repositories

github.list_repositoriesread

List the repositories mirrored for this account, most recently pushed to first, with whether each one is followed (followed repositories are the ones whose commits are ingested and counted in reports). Read-only from the local mirror; costs nothing and calls GitHub not at all.

Parameters

FieldTypeRequiredDescription
tracked_onlybooleanoptionalOnly the repositories being followed. Default false: everything the token can see. Default: false
querystringoptionalMatch against the repository's full name, e.g. 'api' or 'acme/web'.
limitintegeroptionalMax rows to return (1–200). Default: 50

Example

curl -X POST https://app.chirply.io/api/v1/actions/github.list_repositories \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "tracked_only": false,
    "query": "example"
  }'
Test with your API key

Over MCP the same operation is the tool github_list_repositories at https://app.chirply.io/api/mcp, same bearer token, same input.

Review a team member’s code

github.member_work_reportread

Resolve a Chirply member's linked GitHub logins or self-reported profile username, search default-branch commits across connected accounts, reconcile stored evidence, and aggregate up to 1,000 unique commits with independent stats-only batches, per-repository totals and up to 60 listed commit details plus bounded sample diffs. Also finds up to 20 authored pull requests updated in the window, with current diff snapshots for up to two, separating merged work from work in progress. All evidence is restricted to this account's tracked repositories, optionally narrowed by exact repository names without changing shared tracking. Selected searches use bounded repository batches; unsearched batches remain explicit partial coverage. PR snapshots may include older work and other contributors and are not added to daily line totals. The calling AI gives a concise scorecard and evidence-based light review; large workloads can skip patch review. Sends no messages, makes no model call, and modifies no repositories. Reports missing identity, partial coverage and search failures explicitly; line counts do not measure time or productivity. Also returns day_assessment, which decides in code whether a low-output flag against an expected working day is permitted: only gaps that could hide pushed code (a repository pushed during the window that no branch index, verified push webhook or live all-branch scan covers; unknown merge status; unsized commits) block it. Repositories without index or webhook coverage are checked live with read-only GitHub GraphQL requests: their last-push time, then this person's commits on every branch of any repository pushed during the window, while sampled or partial diffs are review limits that never suppress it.

Parameters

FieldTypeRequiredDescription
user_idstring (uuid)requiredThe actual Chirply user ID of the person being reviewed, such as the user_id on their clock-out chat message.
period"rolling" | "yesterday"optionalUse yesterday for the previous local calendar day; rolling preserves the last N days ending now. Explicit from/to take precedence. Default: "rolling"
timezonestringoptionalIANA timezone such as America/Chicago. Required with period=yesterday so the calendar boundary is explicit rather than silently using UTC.
daysintegeroptionalHow many days back to look, ending now. 1 is 'since this time yesterday' — the daily-standup window. Ignored when `from` and `to` are given. Default: 1
fromstring (date-time)optionalStart of an explicit window, as an ISO 8601 timestamp, e.g. 2026-09-14T00:00:00Z.
tostring (date-time)optionalEnd of an explicit window, as an ISO 8601 timestamp. Must be after `from`.
repositoriesstring[]optionalRestrict every evidence source and GitHub search to these 1–100 repositories currently tracked in this account. Unknown, untracked, other-account or empty selections fail without broadening. Omit for all account-tracked repositories; this never changes shared tracking preferences.
diff_limitintegeroptionalMaximum commits whose file patches are sampled, within a shared time and 40,000-character budget. Use 0 for totals and delivery overview without downloading commit or PR patches. Scalar addition/deletion totals are collected separately; coverage and omitted detail counts are reported. Default: 5

Example

curl -X POST https://app.chirply.io/api/v1/actions/github.member_work_report \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "user_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool github_member_work_report at https://app.chirply.io/api/mcp, same bearer token, same input.

Push tracking status

github.push_tracking_statusread

Read durable repository webhook setup progress for this account: tracked repositories and current verification sweep's processed, active, unavailable and failed counts, recent setup errors and last received signed push. Counts restart during the hourly verification sweep. An active hook means GitHub confirmed its push subscription, not that delivery coverage is gap-free. Sends nothing, changes nothing and incurs no AI charge.

Parameters

No parameters — POST an empty body.

Example

curl -X POST https://app.chirply.io/api/v1/actions/github.push_tracking_status \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{}'
Test with your API key

Over MCP the same operation is the tool github_push_tracking_status at https://app.chirply.io/api/mcp, same bearer token, same input.

Disconnect a GitHub account

github.remove_accountwriteconfirmadmin only

Disconnect one of the connected GitHub accounts by its label, deleting its stored token. Repositories and commits already mirrored through it are KEPT, so past reports keep their numbers — they simply stop updating. The first account's label is 'default'. Irreversible: the token cannot be recovered and has to be pasted again to reconnect.

Marked confirm: this operation is irreversible, reaches real people, or spends money. Holding a credential is itself the confirmation for API and MCP callers — call it only when you mean it. The in-app assistant refuses to run it without a human approving first.

Parameters

FieldTypeRequiredDescription
labelstringrequiredWhich account to disconnect, from github.list_accounts.

Example

curl -X POST https://app.chirply.io/api/v1/actions/github.remove_account \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "label": "example"
  }'
Test with your API key

Over MCP the same operation is the tool github_remove_account at https://app.chirply.io/api/mcp, same bearer token, same input.

Summarize repository contributions

github.repository_work_summaryread

Read one compact daily contributor summary for an explicit selection of this account's tracked repositories. Combines saved mirror and remote-branch commits, deduplicates SHAs across forks, separates merges and unknown authors, and returns measured line coverage, contributor member IDs when unambiguously linked, current members and completed branch-index coverage. Reads at most 1,000 rows per source within a time budget; incomplete reads are explicit lower bounds. Makes no GitHub or model requests, sends no messages and changes nothing. Use this first for a group report, then request only bounded member_work_report patch samples. Lines and commits do not measure hours, value or employment performance.

Parameters

FieldTypeRequiredDescription
repositoriesstring[]requiredRequired exact owner/name selection of 1–100 currently tracked repositories in this account. Unknown, untracked, empty or foreign selections fail without broadening or changing shared tracking.
fromstring (date-time)requiredInclusive start timestamp of the reporting window, including timezone offset. Use the intended local calendar-day boundary.
tostring (date-time)requiredExclusive end timestamp, after from and within 90 days. Use the same boundaries for subsequent member patch samples.

Example

curl -X POST https://app.chirply.io/api/v1/actions/github.repository_work_summary \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "repositories": [
      "example"
    ],
    "from": "2026-09-17T15:00:00Z",
    "to": "2026-09-17T15:00:00Z"
  }'
Test with your API key

Over MCP the same operation is the tool github_repository_work_summary at https://app.chirply.io/api/mcp, same bearer token, same input.

AI review a commit

github.review_commitwrite

Have an AI read one commit's actual diff and score it for correctness, security, data safety and clarity, returning a 0-100 score, a risk level, specific findings and what the change did well. Runs on this account's own OpenRouter key, so it costs the account a model call — one per commit, and a stored review is returned instead of re-billing unless you force a re-review. A very large diff is reviewed from the largest slice that fits and flagged as partial. Merge commits are refused: a merge's diff is the whole branch it brings in, which was already reviewed commit by commit.

Parameters

FieldTypeRequiredDescription
commit_idstring (uuid)requiredThe commit to review, by its id from github.list_commits.
forcebooleanoptionalRe-review a commit that already has one, paying for a fresh model call. Default: false

Example

curl -X POST https://app.chirply.io/api/v1/actions/github.review_commit \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "commit_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool github_review_commit at https://app.chirply.io/api/mcp, same bearer token, same input.

Follow or unfollow a repository

github.set_repository_trackingwriteadmin only

Choose whether a repository's commits are ingested and counted in this account's code reports. Unfollowing stops future syncs from reading it and drops it out of new reports; commits already stored stay stored, so old digests keep their numbers. Nothing on GitHub changes — this is a local preference only.

Parameters

FieldTypeRequiredDescription
repository_idstring (uuid)requiredThe repository, by its id from github.list_repositories.
trackedbooleanrequiredtrue to follow it (commits are ingested), false to stop following it.

Example

curl -X POST https://app.chirply.io/api/v1/actions/github.set_repository_tracking \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "repository_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "tracked": true
  }'
Test with your API key

Over MCP the same operation is the tool github_set_repository_tracking at https://app.chirply.io/api/mcp, same bearer token, same input.

Enable push tracking

github.setup_push_trackingwriteconfirmadmin only

Enable ongoing signed push tracking for this account's tracked GitHub repositories. Saves an encrypted signing secret, then background workers create or repair only hooks pointing at this account's exact Chirply callback. GitHub will send future push metadata to Chirply; existing unrelated hooks and subscriptions are preserved. Uses the connected GitHub tokens and API quota, with no AI generation charge. A repository administrator's token needs Webhooks write permission. Work resumes automatically in bounded batches, including newly tracked repositories; this does not recover past push times. Calling again retries setup without creating duplicate hooks. Read github.push_tracking_status for progress, inaccessible repositories and errors.

Marked confirm: this operation is irreversible, reaches real people, or spends money. Holding a credential is itself the confirmation for API and MCP callers — call it only when you mean it. The in-app assistant refuses to run it without a human approving first.

Parameters

No parameters — POST an empty body.

Example

curl -X POST https://app.chirply.io/api/v1/actions/github.setup_push_tracking \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{}'
Test with your API key

Over MCP the same operation is the tool github_setup_push_tracking at https://app.chirply.io/api/mcp, same bearer token, same input.

Index remote branch activity

github.start_branch_backfillwriteadmin only

Queue a resumable scan of current remote branches in this account's tracked repositories for a date window. Saves commit metadata and line totals once so member reports can query an index, including unfinished branches without pull requests. Uses the account's GitHub API quota and Chirply background processing, sends no messages and modifies no remote repositories. Active identical date-and-repository requests reuse one job. Optional repositories creates a separate selected-repository job; omitted selection retains account-wide indexing. Neither changes shared tracking or an existing job. Historical evidence proves reachable commits by commit date, not exact push times or deleted/local branches. Inspect progress with github.branch_backfill_status.

Parameters

FieldTypeRequiredDescription
period"rolling" | "yesterday"optionalUse yesterday for the previous local calendar day; rolling preserves the last N days ending now. Explicit from/to take precedence. Default: "rolling"
timezonestringoptionalIANA timezone such as America/Chicago. Required with period=yesterday so the calendar boundary is explicit rather than silently using UTC.
daysintegeroptionalHow many days back to look, ending now. 1 is 'since this time yesterday' — the daily-standup window. Ignored when `from` and `to` are given. Default: 1
fromstring (date-time)optionalStart of an explicit window, as an ISO 8601 timestamp, e.g. 2026-09-14T00:00:00Z.
tostring (date-time)optionalEnd of an explicit window, as an ISO 8601 timestamp. Must be after `from`.
repositoriesstring[]optionalRestrict every evidence source and GitHub search to these 1–100 repositories currently tracked in this account. Unknown, untracked, other-account or empty selections fail without broadening. Omit for all account-tracked repositories; this never changes shared tracking preferences.

Example

curl -X POST https://app.chirply.io/api/v1/actions/github.start_branch_backfill \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "period": "rolling",
    "timezone": "example"
  }'
Test with your API key

Over MCP the same operation is the tool github_start_branch_backfill at https://app.chirply.io/api/mcp, same bearer token, same input.

Check the GitHub connection

github.statusread

Report whether this account has a GitHub connection, which organization it points at, how many repositories are mirrored and followed, how many commits are stored, and when the last sync ran. Read-only, touches GitHub's API not at all (it reads the local mirror), and costs nothing. Start here when a code report comes back empty — the usual causes are no connection, no followed repositories, or a token that can't see the organization.

Parameters

No parameters — POST an empty body.

Example

curl -X POST https://app.chirply.io/api/v1/actions/github.status \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{}'
Test with your API key

Over MCP the same operation is the tool github_status at https://app.chirply.io/api/mcp, same bearer token, same input.

Sync GitHub now

github.syncwriteadmin only

Pull the repository list and any new commits from GitHub into this account's code-activity mirror, then link any GitHub accounts whose commit email exactly matches a team member's. Reads GitHub only — it never pushes, comments, or changes anything in a repository. Spends some of the token's hourly GitHub rate limit, and fetches per-commit line counts up to a fixed budget per run, so a very large backlog fills in over several runs rather than all at once. Runs hourly on its own; call this when you want the numbers current right now.

Parameters

FieldTypeRequiredDescription
repository_idstring (uuid)optionalSync only this repository (its id from github.list_repositories). Default: every followed repository.
sincestring (date-time)optionalRe-read commits from this instant forward, ignoring the saved cursor. Use to backfill history you didn't have before; leave it off for the normal incremental pull.

Example

curl -X POST https://app.chirply.io/api/v1/actions/github.sync \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "repository_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "since": "2026-09-17T15:00:00Z"
  }'
Test with your API key

Over MCP the same operation is the tool github_sync at https://app.chirply.io/api/mcp, same bearer token, same input.

The machine-readable version of this page is GET https://app.chirply.io/api/v1/actions?domain=github — same operations, with full JSON Schemas. Authentication, errors and rate limits are covered in the API documentation home.