> For the complete documentation index, see [llms.txt](https://docs.growsurf.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.growsurf.com/developer-tools/rest-api/api-response-codes.md).

# API Response Codes

## Glossary

| **Response Code**                | **Messages**                                                                                                                                          | **Explanation**                                                                                                                                                                                                                                                                                                                                                                                                                           |
| -------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `200 OK`                         | The request was successful!                                                                                                                           | N/A                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| `400 Bad Request`                | Request validation failed on an input.                                                                                                                | <p>Check that your inputs are entered correctly.</p><p>Note that participant lookups return a <code>400</code> (not a <code>404</code>) when no participant exists for the given ID or email, and emailing a participant returns a <code>400</code> if they have unsubscribed.</p>                                                                                                                                                        |
| `402 Usage Limit`                | Usage limit exceeded.                                                                                                                                 | You've reached a plan limit (such as your participant usage limit, or your plan's program limit when creating a program) and will need to upgrade to the next tier.                                                                                                                                                                                                                                                                       |
| `402 Payment Method Required`    | You must add a payment method to your account to use the REST API for affiliate programs.                                                             | N/A                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| `403 Not Authorized`             | <p>You are not allowed to perform that action.</p><p><br>Or no valid participant access token provided.</p>                                           | <p>Your API key may be missing, revoked, contain a typo, lack the required scope, or be limited to different programs. You may also be trying to access a program outside the team or program list assigned to the API key.<br><br>Verify that your API key has the required scope and program access. To create or change keys in Settings, use an owner, Admin, or teammate with Manage API access.</p>                                 |
| `403 Paid Plan Required`         | A paid plan is required to use the GrowSurf REST API                                                                                                  | A paid plan is required to use the REST API with referral programs. For affiliate programs, a payment method on file is required instead (see `402 Payment Method Required`).                                                                                                                                                                                                                                                             |
| `403 Email Not Verified`         | The team owner email address must be verified to use this endpoint. Check the owner inbox, or resend it via `POST /v2/team/owner/verification-email`. | Program and resource endpoints remain locked until the owner verifies the email address. Check the team's GrowSurf verification state with `GET /v2/team`.                                                                                                                                                                                                                                                                                |
| `403 Account Disabled`           | This account has been disabled.                                                                                                                       | The team bound to the API key has been disabled. Please [contact support](https://app.growsurf.com/#contact_support) if you believe this is a mistake.                                                                                                                                                                                                                                                                                    |
| `404 Resource Not Found`         | The requested resource does not exist.                                                                                                                | You may be trying to request a resource that does not exist or was deleted.                                                                                                                                                                                                                                                                                                                                                               |
| `406 Invalid State`              | The resource is not in a state that permits this operation.                                                                                           | The resource cannot be changed from its current state — for example, approving or fulfilling a participant reward that has already been fulfilled, or approving a commission that has already been paid out.                                                                                                                                                                                                                              |
| `409 Conflict Duplicate Request` | Conflicting duplicate request.                                                                                                                        | <p>An identical request is already in progress — wait for it to complete before retrying.</p><p>When creating an account, a <code>409</code> means an account with this email already exists.</p>                                                                                                                                                                                                                                         |
| `422 Unprocessable Entity Error` | This endpoint is only available for referral programs. Your program is an affiliate program.                                                          | You may be trying to call an endpoint that is only valid to referral programs (or vice versa with affiliate programs).                                                                                                                                                                                                                                                                                                                    |
| `422 Participant Blocked`        | Participant was detected as a high-risk fraudster and was blocked from joining.                                                                       | <p>The person may be a high-risk fraudster, and has been blocked from entering the program. <a href="https://support.growsurf.com/article/195-what-does-the-growsurf-anti-fraud-system-entail">Learn more about how GrowSurf's anti-fraud system works</a>.<br><br>Please check that your program's anti-fraud settings are not set to <em>Strict</em>, or that you do not have the email or IP address blacklisted.</p>                  |
| `429 Too Many Requests`          | You have reached a rate limit.                                                                                                                        | <p>You have sent too many requests in a given time. Some operations (such as creating accounts or sending participant emails) have their own stricter limits.<br><br>See <a href="https://docs.growsurf.com/developer-tools/rest-api/api-guidelines#rate-limits">Rate Limits</a> and <a href="https://docs.growsurf.com/developer-tools/rest-api/api-guidelines#max-connections">Max Connections</a> for more details on rate limits.</p> |
| `5XX Internal Server Error`      | The GrowSurf server is inaccessible or offline -- that's our fault! Check for updates on our [status page](https://growsurf.com/status).              | N/A                                                                                                                                                                                                                                                                                                                                                                                                                                       |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.growsurf.com/developer-tools/rest-api/api-response-codes.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
