-
Notifications
You must be signed in to change notification settings - Fork 52
CLI Reference
Anes Berbic edited this page Mar 13, 2026
·
1 revision
The apiark CLI lets you run collections, import/export data, and integrate with CI/CD pipelines — all from the command line.
Download the pre-built binary from GitHub Releases:
| Platform | Binary |
|---|---|
| Linux x86_64 | apiark-cli-linux-x86_64 |
| macOS ARM | apiark-cli-macos-arm64 |
| macOS Intel | apiark-cli-macos-x86_64 |
| Windows | apiark-cli-windows-x86_64.exe |
# Linux/macOS
chmod +x apiark-cli-*
sudo mv apiark-cli-* /usr/local/bin/apiarkcd apps/cli
cargo build --release
# Binary at: target/release/apiarkRun a collection and execute all tests/assertions.
# Run entire collection
apiark run ./my-collection
# Run a specific folder
apiark run ./my-collection/users
# Run a single request
apiark run ./my-collection/users/get-all-users.yaml
# With environment
apiark run ./my-collection --env production
# With data file (data-driven testing)
apiark run ./my-collection --data test-data.csv
# Multiple iterations
apiark run ./my-collection --iterations 5
# Delay between requests (ms)
apiark run ./my-collection --delay 500
# Stop on first failure
apiark run ./my-collection --bail# JSON output (default)
apiark run ./my-collection --reporter json
# JUnit XML (for CI/CD)
apiark run ./my-collection --reporter junit --output results.xml
# HTML report
apiark run ./my-collection --reporter html --output report.html
# Write to file
apiark run ./my-collection --reporter json --output results.jsonImport collections from other API tools.
# Auto-detect format
apiark import collection.json
# Specify format explicitly
apiark import collection.json --format postman
apiark import workspace.json --format insomnia
apiark import api-spec.yaml --format openapi
apiark import collection.bru --format bruno
apiark import requests.har --format har
apiark import collection.json --format hoppscotch
# Specify output directory
apiark import collection.json --output ./my-project
# Import from cURL
apiark import --curl 'curl -X GET https://api.example.com/users -H "Authorization: Bearer token"'Export collections to other formats.
# Export to Postman format
apiark export ./my-collection --format postman --output postman-collection.json
# Export to OpenAPI
apiark export ./my-collection --format openapi --output api-spec.yaml
# Export to cURL (all requests)
apiark export ./my-collection --format curlLint your collection for issues.
apiark lint ./my-collection
# Checks for: missing URLs, invalid YAML, unused variables, etc.Start a mock server from a collection.
# Start on default port (4000)
apiark mock ./my-collection
# Custom port
apiark mock ./my-collection --port 8080
# With CORS disabled
apiark mock ./my-collection --no-cors| Code | Meaning |
|---|---|
0 |
All tests passed |
1 |
One or more tests failed |
2 |
Collection/file not found |
3 |
Invalid configuration |
4 |
Network error |
name: API Tests
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Download ApiArk CLI
run: |
curl -L -o apiark https://github.com/berbicanes/apiark/releases/latest/download/apiark-cli-linux-x86_64
chmod +x apiark
- name: Run API tests
run: ./apiark run ./tests/api-collection --env ci --reporter junit --output results.xml
- name: Upload test results
if: always()
uses: actions/upload-artifact@v4
with:
name: api-test-results
path: results.xmlapi-tests:
stage: test
script:
- curl -L -o apiark https://github.com/berbicanes/apiark/releases/latest/download/apiark-cli-linux-x86_64
- chmod +x apiark
- ./apiark run ./tests/api-collection --env ci --reporter junit --output results.xml
artifacts:
reports:
junit: results.xmlpipeline {
agent any
stages {
stage('API Tests') {
steps {
sh 'curl -L -o apiark https://github.com/berbicanes/apiark/releases/latest/download/apiark-cli-linux-x86_64'
sh 'chmod +x apiark'
sh './apiark run ./tests/api-collection --env ci --reporter junit --output results.xml'
}
post {
always {
junit 'results.xml'
}
}
}
}
}The CLI respects environment variables for configuration:
# Set environment via env var
APIARK_ENV=production apiark run ./my-collection
# Verbose output
APIARK_LOG=debug apiark run ./my-collection
# Custom timeout (ms)
APIARK_TIMEOUT=30000 apiark run ./my-collection- Use
--reporter junitin CI/CD for test result integration - Use
--bailto fail fast in CI pipelines - Use
--datafor parametrized testing across environments - The CLI uses the same Rust HTTP engine as the desktop app — identical behavior
ApiArk — No login. No cloud. No bloat. | Website | GitHub | MIT License
Getting Started
Core Features
Advanced Features
Tools
Resources