API Documentation

Integrate auditize into your CI/CD pipeline. Available on Starter, Pro, and Enterprise plans.

Authentication

Pass your API key in the Authorization header on every request. Generate keys in your dashboard settings.

curl https://auditize.xyz/api/v1/audit \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"

Base URL

https://auditize.xyz/api/v1
POST/api/v1/audit

Submit a smart contract for security analysis.

Request Body

{
  "contractCode": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n...",
  "contractName": "MyToken"
}

Response

{
  "auditId": "clx1abc123",
  "status": "processing"
}

Example

curl -X POST https://auditize.xyz/api/v1/audit \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"contractName":"MyToken","contractCode":"pragma solidity..."}'
GET/api/v1/audit/:id

Retrieve an audit report by ID. Poll until status is 'completed'.

Response (completed)

{
  "id": "clx1abc123",
  "contractName": "MyToken",
  "status": "completed",
  "score": 82,
  "summary": "The contract is generally secure...",
  "findings": [
    {
      "severity": "HIGH",
      "title": "Missing Access Control",
      "description": "The mint function lacks an onlyOwner modifier...",
      "affectedCode": "function mint(address to, uint256 amount) external {",
      "suggestion": "function mint(address to, uint256 amount) external onlyOwner {",
      "lineNumbers": "24"
    }
  ],
  "gasNotes": "Consider using uint256 instead of uint...",
  "publicId": "share-abc123",
  "createdAt": "2026-05-07T12:00:00.000Z"
}

Example — poll for completion

# Poll every 5 seconds until status = "completed"
while true; do
  STATUS=$(curl -s https://auditize.xyz/api/v1/audit/clx1abc123 \
    -H "Authorization: Bearer YOUR_API_KEY" | jq -r '.status')
  echo "Status: $STATUS"
  [ "$STATUS" = "completed" ] && break
  sleep 5
done

GitHub Actions Integration

Automatically audit contracts on every push.

# .github/workflows/audit.yml
name: Smart Contract Audit

on: [push, pull_request]

jobs:
  audit:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Submit audit
        id: submit
        run: |
          AUDIT_ID=$(curl -s -X POST https://auditize.xyz/api/v1/audit \
            -H "Authorization: Bearer ${{ secrets.AUDITAI_API_KEY }}" \
            -H "Content-Type: application/json" \
            -d "{\"contractName\":\"MyToken\",\"contractCode\":\"$(cat contracts/MyToken.sol | jq -Rs .)\"}" \
            | jq -r '.auditId')
          echo "audit_id=$AUDIT_ID" >> $GITHUB_OUTPUT

      - name: Wait for results
        run: |
          for i in {1..30}; do
            STATUS=$(curl -s https://auditize.xyz/api/v1/audit/${{ steps.submit.outputs.audit_id }} \
              -H "Authorization: Bearer ${{ secrets.AUDITAI_API_KEY }}" | jq -r '.status')
            [ "$STATUS" = "completed" ] && break
            sleep 10
          done

      - name: Check score
        run: |
          SCORE=$(curl -s https://auditize.xyz/api/v1/audit/${{ steps.submit.outputs.audit_id }} \
            -H "Authorization: Bearer ${{ secrets.AUDITAI_API_KEY }}" | jq '.score')
          echo "Security Score: $SCORE/100"
          [ "$SCORE" -lt 60 ] && exit 1 || exit 0

Rate Limits

Free1 audit/month
Starter10 audits/month, 1 concurrent
ProUnlimited, 5 concurrent
EnterpriseUnlimited, 20 concurrent, SLA