Welcome to API Inspector, a modular API testing and analysis tool designed for developers and QA engineers.

Installer uses Inno Setup modern wizard style installation. The installer will automatically install the .NET 9 runtime if necessary.
Silent install (no UI):
setup.exe /silent
Very silent (no UI, no progress window):
setup.exe /verysilent
Suppress reboot:
setup.exe /norestart
Force reboot if needed:
setup.exe /restart
Exclude desktop icon
setup.exe /TASKS="!desktopicon"
Override installation directory:
setup.exe /DIR="C:\Tools\API_Inspector"
Override Start Menu folder:
setup.exe /GROUP="API Tools"
Log installation
setup.exe /LOG="C:\Logs\api_inspector_install.log"
Silent uninstall:
"C:\Program Files\API_Inspector\unins000.exe" /silent
This example installs API Inspector silently, adds it to PATH, and logs the process:
API_Inspector_Setup.exe /verysilent /norestart
/TASKS=addtopath /LOG="C:\Logs\api_inspector.log"
test1.json and credentials.json in the working folder.
The Request Editor includes:
The Request view contains a dropdown for selecting the HTTP method, a textbox for the URL, and a Send button.
The result textbox shows the returned content or any error message.
The body textbox is used for requests that include a payload, such as POST.
GET
Retrieve a resource. No body. Safe and idempotent.
POST
Create a new resource or trigger an action. Request body usually required.
PUT
Replace an existing resource entirely. Idempotent.
PATCH
Partially update an existing resource. Not necessarily idempotent.
DELETE
Remove a resource. Idempotent in practice.
An operation is idempotent if applying it multiple times has the same effect as applying it once.

The Log View contains:
Logs can grow large and difficult to navigate, so several features help keep them manageable:

You can create simple assertion tests without coding.
To test a JSON value, use:
$.value equals expectedValue
You can add multiple assertions per request to validate different parts of the response. Typical checks include:
If an assertion fails, the test is marked as failed and the failure is shown in test results/logs.

Use Headers to add key/value metadata to the request.
Common examples:
Authorization: Bearer <token> for authenticated endpointsContent-Type: application/json when sending JSON in the request bodyAccept: application/json when you want JSON responsesNotes:
400 or 401 responses
Query parameters are appended to the URL after ? and are used to filter or control results.
Example:
/api/tests?project=Core&status=passed&page=2project=Core filters by projectstatus=passed filters by result statuspage=2 selects a specific pageRules:
&%20)Allow you to run all tests. Including subfolders ones.

Test Explorer scans the working folder and subfolders for saved test files. From this view you can:
Use this view to validate large test sets in one action before committing changes.

You can change authorisation settings here.
Settings are saved in the working folder in a file called credentials.json.
Typical use:
Keep credentials.json secure and avoid committing sensitive values to source control.

The Settings view allows you to customise the behaviour of the application.
Examples of configurable behaviour include:
Settings are intended to persist your preferred workflow between sessions.

The Paste-Response Mock API server lets you quickly spin up a mock endpoint from any HTTP response you already have—perfect for front‑end development, demos, and debugging when the real backend is unavailable or unstable.
API Inspector supports HAR import/export for interoperability with browsers and external tools.
Use cases:
.har file for sharing and analysis.How to use:
Behavior details:
log.entries array.Compatibility:
A set of lightweight httpbin‑style echo services for testing HTTP clients, debugging requests, and validating API behavior.
https://apiinspector.net/api/headers
Returns the exact headers sent by the client.
Example response:
{
"headers": {
"User-Agent": "API Inspector/0.7.0.2",
"X-Test": "123"
}
}
https://apiinspector.net/api/status/{code}
Returns a response with the HTTP status code you request.
/api/status/200 → 200 OK
/api/status/404 → 404 Not Found
/api/status/500 → 500 Internal Server Error
Redirect codes (301, 302, 307, 308) return a JSON message instead of performing a redirect, making them safe for testing.
https://apiinspector.net/api/anything
Echoes everything about the incoming request:
{
"method": "POST",
"path": "/api/anything/test?x=1",
"subpath": "test",
"args": { "x": "1" },
"headers": { ... },
"cookies": { },
"body": "{\"hello\":\"world\"}",
"json": { "hello": "world" },
"form": [],
"files": []
}
Perfect for debugging clients, verifying serialization, and inspecting raw requests.

A command-line version of the API Inspector that allows you to execute API tests from .api files.
*.api files in a directorycredentials.json in the search directory or AppData0 - All tests passed125 - One or more tests failed1 - Fatal errorInspector [searchPath]
searchPath (optional): Directory to search for *.api files. Defaults to the current directory.Run tests in current directory:
Inspector
Run tests in a specific folder:
Inspector "C:\Tests\Api"
Use the CLI in CI/CD pipelines and check the process exit code to fail builds when tests fail.
This chapter defines the core principles every API in your ecosystem must follow. These rules ensure long-term maintainability, predictable behavior, and a consistent developer experience.
Resource naming must be predictable and uniform across the entire API.
Use nouns, plural, lowercase Prefer flat structures (/users//orders), avoid deep nesting Never use verbs (/getUsers, /createOrder) Keep naming conventions consistent across all services
Examples
/users
/users/{id}
/users/{id}/orders
/orders/{id}/items
Versioning is a contract. Breaking changes require a new version.
Status codes must accurately reflect the outcome of the request. HTTP Status Codes are defined in RFC 9110 Common essentials:
Never return 200 with an error payload.
Collections must be paginated from day one to avoid breaking clients later. Supported strategies:
Example response:
{
"data": [...],
"meta": {
"cursor": "abc123",
"next_cursor": "def456"
}
}
Your API contract must be stable. Your database schema will change.
Protect your API and ensure fairness.
Clients must be able to retry safely.
Errors must be machine-readable and consistent across all services. Recommended envelope
{
"error": {
"code": "user_not_found",
"message": "User does not exist",
"details": {},
"request_id": "abc-123"
}
}
Follow RFC 9457-style problem details when possible. You can read more about JSON RFC 8259 and JSON Pointers RFC 6901
Security must be consistent and predictable.
Documentation is part of the product.
Use OpenAPI 3.1
Health checks must be lightweight and fast.
You cannot fix what you cannot see. Include:
Caching improves performance and reduces load.
Pick one style and stick to it across all services.
Define deletion semantics clearly.
Define server-side timeouts and client retry rules.
Breaking changes require a new version. Avoid:
A consistent response envelope simplifies client logic. Example
{
"data": {...},
"meta": {...}
}
All APIs must include modern security headers.
Define how and when endpoints are deprecated.
0.9 - 23.8.2026 POCO C# Generator — Generate clean C# models directly from API responses. Mock API Server — Spin up lightweight mock endpoints for testing and prototyping. Save Response — Persist any response for later inspection or comparison. OAuth Support — Full OAuth2 + PKCE flow handling with local callback listener. Highlight Toggle — Quickly switch syntax highlighting on/off. Idempotency Key Support — Automatically send and manage idempotency keys for safe retries. Updated to .NET 10.0 — Faster runtime, improved language features, and better performance across the app.
0.8 - 20.6.2026 Added: Data tests Added: HMAC tool Added: You can now popup windows Added: HAR import/export Added: More delete buttons for easy removal Logs names are now using PIDs
0.7 - 31.5.2026
0.6 - 6.5.2026
0.5 - 19.4.2026
0.4 - 25.3.2026
0.3 - 25.2.2026
0.2 - 4.1.2026
0.1 - 20.11.2025