Appearance
GET /apiv2/prices Deprecated
Deprecated
Este endpoint foi descontinuado e será removido em uma versão futura. Por favor, migre para o novo endpoint GET /apiv2/pricing, que fornece períodos dinâmicos, filtragem de serviços, descontos por duração e um formato de resposta unificado.
Obtenha os preços atuais de aluguel de energy para diferentes períodos de tempo ao longo do dia.
Price may change during fulfillment
O preço retornado por este endpoint pode mudar enquanto um pedido estiver sendo processado. Um provedor de energy pode recusar uma solicitação de delegação; nesse caso, o Netts encaminha automaticamente o pedido para o próximo provedor disponível. O Netts tem o compromisso não apenas de oferecer o preço mais competitivo, mas também de garantir um fornecimento confiável de energy — portanto, um pedido pode ser atendido por um preço mais alto do que o cotado. Isso se aplica apenas a pedidos de 300.000 unidades de energy ou mais.
URL do Endpoint
GET https://netts.io/apiv2/pricesCabeçalhos da Requisição
| Cabeçalho | Obrigatório | Descrição | Valores |
|---|---|---|---|
| X-API-KEY | Sim | Sua chave de API | string |
| X-Real-IP | Sim | Endereço IP da lista de permissões | endereço IP |
| X-Format | Não | Formato de resposta (padrão: JSON estendido) | now, compact, short, short1h, count |
Parâmetros da Requisição
Nenhum parâmetro é necessário — retorna todas as informações de preços atuais.
Exemplos de Requisição
cURL
bash
curl -X GET https://netts.io/apiv2/prices \
-H "X-API-KEY: your_api_key" \
-H "X-Real-IP: your_whitelisted_ip"Python
python
import requests
url = "https://netts.io/apiv2/prices"
headers = {
"X-API-KEY": "your_api_key",
"X-Real-IP": "your_whitelisted_ip"
}
response = requests.get(url, headers=headers)
data = response.json()
if response.status_code == 200:
print(f"Status: {data.get('status')}")
print(f"Current UTC time: {data.get('current_utc_time')}")
print(f"Active period: {data.get('active_period')}")
print(f"Host price: {data.get('host_price')} TRX")
print("\nPrice periods:")
for period in data.get('periods', []):
is_active = period.get('is_active', False)
active_marker = " *ACTIVE*" if is_active else ""
print(f"\n{period.get('label')}{active_marker}:")
print(f" Time: {period.get('period')}")
prices = period.get('prices', {})
print(f" < 200k energy: {prices.get('less_than_200k', {}).get('price_sun')} sun")
print(f" = 131k energy: {prices.get('equal_131k', {}).get('price_sun')} sun")
print(f" > 200k energy: {prices.get('more_than_200k', {}).get('price_sun')} sun")
else:
print(f"Error: {data.get('message', 'Unknown error')}")Formato de Resposta Compacto
Novo na v2.1: Use o cabeçalho X-Format para obter uma resposta em texto compacto em vez da estrutura JSON completa.
Quando Usar
- Integração com sistemas de monitoramento
- Exibições simples de preços
- Rastreamento automatizado de preços
- Requisitos mínimos de largura de banda
Exemplo de Requisição
bash
curl -X GET https://netts.io/apiv2/prices \
-H "X-API-KEY: your_api_key" \
-H "X-Real-IP: your_whitelisted_ip" \
-H "X-Format: now"Exemplo de Resposta Compacta
text
Daytime Hours (11:00-21:00 UTC): price=27 sun, 65k=1.755 TRX (0.52$), 131k=3.537 TRX (1.05$), 1m=27.000 TRX (7.99$)Explicação do Formato de Resposta
O formato compacto fornece:
| Componente | Descrição | Exemplo |
|---|---|---|
| Rótulo do período | Período de preço ativo | Daytime Hours (11:00-21:00 UTC) |
| price=X sun | Preço por unidade de energy em SUN | price=27 sun |
| 65k=X.XXX TRX (X.XX$) | Custo para 65.000 unidades de energy | 65k=1.755 TRX (0.52$) |
| 131k=X.XXX TRX (X.XX$) | Custo para 131.000 unidades de energy | 131k=3.537 TRX (1.05$) |
| 1m=X.XXX TRX (X.XX$) | Custo para 1.000.000 unidades de energy | 1m=27.000 TRX (7.99$) |
Fórmula de Cálculo
TRX cost = (price_sun / 1,000,000) × energy_amount
USD cost = TRX_cost × current_TRX_USD_rateNota: A taxa de câmbio TRX/USD é recuperada da tabela chain_param e armazenada em cache por 30 minutos.
Tipo de Conteúdo
- Formato estendido:
application/json - Formato compacto:
text/plain
Exemplo em Python
python
import requests
url = "https://netts.io/apiv2/prices"
headers = {
"X-API-KEY": "your_api_key",
"X-Real-IP": "your_whitelisted_ip",
"X-Format": "now" # Solicitar formato compacto
}
response = requests.get(url, headers=headers)
if response.status_code == 200:
print("Compact price data:")
print(response.text)
# Output: Daytime Hours (11:00-21:00 UTC): price=27 sun, 65k=1.755 TRX (0.52$), ...
else:
print(f"Error: {response.status_code}")Formato de Resposta Ultracompacto (short1h)
Novo na v2.2: Use o cabeçalho X-Format: short1h para obter uma resposta em texto ultracompacto apenas com os cálculos de energy, sem o rótulo do período e o preço por unidade.
Quando Usar
- Painéis de monitoramento com espaço limitado
- Aplicativos móveis
- Requisitos mínimos de largura de banda
- Foco apenas nos custos finais
Exemplo de Requisição
bash
curl -X GET https://netts.io/apiv2/prices \
-H "X-API-KEY: your_api_key" \
-H "X-Real-IP: your_whitelisted_ip" \
-H "X-Format: short1h"Exemplo de Resposta Ultracompacta
text
65k=1.755 TRX (0.52$), 131k=3.537 TRX (1.05$), 1m=27.000 TRX (7.99$)Explicação do Formato de Resposta
O formato ultracompacto fornece apenas os cálculos essenciais de custo:
| Componente | Descrição | Exemplo |
|---|---|---|
| 65k=X.XXX TRX (X.XX$) | Custo para 65.000 unidades de energy | 65k=1.755 TRX (0.52$) |
| 131k=X.XXX TRX (X.XX$) | Custo para 131.000 unidades de energy | 131k=3.537 TRX (1.05$) |
| 1m=X.XXX TRX (X.XX$) | Custo para 1.000.000 unidades de energy | 1m=27.000 TRX (7.99$) |
Nota: Este formato exclui o rótulo do período e o preço por unidade de energy para obter o máximo de compacidade.
Tipo de Conteúdo
- Formato ultracompacto:
text/plain
Exemplo em Python
python
import requests
url = "https://netts.io/apiv2/prices"
headers = {
"X-API-KEY": "your_api_key",
"X-Real-IP": "your_whitelisted_ip",
"X-Format": "short1h" # Solicitar formato ultracompacto
}
response = requests.get(url, headers=headers)
if response.status_code == 200:
print("Ultra-compact price data:")
print(response.text)
# Output: 65k=1.755 TRX (0.52$), 131k=3.537 TRX (1.05$), 1m=27.000 TRX (7.99$)
else:
print(f"Error: {response.status_code}")Formato de Resposta de Contagem (count)
Novo na v2.3: Use o cabeçalho X-Format: count para obter cálculos de preços para pedidos em lote, mostrando os custos para 1, 2, 3, 5, 10 e 20 pedidos.
Quando Usar
- Exibições de preços para pedidos em lote
- Calculadoras de desconto por volume
- Ferramentas de comparação de preços
- Planejamento de quantidade de pedidos
- Estimativa de custos para múltiplos pedidos
Exemplo de Requisição
bash
curl -X GET https://netts.io/apiv2/prices \
-H "X-API-KEY: your_api_key" \
-H "X-Real-IP: your_whitelisted_ip" \
-H "X-Format: count"Exemplo de Resposta de Contagem
text
1-1.690 TRX (0.50$), 2-3.380 TRX (1.00$), 3-5.070 TRX (1.50$), 5-8.450 TRX (2.50$), 10-16.900 TRX (5.00$), 20-33.800 TRX (10.00$)Explicação do Formato de Resposta
O formato de contagem fornece preços calculados para diferentes quantidades de pedidos:
| Componente | Descrição | Exemplo |
|---|---|---|
| 1-X.XXX TRX (X.XX$) | Custo para 1 pedido (65.000 unidades de energy) | 1-1.690 TRX (0.50$) |
| 2-X.XXX TRX (X.XX$) | Custo para 2 pedidos (131.000 unidades de energy) | 2-3.380 TRX (1.00$) |
| 3-X.XXX TRX (X.XX$) | Custo para 3 pedidos (3 × 65.000 de energy) | 3-5.070 TRX (1.50$) |
| 5-X.XXX TRX (X.XX$) | Custo para 5 pedidos (5 × 65.000 de energy) | 5-8.450 TRX (2.50$) |
| 10-X.XXX TRX (X.XX$) | Custo para 10 pedidos (10 × 65.000 de energy) | 10-16.900 TRX (5.00$) |
| 20-X.XXX TRX (X.XX$) | Custo para 20 pedidos (20 × 65.000 de energy) | 20-33.800 TRX (10.00$) |
Fórmula de Cálculo
1 order: TRX cost = (price_sun_65k / 1,000,000) × 65,000
2 orders: TRX cost = (price_sun_131k / 1,000,000) × 131,000
3+ orders: TRX cost = (price_sun_65k / 1,000,000) × 65,000 × quantity
USD cost = TRX_cost × current_TRX_USD_rateNota: A taxa de câmbio TRX/USD é recuperada da tabela chain_param e armazenada em cache por 30 minutos.
Tipo de Conteúdo
- Formato de contagem:
text/plain
Exemplo em Python
python
import requests
url = "https://netts.io/apiv2/prices"
headers = {
"X-API-KEY": "your_api_key",
"X-Real-IP": "your_whitelisted_ip",
"X-Format": "count" # Solicitar formato de contagem
}
response = requests.get(url, headers=headers)
if response.status_code == 200:
print("Bulk order pricing:")
print(response.text)
# Output: 1-1.690 TRX (0.50$), 2-3.380 TRX (1.00$), 3-5.070 TRX (1.50$), ...
else:
print(f"Error: {response.status_code}")Resposta
Resposta de Sucesso (200 OK)
json
{
"status": "success",
"current_utc_time": "2025-09-02 06:50:39",
"current_utc_hour": 6,
"active_period": "05:00-07:00",
"last_update": "2025-09-02 08:05:03",
"host_price": 2.989,
"periods": [
{
"label": "Early Morning Hours (05:00-07:00 UTC)",
"period": "05:00-07:00",
"is_active": true,
"prices": {
"less_than_200k": {
"price_sun": 17
},
"equal_131k": {
"price_sun": 17
},
"more_than_200k": {
"price_sun": 17
}
}
},
{
"label": "Morning Hours (07:00-11:00 UTC)",
"period": "07:00-11:00",
"is_active": false,
"prices": {
"less_than_200k": {
"price_sun": 17
},
"equal_131k": {
"price_sun": 17
},
"more_than_200k": {
"price_sun": 17
}
}
}
]
}Campos da Resposta
| Campo | Tipo | Descrição |
|---|---|---|
| status | string | Sempre "success" para solicitações bem-sucedidas |
| current_utc_time | string | Hora atual do servidor em UTC |
| current_utc_hour | integer | Hora atual em UTC (0-23) |
| active_period | string | Período de preços atualmente ativo |
| last_update | string | Última vez em que os preços foram atualizados |
| host_price | number | Preço atual do host em TRX |
| periods | array | Matriz de todos os períodos de preços |
| periods[].label | string | Nome legível do período |
| periods[].period | string | Intervalo de tempo (HH:MM-HH:MM) |
| periods[].is_active | boolean | Indica se este período está ativo no momento |
| periods[].prices.less_than_200k.price_sun | integer | Preço em SUN para energy < 200.000 unidades |
| periods[].prices.equal_131k.price_sun | integer | Preço em SUN para exatamente 131.000 unidades |
| periods[].prices.more_than_200k.price_sun | integer | Preço em SUN para energy > 200.000 unidades |
Categorias de Quantidade de Energy
| Categoria | Descrição | Faixa de Energy |
|---|---|---|
| less_than_200k | Pequenos pedidos | < 200.000 unidades de energy |
| equal_131k | Pedidos padrão | Exatamente 131.000 unidades de energy |
| more_than_200k | Grandes pedidos | > 200.000 unidades de energy |
Períodos de Tempo
A API retorna preços para 5 períodos de tempo diferentes:
| Período | Intervalo de Tempo (UTC) | Descrição |
|---|---|---|
| Early Morning | 05:00-07:00 | Período de menor demanda |
| Morning | 07:00-11:00 | Início do horário comercial |
| Daytime | 11:00-21:00 | Horário de pico comercial |
| Evening | 21:00-23:00 | Atividade noturna |
| Night | 23:00-05:00 | Período de menor demanda |
Limites de Taxa
Os seguintes limites de taxa se aplicam a este endpoint (por endereço IP):
| Período | Limite | Descrição |
|---|---|---|
| 1 minuto | 1 requisição | Máximo de 1 requisição por minuto |
| 1 hora | 60 requisições | Máximo de 60 requisições por hora |
Cabeçalhos de Limite de Taxa
http
RateLimit-Limit: 1
RateLimit-Remaining: 0
RateLimit-Reset: 21
X-RateLimit-Limit-Minute: 1
X-RateLimit-Remaining-Minute: 0
X-RateLimit-Limit-Hour: 60
X-RateLimit-Remaining-Hour: 59
Retry-After: 21Limite de Taxa Excedido (429)
json
{
"message": "API rate limit exceeded"
}Respostas de Erro
Erro de Autenticação (401)
json
{
"status": "error",
"code": 401,
"message": "Invalid API key or IP not in whitelist"
}Erro Interno do Servidor (500)
json
{
"status": "error",
"message": "Internal server error"
}Notas
- Nenhum corpo de requisição é necessário — esta é uma requisição GET
- Todos os preços estão em SUN (1 TRX = 1.000.000 SUN)
- Os preços variam de acordo com a quantidade de energy e a hora do dia (UTC)
- Período ativo: Muda ao longo do dia com base na demanda
- Limite de taxa: Limites rigorosos devido a operações que demandam uso intensivo do banco de dados
- Atualizações de preços: Os preços são atualizados periodicamente a partir do banco de dados
- Fusos horários: Todos os horários estão em UTC