# Using the Enzoic API

The Enzoic APIs are implemented as a series of RESTful web services with JSON payloads. All APIs must be accessed via HTTPS and require [authentication.](#api-authentication) You can request a [trial API](https://www.enzoic.com/free-trial/) key.

As is standard for REST APIs, API call parameters for GET requests are submitted in the query string for GET requests.  For POST requests, parameters are submitted in the body as a JSON payload. The Content-Type header should always be set to application/json.

The API endpoint is:

```url
https://api.enzoic.com/v1/{service}
```

## API Authentication

All API endpoints require an HTTP basic authentication header. Your API Key is the username and your API Secret is the password portion of the header. The authentication header value is constructed in the standard fashion:

```javascript
authorization: basic Base64Encode({Your API Key}:{Your Secret})
```

So, for example, if your API Key is *b38f5a609f01442fb8ceb1aa02474903* and your Secret is *8e8a185dfa3e437f85afba165ce407b4*, the resultant authentication header would be

```javascript
authorization: basic YjM4ZjVhNjA5ZjAxNDQyZmI4Y2ViMWFhMDI0NzQ5MDM6OGU4YTE4NWRmYTNlNDM3Zjg1YWZiYTE2NWNlNDA3YjQ=
```

## API Responses

Enzoic uses HTTP status codes to indicate success/failure conditions for API calls. Below is a listing of the response codes used for all Enzoic API calls along with their meaning.

<table><thead><tr><th width="135" align="center">Response</th><th>Description</th></tr></thead><tbody><tr><td align="center">200</td><td>Success. Body will contain appropriate response.</td></tr><tr><td align="center">400</td><td>Required parameters were either missing or invalid.</td></tr><tr><td align="center">401</td><td>Authentication header either missing or API key/Secret were not valid. Check the response body for more information.</td></tr><tr><td align="center">403</td><td>Either the rate limit or monthly quota have been exceeded. Check the response body for more information.</td></tr><tr><td align="center">404</td><td>For GET calls, indicates the requested entity was not found.</td></tr><tr><td align="center">500</td><td>Unexpected error. Check the response body for more information.</td></tr></tbody></table>

Individual API calls may have additional response codes listed in the documentation for that call.

## Firewall IP Whitelist

If your firewall requires explicit rules for outbound traffic on port 443, please whitelist the following IP addresses:

| IP                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <p>13.235.194.196<br>13.48.121.56<br>13.48.96.148<br>15.206.40.21<br>18.196.181.48<br>3.10.99.236<br>3.124.25.136<br>3.231.37.171<br>3.24.50.155<br>3.24.93.121<br>3.9.236.117<br>34.214.110.33<br>35.153.27.185<br>35.163.59.86<br>35.168.85.109<br>35.180.249.238<br>35.181.124.196<br>52.192.30.99<br>52.199.52.28<br>52.212.218.163<br>52.48.142.122<br>52.51.10.65<br>52.79.68.108<br>52.89.197.157<br>54.172.238.226<br>54.180.42.79<br>54.233.211.111<br>54.233.236.93<br>75.2.9.104<br>99.83.177.145</p> |

## Proxy

There isn’t a facility for specifically setting an HTTP proxy in our Client Libraries, but this can be done via command line parameters. For example : <https://docs.oracle.com/javase/6/docs/technotes/guides/net/proxies.html>


---

# Agent Instructions: 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:

```
GET https://docs.enzoic.com/enzoic-api-developer-documentation/using-the-enzoic-api.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
