Developer API & CI/CD

Put AI-readiness in your pipeline. Trigger audits over REST, gate pull requests with a GitHub Action or the CLI, and get the exact copy-paste fix in the PR comment when something regresses for GPTBot, ClaudeBot, Perplexity, Gemini, Grok, or Doubao.

First audit in 3 calls

Create a key in the dashboard under API & CI, then:

# 1) Trigger an audit
curl -sX POST https://aibotchecker.online/api/v1/audits \
  -H "Authorization: Bearer $AIBOTCHECKER_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(git rev-parse HEAD)" \
  -d '{"url":"https://example.com","depth":"single"}'
# → { "id": "aud_...", "status": "queued" }

# 2) Poll until complete
curl -s https://aibotchecker.online/api/v1/audits/aud_XXXX \
  -H "Authorization: Bearer $AIBOTCHECKER_TOKEN"
# → { "status": "completed", "score": 82, "agents": { "gptbot": {...} }, "diff": {...} }

# 3) Assert your budgets (CI)
curl -sX POST https://aibotchecker.online/api/v1/audits/aud_XXXX/evaluate \
  -H "Authorization: Bearer $AIBOTCHECKER_TOKEN" \
  -d '{"budgets":{"score":{"min":85}}}'
# → { "passed": false, "violations": [ { "rule":"score.min", ... } ] }

No account? Try the keyless quick-check first — 0 credits, strict rate limit:

curl -sX POST https://aibotchecker.online/api/v1/checks/quick \
  -d '{"url":"https://example.com"}'

GitHub Action (flagship)

Fail the build — and comment the diff table with fix links — on every PR. Point it at your preview deployment to catch regressions before production.

name: AI Bot Checker
on: [pull_request]
permissions: { contents: read, pull-requests: write }
jobs:
  ai-readiness:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: aibotchecker/audit-action@v1
        with:
          url: ${{ steps.deploy.outputs.preview-url }}
          token: ${{ secrets.AIBOTCHECKER_TOKEN }}
          config: .aibotchecker.yml

GitLab / Bitbucket / Jenkins use the same CLI and the same config:

npx aibotchecker audit "$DEPLOY_URL" --config .aibotchecker.yml

.aibotchecker.yml

version: 1
target:
  url: "${DEPLOY_URL}"          # ${ENV} interpolation
  depth: single
  agents: [gptbot, claudebot, perplexitybot]
baseline: { strategy: last_completed }
budgets:
  score: { min: 85 }
  regression: { max_score_drop: 3, block_new_critical: true }
  checks:
    - { id: llms_txt_present, must: pass }
    - { category: schema, max_critical: 0 }
  agents:
    - { agent: gptbot, category: crawlability, must: pass }
fail_on: [error, regression]
on_quota_exceeded: neutral        # never break the pipeline on credits

Endpoints

POST/v1/auditsTrigger an audit (async)
GET/v1/audits/{id}Status + full results + diff
GET/v1/auditsList / filter (source, status, url)
POST/v1/audits/{id}/evaluateEvaluate budgets (CI assertion)
GET/v1/audits/{id}/reportRendered HTML/PDF report
GET/v1/sites/{id}/historyScore timeline + regressions
POST/v1/checks/quickQuick check (keyless or keyed)
GET/POST/DELETE/v1/webhooksWebhook subscriptions
GET/POST/DELETE/v1/keysAPI key management
GET/v1/meta/checks · /v1/meta/agentsCatalogs

Auth: Authorization: Bearer <key>. Metered in audit credits (1 page = 1 credit); responses carry X-Audit-Credits-Remaining. Errors use a stable { error: { code, message } } envelope. Versioned; 12-month deprecation policy.

Recipes

SMB / startup

One repo, one guardrail: fail PRs that drop below a score or block GPTBot. 5-minute setup with the Action + fail-below.

Agency

One Project + one scoped key per client. Script audits across domains, pull JSON, subscribe webhooks per workspace.

Platform / plugin

Embed the quick-check keyless, upsell full audits. Stable API, generous free tier, OpenAPI-generated types.