RandNext API
48개 RandNext 도구를 위한 무료 읽기 전용 JSON 엔드포인트입니다. API 키 없이 숫자, 색상, 날짜, 주사위 결과, 엄선 항목 등을 생성할 수 있습니다. 버전 1의 기본 경로는 /api/v1입니다.
빠른 시작
curl https://randnext.com/api/v1/jokes/randomcurl "https://randnext.com/api/v1/tools/random-number?min=1&max=100&count=5&unique=true"const res = await fetch("https://randnext.com/api/v1/quotes/random?category=wisdom");
const quote = await res.json();
console.log(`“${quote.text}” — ${quote.author}`);엔드포인트
엄선 콘텐츠에는 목록, 랜덤, ID 조회 엔드포인트가 제공됩니다. 생성기 도구는 도구 slug 기반의 통일된 엔드포인트를 사용합니다.
| 요청 | 반환값 |
|---|---|
GET /api/v1/{type}/random | 랜덤 항목 1개 |
GET /api/v1/{type}?limit=1..20 | { data: Item[], count } — 중복 없는 랜덤 항목(기본 10개) |
GET /api/v1/{type}/{id} | ID로 항목 1개 조회(캐시 가능) |
GET /api/v1/tools/{slug} | 지원되는 유틸리티 도구 44개 중 하나에서 결과 생성 |
GET /api/v1/draws/{id} | 추첨 선택기 추첨 기록: 커밋, 참가자 목록 해시, 추첨 시간 이후 공개되는 시드와 당첨자를 포함합니다. 기한이 된 추첨을 읽으면 결과가 공개됩니다. |
GET /api/v1/draws/{id}/entries | 잠긴 참가자 목록을 text/plain으로 바이트 단위까지 그대로 반환합니다. SHA-256은 entries_hash입니다. 숨김 목록에는 주최자의 관리 토큰이 필요합니다. |
POST /api/v1/draws/{id}/cancel | 주최자 전용: 추첨 시간 전에 추첨을 취소합니다. 기록은 취소 상태로 계속 공개됩니다. |
PATCH /api/v1/draws/{id} | 주최자 전용: listed를 true 또는 false로 설정하거나 purge_entries를 true로 설정해 추첨 후 저장된 목록을 삭제합니다. |
GET /api/v1/health | 서비스 상태 |
GET /api/v1/openapi.json | OpenAPI 3.1 설명 |
추첨 주최자 작업은 Authorization: Bearer <관리 토큰>을 전송하며 randnext.com 또는 서버 측 코드에서만 허용됩니다. 다른 웹사이트에서는 사용할 수 없습니다. 추첨을 다시 계산하려면 randnext-draw-v1 명세를 사용하세요.
쿼리 매개변수
category— 농담: general, programming, dad, pun, animal, 명언: inspirational, life, work, humor, wisdom, 질문: icebreaker, classroom, friends, deep, would-you-rather, 단어: noun, verb, adjective, adverb.safety— family(가족용만) 또는 general(기본값: 가족용 및 일반용). 성인 콘텐츠는 반환하지 않습니다.- 단어 전용:
min_length,max_length(1~30), starts_with(글자 1개). - 생성기 매개변수는 도구마다 다릅니다. 공통 옵션은
count,min,max,group,unique,sort. 각 도구 페이지에 실행 가능한 요청 예제가 있습니다. - 알 수 없는 매개변수나 도구 허용 범위를 벗어난 값은 400 INVALID_PARAMETER를 반환합니다.
지원 도구
현재 48개 도구에 공개 엔드포인트가 있습니다. 도구 페이지에서 매개변수를 확인하고 바로 실행할 수 있는 curl 요청을 복사하세요.
응답
유틸리티 생성기는 통일된 응답 구조를 반환합니다:
{
"tool": "random-number",
"data": [
{ "value": "18" },
{ "value": "72" }
],
"count": 2,
"permalink": "https://randnext.com/random-number"
}엄선 콘텐츠 엔드포인트는 더 자세한 출처 및 라이선스 필드도 반환합니다:
{
"id": "qt_000001",
"type": "quote",
"text": "Well done is better than well said.",
"author": "Benjamin Franklin",
"category": "wisdom",
"tags": [],
"language": "en",
"safety_level": "family",
"source_url": null,
"license": "public-domain",
"attribution": "Poor Richard’s Almanack (1737)",
"permalink": "https://randnext.com/random-quote?id=qt_000001"
}attribution 값이 null이 아니면 콘텐츠 옆에 반드시 표시해야 합니다.
오류
{ "error": { "code": "RATE_LIMITED", "message": "Too many requests. Please try again later." } }| 400 | INVALID_PARAMETER | 매개변수가 잘못되었습니다. 예: 알 수 없는 카테고리 또는 범위를 벗어난 limit. |
| 401 | UNAUTHORIZED | 추첨 주최자 작업 전용: 관리 토큰이 없거나 올바르지 않습니다. |
| 404 | NOT_FOUND | 알 수 없는 유형 또는 ID, 삭제된 항목이거나 필터와 일치하는 항목이 없습니다. |
| 409 | CONFLICT | 추첨 주최자 작업 전용: 현재 추첨 상태에서는 이 작업을 수행할 수 없습니다. |
| 429 | RATE_LIMITED | 요청이 너무 많습니다. Retry-After에 표시된 시간만큼 기다리세요. |
| 500 | INTERNAL_ERROR | 서버에서 문제가 발생했습니다. |
| 503 | SERVICE_UNAVAILABLE | 일시적으로 사용할 수 없거나 점검 중입니다. |
제한 및 캐시
- IP당 분당 60회, 하루 1,000회 요청할 수 있습니다. 모든 응답에 X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset이 포함됩니다.
- 랜덤 엔드포인트는 캐시하지 않습니다. ID 조회 응답과 완료된 추첨 기록은 최대 1시간 캐시될 수 있습니다.
- 모든 출처의 GET 요청에 CORS가 열려 있습니다.
이용 약관
- 무료로 사용하려면 randnext.com로 연결되는 “Powered by RandNext” 링크를 잘 보이게 표시해야 합니다.
- attribution 필드가 있으면 항상 표시하세요.
- 전체 콘텐츠 라이브러리를 다운로드해 재게시하거나 재판매하지 마세요.
- SLA는 제공하지 않습니다. 제한을 변경하거나 악성 트래픽을 차단할 수 있습니다.
지원
공개 API는 현재 48개 도구를 지원합니다. 비밀번호, PIN, 비밀 토큰처럼 보안에 민감한 생성기는 브라우저에서만 실행되므로 생성된 비밀이 서버에 도달하지 않습니다. API 질문이나 문제 신고는 support@randnext.com로 엔드포인트와 응답 상태를 포함해 이메일을 보내세요.