API 문서

개요

디스호스트 봇 리스트 API를 사용하면 여러분의 봇 통계를 자동으로 업데이트할 수 있습니다. API 키는 봇 등록 및 소유권 인증 후 발급받을 수 있습니다.

🔑 API 키 발급

  1. 디스코드로 로그인합니다.
  2. "봇 등록" 페이지에서 봇 ID를 입력합니다.
  3. 발급받은 인증 코드를 봇 프로필의 "About Me"에 추가합니다.
  4. "내 봇" 페이지에서 "인증" 버튼을 클릭합니다.
  5. 인증 완료 시 API 키가 발급됩니다. (한 번만 표시되므로 안전하게 보관하세요!)

📊 POST /bots/stats

봇의 서버 수를 업데이트합니다.

Endpoint

POST https://listapi.dishost.kr/bots/stats

Headers (권장)

X-API-Key: YOUR_API_KEY
Content-Type: application/json

Request Body

{
  "server_count": 1234
}

Response

{
  "message": "통계가 업데이트되었습니다.",
  "isCertified": true
}

✅ 디스호스트 인증

디스호스트 호스팅의 IP 주소에서 통계를 제출하면 자동으로 "디스호스트 인증" 배지가 부여됩니다.

  • 인증 배지는 메인 페이지에서 ✅ 이모지로 표시됩니다.
  • 3일 이상 통계를 업데이트하지 않으면 인증이 해제됩니다.
  • 디스호스트 호스팅을 이용하지 않아도 봇을 등록하고 사용할 수 있습니다.

💻 예제 코드

curl

curl -X POST https://listapi.dishost.kr/bots/stats \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"server_count": 1234}'

JavaScript (Node.js)

const axios = require('axios');

async function updateStats(serverCount) {
  try {
    const response = await axios.post(
      'https://listapi.dishost.kr/bots/stats',
      { server_count: serverCount },
      {
        headers: {
          'X-API-Key': 'YOUR_API_KEY',
          'Content-Type': 'application/json'
        }
      }
    );
    console.log('통계 업데이트 성공:', response.data);
  } catch (error) {
    console.error('통계 업데이트 실패:', error.message);
  }
}

// Discord.js 예제
client.on('ready', () => {
  updateStats(client.guilds.cache.size);
  
  // 1시간마다 업데이트
  setInterval(() => {
    updateStats(client.guilds.cache.size);
  }, 60 * 60 * 1000);
});

Python

import requests

def update_stats(server_count):
    url = 'https://listapi.dishost.kr/bots/stats'
    headers = {
        'X-API-Key': 'YOUR_API_KEY',
        'Content-Type': 'application/json'
    }
    data = {'server_count': server_count}
    
    try:
        response = requests.post(url, json=data, headers=headers)
        response.raise_for_status()
        print('통계 업데이트 성공:', response.json())
    except requests.exceptions.RequestException as e:
        print('통계 업데이트 실패:', str(e))

# Discord.py 예제
@client.event
async def on_ready():
    update_stats(len(client.guilds))
    
    # 1시간마다 업데이트
    async def update_loop():
        while True:
            await asyncio.sleep(3600)
            update_stats(len(client.guilds))
    
    client.loop.create_task(update_loop())

🔍 GET /bots/check-vote

특정 유저가 오늘 투표했는지 확인합니다. (봇 소유자만 사용 가능)

Endpoint

GET https://listapi.dishost.kr/bots/check-vote?user_id=DISCORD_USER_ID

Headers

X-API-Key: YOUR_API_KEY

Query Parameters

user_id: Discord 유저 ID (필수)

Response

{
  "voted": true,
  "votedAt": "2025-11-08T12:34:56Z"
}

사용 예제

// Discord.js 예제 - 투표한 유저에게 리워드 지급
client.on('messageCreate', async (message) => {
  if (message.content === '!리워드') {
    const response = await fetch(
      `https://listapi.dishost.kr/bots/check-vote?user_id=${message.author.id}`,
      {
        headers: {
          'X-API-Key': 'YOUR_API_KEY'
        }
      }
    );
    const data = await response.json();
    
    if (data.voted) {
      message.reply('투표 감사합니다! 리워드가 지급되었습니다. 🎁');
      // 리워드 지급 로직
    } else {
      message.reply('먼저 투표해주세요! https://list.dishost.kr/bots/YOUR_BOT_ID');
    }
  }
});

⚠️ 주의사항

  • API 키는 절대 공개하거나 공유하지 마세요.
  • 통계는 최소 1시간에 한 번만 업데이트하는 것을 권장합니다.
  • 과도한 요청은 제한될 수 있습니다.
  • API 키 분실 시 "내 봇" 페이지에서 재발급받을 수 있습니다.