# Account Contracts

The `getAccountContracts` API method provides the client with a list of available NFT smart contracts that can be used with the Wallet and Minting APIs. Need to have NFT contracts set up, or want to add your own? [Reach out to us](mailto:kyle@zelus.io).

## Endpoint Details

| Description | Data                                                                                             |
| ----------- | ------------------------------------------------------------------------------------------------ |
| API Name    | [getAccountContracts](https://sandbox.api.labs.zelus.io/docs/#/Account/get_v1_account_contracts) |
| HTTP Method | GET                                                                                              |
| URL         | `/v1/account/contracts`                                                                          |

{% tabs %}
{% tab title="Request" %}

#### Headers

| Key          | Value              |
| ------------ | ------------------ |
| Content-Type | `application/json` |
| x-api-key    | API\_KEY           |

#### Parameters

There are no parameters required for this request.
{% endtab %}

{% tab title="Response" %}
The response will contain a list of available NFT contracts.

```tsx
{
    result: {
        contracts: [
            {
                id:   string, // id of contract, form "contract_UUID"
                name: string  // name of contract
            },
        ]
    } | error?: IResponseError   // Optional error information
}
```

#### Success response example

```json
{
    "result": {
        "contracts": [
            {
                "id": "contract_6635e90e-31f0-11ee-be56-0242ac120002",
                "name": "DEMO_DIGITAL_COLLECTIBLES"
            },
        ]
    }
}
```

#### Error messages

* Invalid API Key
  * `{ "code: 401, "message": "Invalid api key" }`
    {% endtab %}
    {% endtabs %}

## Examples

{% tabs %}
{% tab title="CURL" %}

```bash
curl -X GET 'https://sandbox.api.labs.zelus.io/v1/account/contracts' \
     -H "x-api-key: YOUR_API_KEY"
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://sandbox.api.labs.zelus.io/v1/account/contracts"
headers = {
    "x-api-key": "YOUR_API_KEY"
}

response = requests.get(url, headers=headers)
contracts = response.json()['result']['contracts'] # Parsing response

for contract in contracts:
    print(f"Contract ID: {contract['id']}")
    print(f"Contract Name: {contract['name']}\n")
```

{% endtab %}

{% tab title="NodeJS" %}

```javascript
const axios = require('axios');

const url = "https://sandbox.api.labs.zelus.io/v1/account/contracts";
const headers = {
    "x-api-key": "YOUR_API_KEY"
};

axios.get(url, { headers: headers }).then(response => {
    const contracts = response.data.result.contracts; // Parsing response
    
    contracts.forEach(contract => {
        console.log(`Contract ID: ${contract.id}`);
        console.log(`Contract Name: ${contract.name}\n`);
    });
}).catch(error => {
    console.error('Error:', error.response.data);
});
```

{% endtab %}
{% endtabs %}

### Notes

* The request to this endpoint does not require any specific parameters or form-data.
* The response will contain a list of active NFT contracts available for the customer. If an error occurs, an `IResponseError` object may be included in the response.
