# OpenAPI

OpenAPI Specification, formerly known as Swagger, is an API description format for RESTful services. In simple terms, it's a rulebook that makes sure everyone is on the same page

In the **Zelus Labs API**, we've adopted the OpenAPI standard to ensure our API documentation is precise, easy to understand, and provides a coherent developer experience. We've made sure that every endpoint, every input, and every response is clearly defined and documented, so you never have to guess what's expected or what you'll get in return.

## Diving Deeper

Our OpenAPI documentation for the **Zelus Labs API** gives you a detailed look into every corner of our service:

* **HTTP methods**: Descriptions for operations like GET, POST, DELETE, etc.
* **Parameters**: Detailed views into required or optional parameters for each endpoint.
* **Responses**: Comprehensive information about response structures, including status codes and example payloads.
* **Security**: Essential details about authentication prerequisites for endpoints.

## API Endpoint List

Here's a comprehensive list of our supported API endpoints, complete with their description:

| Endpoint                     | Description                                                                  |
| ---------------------------- | ---------------------------------------------------------------------------- |
| `GET /v1/account`            | Retrieves details of a user's account.                                       |
| `GET /v1/account/contracts`  | Fetch all contracts associated with a user's account.                        |
| `POST /v1/wallet/create`     | Creates a new wallet or retrieves an existing one based on provided details. |
| `GET /v1/wallet/nft/balance` | Checks if a specific NFT is in a wallet                                      |
| `GET /v1/wallet/nft/list`    | Lists all NFTs associated with a specific wallet.                            |
| `GET /v1/nft/metadata`       | Retrieves metadata information for a specific NFT token.                     |
| `POST /v1/nft/mint`          | Retrieves metadata information for a specific NFT token.                     |

## Common Response Data Structure

We believe in consistency. Our APIs typically respond with a structure which conforms JSON-RPC response specification:

```typescript
result: { 
    // ... payload
} | error? : IResponseError {
    code: string,
    message: string
}
```

This ensures you always know where to find the data you need and can handle any errors or messages that come your way.

## **Rate Limits**

To ensure fair usage and system stability, we impose certain rate limits:

* **Free Tier**: 60 requests per minute (RPM)
* **Premium Tier**: 300 RPM
* **Enterprise Tier**: Custom limits based on requirements.

Remember to handle `429 Too Many Requests` errors gracefully in your applications.


---

# 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.labs.zelus.io/zelus-labs-api/reference/introduction.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.
