> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aihubmix.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Obter Informações da Conta via API

> Gerencie chaves, visualize contas e listas de modelos disponíveis na linha de comando usando o script utilitário CLI da AiHubMix.

A CLI da AiHubMix é um conjunto de scripts utilitários que permite gerenciar suas chaves de API da AiHubMix, consultar informações da conta e usar serviços de IA sem precisar passar por uma interface web. Essencialmente, ela encapsula chamadas de API (usando curl ou requests do Python) para conveniência via linha de comando.

<Tip>
  Recomendamos usar a nova ferramenta de linha de comando [AIHubMix CLI (Ferramenta de Linha de Comando)](/pt/api/aihubmix-cli): binário único, zero dependências de runtime (sem Python), oferece comandos baseados em recursos como `aihubmix keys list` e é amigável para `jq` e AI Agent. Esta página mantém o uso do antigo script Python para referência.
</Tip>

## Pré-requisitos

Antes de usar a CLI da AiHubMix, você precisa:

1. Uma [conta AIHubMix](https://aihubmix.com)
2. Gerar um Access Token clicando em "Generate System Access Token" na [página de Configurações da AIHubMix](https://aihubmix.com/setting);
3. Instalar as dependências necessárias do Python:

```bash theme={null}
pip install -U requests openai
```

<Info>
  O script aihubmix\_cli.py pode ser [baixado aqui](https://github.com/jerlinn/inferHub)
</Info>

## Visão Geral dos Recursos

A CLI da AIHubMix oferece as seguintes funcionalidades principais:

### Visão Geral dos Endpoints da API

| Endpoint                     | Método HTTP | Descrição                                                  |
| ---------------------------- | ----------- | ---------------------------------------------------------- |
| `/api/user/self`             | GET         | Recupera informações do usuário atual e saldo da conta     |
| `/api/token/`                | GET         | Recupera uma lista de todas as chaves                      |
| `/api/token/`                | POST        | Cria uma nova chave de API                                 |
| `/api/token/`                | PUT         | Atualiza uma chave de API existente                        |
| `/api/token/{token_id}`      | GET         | Recupera informações detalhadas de uma chave específica    |
| `/api/token/{token_id}`      | DELETE      | Exclui uma chave específica                                |
| `/api/token/search`          | GET         | Busca chaves (use `?keyword=search_term`)                  |
| `/api/user/token`            | GET         | Recupera chaves do usuário                                 |
| `/api/user/available_models` | GET         | Recupera lista de modelos disponíveis para o usuário atual |

### Recuperar Informações de Saldo

<CodeGroup>
  ```shell theme={null}
  # Using curl to retrieve balance, balance is quota / 500000
  curl -X GET "https://aihubmix.com/api/user/self" \
    -H "Authorization: YOUR_ACCESS_TOKEN" \
    -H "Content-Type: application/json"
  ```

  ```py theme={null}
  import requests
  import json

  # API Configuration
  api_url = "https://aihubmix.com"
  access_token = "YOUR_ACCESS_TOKEN"
  headers = {
      "Authorization": access_token,
      "Content-Type": "application/json"
  }

  # Retrieve account balance
  response = requests.get(f"{api_url}/api/user/self", headers=headers)
  if response.status_code == 200:
      data = response.json()
      if data.get("success", False):
          user_data = data.get("data", {})
          quota = user_data.get('quota', 0)
          usd_balance = quota / 500000  # $1 equals 500,000 quota
          print(f"Username: {user_data.get('username', 'Unknown')}")
          print(f"Display Name: {user_data.get('display_name', 'Unknown')}")
          print(f"Current Quota: {quota}")
          print(f"Available USD: ${usd_balance:.2f}")
      else:
          print(f"Request failed: {data.get('message', 'Unknown error')}")
  else:
      print(f"Request failed, status code: {response.status_code}")
  ```

  ```shell theme={null}
  python aihubmix_cli.py --url "https://aihubmix.com" --token "YOUR_ACCESS_TOKEN" --action get_balance
  ```

  ```shell theme={null}
  # Retrieve remaining quota for Key
  curl 'https://aihubmix.com/dashboard/billing/remain' \
    -H 'authorization: Bearer sk-***' \
  ```
</CodeGroup>

### Gerenciamento de Chaves

#### Criar Nova Chave

<CodeGroup>
  ```shell theme={null}
  curl -X POST "https://aihubmix.com/api/token/" \
    -H "Authorization: YOUR_ACCESS_TOKEN" \
    -H "Content-Type: application/json" \
    -d '{
      "name": "New Key Name",
      "expired_time": -1,
      "remain_quota": 500000,
      "unlimited_quota": false,
      "subnet": ""
    }'
  ```

  ```py theme={null}
  import requests
  import json

  # API Configuration
  api_url = "https://aihubmix.com"
  access_token = "YOUR_ACCESS_TOKEN"
  headers = {
      "Authorization": access_token,
      "Content-Type": "application/json"
  }

  # Create New Key
  payload = {
      "name": "New Key Name",
      "expired_time": -1,  # Never expires
      "remain_quota": 500000,
      "unlimited_quota": False,
      "subnet": ""
  }

  response = requests.post(f"{api_url}/api/token/", headers=headers, json=payload)
  if response.status_code == 200:
      data = response.json()
      if data.get("success", False):
          token_data = data.get("data", {})
          print(f"New Key: {token_data.get('key', 'Unknown')}")
          print(f"Key ID: {token_data.get('id', 'Unknown')}")
      else:
          print(f"Failed to create Key: {data.get('message', 'Unknown error')}")
  else:
      print(f"Request failed, status code: {response.status_code}")
  ```

  ```shell theme={null}
  python aihubmix_cli.py --url "https://aihubmix.com" --token "YOUR_ACCESS_TOKEN" --action create_token --name "New Key Name" --expires -1 --quota 500000
  ```
</CodeGroup>

#### Obter Lista de Chaves

<CodeGroup>
  ```shell theme={null}
  curl -X GET "https://aihubmix.com/api/token/?num=20" \ # Adjust num parameter to change the number of output data.
    -H "Authorization: YOUR_ACCESS_TOKEN" \
    -H "Content-Type: application/json"
  ```

  ```py theme={null}
  import requests
  import json

  # API Configuration
  api_url = "https://aihubmix.com"
  access_token = "YOUR_ACCESS_TOKEN"
  headers = {
      "Authorization": access_token,
      "Content-Type": "application/json"
  }

  # Retrieve Key List
  response = requests.get(f"{api_url}/api/token/", headers=headers)
  if response.status_code == 200:
      data = response.json()
      if data.get("success", False):
          tokens_data = data.get("data", [])
          print(f"Key List (Total {len(tokens_data)}):")
          for token in tokens_data:
              print(f"Key ID: {token.get('id', 'Unknown')}")
              print(f"Key Name: {token.get('name', 'Unknown')}")
              print(f"Key: {token.get('key', 'Unknown')}")
              print("---")
      else:
          print(f"Failed to retrieve Key list: {data.get('message', 'Unknown error')}")
  else:
      print(f"Request failed, status code: {response.status_code}")
  ```

  ```shell theme={null}
  python aihubmix_cli.py --url "https://aihubmix.com" --token "YOUR_ACCESS_TOKEN" --action get_tokens
  ```
</CodeGroup>

#### Buscar Chave

<CodeGroup>
  ```shell theme={null}
  curl -X GET "https://aihubmix.com/api/token/search?keyword=search_term" \
    -H "Authorization: YOUR_ACCESS_TOKEN" \
    -H "Content-Type: application/json"
  ```

  ```py theme={null}
  import requests
  import json

  # API Configuration
  api_url = "https://aihubmix.com"
  access_token = "YOUR_ACCESS_TOKEN"
  headers = {
      "Authorization": access_token,
      "Content-Type": "application/json"
  }

  # Search Keyword
  query = "search_term"

  # Search Key
  response = requests.get(f"{api_url}/api/token/search?keyword={query}", headers=headers)
  if response.status_code == 200:
      data = response.json()
      if data.get("success", False):
          tokens_data = data.get("data", [])
          print(f"Search Results (Total {len(tokens_data)}):")
          for token in tokens_data:
              print(f"Key ID: {token.get('id', 'Unknown')}")
              print(f"Key Name: {token.get('name', 'Unknown')}")
              print(f"Key: {token.get('key', 'Unknown')}")
              print("---")
      else:
          print(f"Failed to search Key: {data.get('message', 'Unknown error')}")
  else:
      print(f"Request failed, status code: {response.status_code}")
  ```

  ```shell theme={null}
  python aihubmix_cli.py --url "https://aihubmix.com" --token "YOUR_ACCESS_TOKEN" --action search_tokens --query "search_term"
  ```
</CodeGroup>

#### Atualizar Chave

<CodeGroup>
  ```shell theme={null}
  curl -X PUT "https://aihubmix.com/api/token/" \
    -H "Authorization: YOUR_ACCESS_TOKEN" \
    -H "Content-Type: application/json" \
    -d '{
      "id": "Key_ID",
      "name": "New Name",
      "expired_time": 86400,
      "remain_quota": 100000,
      "status": 1
    }'
  ```

  ```py theme={null}
  import requests
  import json

  # API Configuration
  api_url = "https://aihubmix.com"
  access_token = "YOUR_ACCESS_TOKEN"
  headers = {
      "Authorization": access_token,
      "Content-Type": "application/json"
  }

  # Update Key
  key_id = "Key_ID"  # Replace with the actual Key ID
  payload = {
      "id": key_id,
      "name": "New Name",
      "expired_time": 86400,  # Expires after 24 hours
      "remain_quota": 100000,
      "status": 1  # 1-Enabled, 0-Disabled
  }

  response = requests.put(f"{api_url}/api/token/", headers=headers, json=payload)
  if response.status_code == 200:
      data = response.json()
      if data.get("success", False):
          print(f"Key updated successfully")
          if "data" in data:
              token_data = data.get("data", {})
              print(f"Name: {token_data.get('name', 'Unknown')}")
              print(f"Expiration Time: {token_data.get('expired_time', 'Unknown')}")
      else:
          print(f"Failed to update Key: {data.get('message', 'Unknown error')}")
  else:
      print(f"Request failed, status code: {response.status_code}")
  ```

  ```shell theme={null}
  python aihubmix_cli.py --url "https://aihubmix.com" --token "YOUR_ACCESS_TOKEN" --action update_token --id "Key_ID" --name "New Name" --expires 86400 --quota 100000 --status 1
  ```
</CodeGroup>

#### Excluir Chave

<CodeGroup>
  ```shell theme={null}
  curl -X DELETE "https://aihubmix.com/api/token/Key_ID" \
    -H "Authorization: YOUR_ACCESS_TOKEN" \
    -H "Content-Type: application/json"
  ```

  ```py theme={null}
  import requests
  import json

  # API Configuration
  api_url = "https://aihubmix.com"
  access_token = "YOUR_ACCESS_TOKEN"
  headers = {
      "Authorization": access_token,
      "Content-Type": "application/json"
  }

  # Delete Key
  key_id = "Key_ID"  # Replace with the actual Key ID

  response = requests.delete(f"{api_url}/api/token/{key_id}", headers=headers)
  if response.status_code == 200:
      data = response.json()
      if data.get("success", False):
          print(f"Key deleted successfully")
      else:
          print(f"Failed to delete Key: {data.get('message', 'Unknown error')}")
  else:
      print(f"Request failed, status code: {response.status_code}")
  ```

  ```shell theme={null}
  python aihubmix_cli.py --url "https://aihubmix.com" --token "YOUR_ACCESS_TOKEN" --action delete_token --id "Key_ID"
  ```
</CodeGroup>

#### Obter Chave do Usuário

<CodeGroup>
  ```shell theme={null}
  curl -X GET "https://aihubmix.com/api/user/token" \
    -H "Authorization: YOUR_ACCESS_TOKEN" \
    -H "Content-Type: application/json"
  ```

  ```py theme={null}
  import requests
  import json

  # API Configuration
  api_url = "https://aihubmix.com"
  access_token = "YOUR_ACCESS_TOKEN"
  headers = {
      "Authorization": access_token,
      "Content-Type": "application/json"
  }

  # Retrieve User Key
  response = requests.get(f"{api_url}/api/user/token", headers=headers)
  if response.status_code == 200:
      data = response.json()
      if data.get("success", False):
          user_token = data.get("data", {}).get("token")
          print(f"User Key: {user_token}")
      else:
          print(f"Failed to retrieve User Key: {data.get('message', 'Unknown error')}")
  else:
      print(f"Request failed, status code: {response.status_code}")
  ```

  ```shell theme={null}
  python aihubmix_cli.py --url "https://aihubmix.com" --token "YOUR_ACCESS_TOKEN" --action get_user_token
  ```
</CodeGroup>

### Gerenciamento de Modelos

#### Obter Modelos Disponíveis para o Usuário

<CodeGroup>
  ```shell theme={null}
  curl -X GET "https://aihubmix.com/api/user/available_models" \
    -H "Authorization: YOUR_ACCESS_TOKEN" \
    -H "Content-Type: application/json"
  ```

  ```py theme={null}
  import requests
  import json

  # API Configuration
  api_url = "https://aihubmix.com"
  access_token = "YOUR_ACCESS_TOKEN"
  headers = {
      "Authorization": access_token,
      "Content-Type": "application/json"
  }

  # Retrieve User's Available Models
  response = requests.get(f"{api_url}/api/user/available_models", headers=headers)
  if response.status_code == 200:
      data = response.json()
      if data.get("success", False):
          models_data = data.get("data", [])
          print(f"User's Available Model List (Total {len(models_data)}):")
          for i, model in enumerate(models_data, 1):
              print(f"  {i}. {model}")
      else:
          print(f"Failed to retrieve user's available models: {data.get('message', 'Unknown error')}")
  else:
      print(f"Request failed, status code: {response.status_code}")
  ```

  ```shell theme={null}
  python aihubmix_cli.py --url "https://aihubmix.com" --token "YOUR_ACCESS_TOKEN" --action get_available_models
  ```
</CodeGroup>

## Saída em Formato JSON

Todos os comandos da CLI suportam a saída de resultados em formato JSON, facilitando o processamento programático:

```bash theme={null}
python aihubmix_cli.py --url "https://aihubmix.com" --token "YOUR_ACCESS_TOKEN" --action get_balance --json
```

## Solução de Problemas

Se encontrar problemas, você pode tentar as seguintes soluções:

1. **Problemas de Conexão**: Se o domínio principal falhar ao conectar, tente usar um domínio alternativo:

   ```bash theme={null}
   python aihubmix_cli.py --url "https://api.aihubmix.com" --token "YOUR_ACCESS_TOKEN" --action get_balance
   ```
2. **Access Token Inválido**: Certifique-se de que o access token fornecido é uma chave válida obtida no site da AIHubMix. O formato do access token geralmente é como `fd***`.
3. **Permissões Insuficientes**: Algumas operações podem exigir permissões específicas, então certifique-se de que sua conta tem permissões adequadas.
4. **Falha na Requisição**: Verifique sua conexão de rede ou tente novamente mais tarde.

## Observações

* O access token é diferente da chave de API regular usada para acessar modelos de IA.
* Cada usuário tem seu próprio access token do sistema, e o nível de acesso é determinado pelo papel do usuário (usuário comum, administrador ou usuário root).

***

Última atualização: 2026-06-01
