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/auditSubmit 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/:idRetrieve 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
doneGitHub 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 0Rate Limits
Free1 audit/month
Starter10 audits/month, 1 concurrent
ProUnlimited, 5 concurrent
EnterpriseUnlimited, 20 concurrent, SLA