Program Analysis API
API version: v1 · Last updated: September 2026
The Hoorbit Program Analysis API lets you submit legacy program source code — AS/400 RPG, RPGLE, COBOL, or CL — and receive back a structured analysis: complexity scoring, dependency mapping, and modernization recommendations. It is the same engine our consulting team uses during AS/400 modernization engagements, exposed as a REST API for enterprise clients under an executed SOW or MSA.
Need the full reference, including SDK examples, webhooks, and best practices? Download the complete product documentation.
Download PDF DocumentationBase URL
Authentication
All requests must include your API key as a bearer token in the Authorization header. API keys are issued from your account dashboard after subscribing to an API Services plan.
Submit a program for analysis
POST/v1/analyze
Submits a program's source code for asynchronous analysis. Returns immediately with a request ID you can use to poll for the result.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
| program_name | string | Yes | A label for the program being analyzed |
| language | string | Yes | One of: RPG, RPGLE, COBOL, CL |
| source | string | Yes | Base64-encoded program source code |
| callback_url | string | No | Webhook URL notified when analysis completes |
Response — 202 Accepted
Retrieve an analysis result
GET/v1/analyze/{id}
Returns the current status of a submitted analysis, and the full result once processing is complete.
Response — 200 OK (completed)
List recent analyses
GET/v1/analyze
Returns a paginated list of analyses submitted by your account. Supports limit and cursor query parameters.
Analysis status values
| Status | Meaning |
|---|---|
| queued | Received and waiting to be processed |
| processing | Analysis is currently running |
| completed | Analysis finished; result is available |
| failed | Analysis could not be completed; see error field |
Error codes
| HTTP status | Code | Meaning |
|---|---|---|
| 400 | invalid_request | Missing or malformed request field |
| 401 | unauthorized | Missing or invalid API key |
| 404 | not_found | No analysis exists with the given ID |
| 413 | payload_too_large | Source exceeds the 5 MB submission limit |
| 429 | rate_limited | Too many requests; see rate limits below |
| 500 | internal_error | Unexpected server error; safe to retry |
Rate limits
Rate limits are enforced per API key and reset on a rolling one-minute window. Current usage is returned in the X-RateLimit-Remaining response header.
| Plan | Requests/minute | Monthly analysis calls |
|---|---|---|
| Basic | 30 | 10,000 |
| Standard | 120 | 100,000 |
| Enterprise | Custom | Unlimited |
Webhooks
If you provide a callback_url when submitting an analysis, Hoorbit sends a POST request to that URL with the same payload returned by the GET endpoint once the analysis reaches a terminal status (completed or failed).
Support
For API access, integration help, or to report an issue, contact support@hoorbit.com.