Skip to main content
Every response from the 9Squid API follows the same envelope, whether it succeeds or fails. This page explains what each error looks like and how to handle it correctly.

Error Response Format

The message field is human-readable and safe to surface in logs. Never rely on its exact wording in code — use statusCode for branching logic.

HTTP Status Codes


Common Errors and Fixes

401 Unauthorized

Cause: The Authorization header is missing, the token has expired, or it is malformed. Fix: Ensure every request includes Authorization: Bearer <your_token>. Contact support@9squid.com if your token has expired.

403 Forbidden

Cause: Your token is valid but your role (Originator or Investor) does not have access to this endpoint. Fix: Check the Role-Based Access table. If you believe you should have access, contact support.

409 Conflict — Draft Deal Already Exists

Fix: Call PATCH /originator/loans/:dealId to regenerate the upload URL for the existing draft, or DELETE it and start fresh.

413 Payload Too Large

Fix: Ensure your loan tape file is under the platform’s size limit. For large datasets use the Bulk Loan Upload workflow which handles chunked multi-deal submission.

429 Too Many Requests

The 9Squid API enforces a rate limit of 100 requests per 60 seconds per token. Exceeding this returns a 429 with a Retry-After header indicating how many seconds to wait.
Fix: Back off for the duration specified in Retry-After before retrying. See the retry strategy below.

Retry Strategy

Not all errors are worth retrying. Follow this decision tree:

Exponential Backoff Example


Validating Before You Send

Most 400 errors can be avoided by validating locally first:
  • Loan type must be one of: Auto, Personal, Mortgage, Student, Business, Credit Card
  • File format must be text/csv or application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
  • Required fields are documented per endpoint in the API Reference
  • deal_id and file_name in the complete step must exactly match what was returned in the initiate step

Support

Before reporting an error, check status.9squid.com to see if it corresponds to an ongoing incident. If you encounter a 500 error or an undocumented error message, contact support@9squid.com with:
  • The full request (endpoint, headers, body — redact your token)
  • The full response body
  • A timestamp of when the error occurred