무료 · API 키 없음 · 요청 제한 없음

성경 API by Midvash

67개 언어, 107개 자유 이용 성경 번역본의 절, 장, 책. HTTPS로 받는 JSON이라 브라우저에서 바로 호출할 수 있습니다. 가입도 키도 필요 없습니다.

한 번의 호출로 절을 가져오세요

API를 바로 호출하세요. 설정도 인증도 필요 없습니다.

const res = await fetch('https://api.midvash.com/v1/kjv/john/3/16');
const { data, meta } = await res.json();
console.log(data.text);
console.log(meta.copyright); // show it with the text

이 API를 쓰는 이유

자유 이용 번역본 107개

개역한글판, KJV, BSB, 和合本, Louis Segond 등 67개 언어. 모두 퍼블릭 도메인 또는 공개 라이선스입니다.

출처 표기 포함

성경 본문이 담긴 모든 응답에 번역본의 저작권 문구가 함께 옵니다. 필드 하나만 읽으면 출처를 표기할 수 있습니다.

엣지에서 빠르게

Cloudflare 엣지에서 장기 캐시와 ETag로 제공됩니다. 재검증 시 본문 없는 304를 반환합니다.

키 없음, 제한 없음

가입도 API 키도 없고 429도 없습니다. CORS가 열려 있어 어떤 웹페이지에서든 호출할 수 있습니다.

번역본과 라이선스

67개 언어, 107개 번역본. 모두 퍼블릭 도메인 또는 공개 라이선스입니다. 번역본을 클릭하면 메타데이터와 라이선스 전문을 볼 수 있습니다.

본문 옆에 출처를 표시하세요

성경 본문이 담긴 모든 응답에는 번역본의 출처 표기가 들어 있습니다. v1은 meta.copyright, /v1/votd와 레거시 경로는 copyright입니다. 본문 가까이에 표시하세요. CC BY와 CC BY-SA 라이선스는 이를 요구합니다.

더 이상 제공하지 않는 번역본을 요청했나요?

모든 권리가 보호되는 번역본(NIV, ESV, NLT, NVI, ARA, NVT, NTV 등)은 제공하지 않습니다. 기존 링크는 계속 작동합니다. 같은 언어의 자유 이용 번역본이 반환되며, data.version에서 어떤 번역본인지 확인할 수 있습니다.

API 레퍼런스

모든 v1 엔드포인트. "실행"을 누르면 실제 요청을 보내고 JSON 응답을 확인할 수 있습니다.

성경 본문

GET /v1/{version}/{book}/{chapter}

전체 성경 장을 반환합니다

매개변수
version path 필수 번역본 slug (예: kjv, almeida-livre)
book path 필수 모든 언어의 책 slug
chapter path 필수 장 번호
preview query 선택 본문을 약 N자(40~2000)로 자릅니다. 툴팁용
GET /v1/{version}/{book}/{chapter}/{verse}

단일 절 또는 범위를 반환합니다 (16 또는 16-20)

매개변수
version path 필수 번역본 slug (예: kjv, almeida-livre)
book path 필수 모든 언어의 책 slug
chapter path 필수 장 번호
verse path 필수 단일 절 (16) 또는 범위 (16-20)
GET /v1/votd

오늘의 말씀: 같은 UTC 날짜에는 모두에게 같은 절, 번역본 저작권 문구 포함 (24시간 캐시)

매개변수
language query 선택 로케일 (en, pt-br, es, fr, de, it, zh, ru, ko). 기본값: en.
version query 선택 번역본 slug. 기본값: 선택한 로케일의 표준 번역본.

일괄 조회와 분석

GET /v1/passages

한 번의 호출로 최대 50개 구절을 가져옵니다. 잘못된 참조는 해당 위치에서만 오류로 표시됩니다.

매개변수
refs query 필수 쉼표로 구분한 참조 (최대 50개)
version query 필수 번역본 slug
GET /v1/parse

자유 형식 참조(9개 언어 모두 지원)를 책, 장, 절로 분석합니다

매개변수
q query 필수 자유 형식 참조, 예: 요한복음 3:16-18
version query 선택 선택. 검증 후 응답에 그대로 반환

번역본 및 책

GET /v1/versions

모든 성경 번역본을 나열합니다 (107개, 라이선스 문구 포함)

매개변수
language query 선택 ISO 언어 코드로 필터링 (전체 목록은 /v1/versions 참조)
GET /v1/versions/{slug}

특정 번역본의 메타데이터를 반환합니다

매개변수
slug path 필수 모든 언어의 slug
GET /v1/books

성경 66권 목록을 반환합니다

매개변수
testament query 선택 "old" 또는 "new"
GET /v1/books/{slug}

단일 책의 메타데이터 반환 (모든 언어의 slug 허용)

매개변수
slug path 필수 모든 언어의 slug

복사-붙여넣기 가이드

이미 쓰는 도구로 보내는 같은 요청.

한 절 가져오기 /v1/kjv/john/3/16

curl https://api.midvash.com/v1/kjv/john/3/16

한 언어의 번역본 목록 /v1/versions?language=pt-br

curl 'https://api.midvash.com/v1/versions?language=pt-br'

오늘의 말씀 /v1/votd?language=en

curl 'https://api.midvash.com/v1/votd?language=en'

응답 형식과 캐싱

모든 v1 엔드포인트는 같은 JSON 봉투와 같은 HTTP 캐시 규칙을 사용합니다.

성공 봉투

성공 응답은 페이로드를 최상위 data 필드로 감쌉니다. 목록과 본문 엔드포인트는 선택적 meta 객체를 추가하며, 여기에는 총계, 해석된 참조, 그리고 성경 본문이 있을 때 번역본의 copyright가 들어 있습니다.

{
  "data": {
    "version": "kjv",
    "book": "john",
    "bookName": "John",
    "chapter": 3,
    "verse": 16,
    "verseEnd": 16,
    "text": "For God so loved the world…",
    "verses": ["For God so loved the world…"]
  },
  "meta": {
    "reference": "John 3:16",
    "total": 1,
    "copyright": "King James Version (KJV)\nPublic Domain.\n…"
  }
}

HTTP와 캐싱

캐싱콘텐츠는 불변입니다 — 1년 동안 캐시됩니다(max-age=31536000, immutable). 새 콘텐츠는 본문을 바꾸지 않고 새 URL로 제공됩니다.
재검증모든 응답에 강한 ETag가 있습니다. If-None-Match를 보내면 본문 없이 304 Not Modified를 받습니다.
CORS모든 오리진에 열려 있습니다(Access-Control-Allow-Origin: *). 프록시 없이 브라우저에서 바로 호출하세요.
메서드GET, HEAD, OPTIONS. HEAD는 헤더만 반환하고 OPTIONS는 CORS 프리플라이트를 처리합니다.
예외 하나 — /v1/votd

오늘의 말씀은 data/meta 봉투 대신 평면 객체(reference, text, version, book_slug, chapter, verse_start, verse_end, url, copyright)를 반환하며 24시간 캐시됩니다.

오류

모든 오류는 하나의 형식과 안정적이고 기계가 읽을 수 있는 코드를 사용합니다.

{
  "error": {
    "code": "BOOK_NOT_FOUND",
    "message": "Book \"jhon\" not found. Did you mean \"john\"?",
    "details": { "didYouMean": "john" }
  }
}
코드HTTP발생 상황
INVALID_PARAMS 400 경로 또는 쿼리 값이 잘못되었습니다 — 예: 범위를 벗어난 장 번호.
NOT_FOUND 404 해당 경로가 /v1 아래에 없습니다.
VERSION_NOT_FOUND 404 주어진 slug와 일치하는 번역본이 없습니다 — 오류가 가장 가까운 slug를 제안합니다(didYouMean).
BOOK_NOT_FOUND 404 어떤 언어로도 slug와 일치하는 책이 없습니다 — 오류가 가장 가까운 slug를 제안합니다(didYouMean).
CHAPTER_NOT_FOUND 404 이 번역본에는 해당 장이 없습니다.
VERSE_NOT_FOUND 404 절 또는 범위가 장을 벗어났습니다.
INTERNAL_ERROR 500 우리 쪽에서 문제가 발생했습니다 — 재시도해도 안전합니다.

4xx 응답은 오류의 결정성에 따라 60초에서 24시간까지 캐시되고, 5xx는 절대 캐시되지 않아 재시도가 항상 오리진에 도달합니다.

66권 전체

slug는 모든 언어에서 동작하며 하이픈이 있어도 없어도 됩니다(2-samuel 또는 2samuel). 책을 클릭하면 메타데이터를 가져옵니다.

자주 묻는 질문

정말 무료인가요? API 키가 필요한가요?

네. 가입도, 키도, 요청 제한도 없습니다. ETag를 지켜 주시고(If-None-Match는 304를 반환), 구절마다 요청하는 대신 /v1/passages로 묶어서 요청해 주세요.

어떤 번역본이 있나요?

67개 언어, 107개 번역본이 있으며 모두 퍼블릭 도메인이거나 CC BY, CC BY-SA 같은 공개 라이선스입니다. 최신 목록은 /v1/versions에서 볼 수 있습니다.

NIV나 ESV는 왜 없나요?

해당 출판사가 모든 권리를 보유하고 있어 재배포하지 않습니다. 이런 번역본을 요청하면 같은 언어의 자유 이용 번역본이 반환되고, data.version에 어떤 번역본인지 표시됩니다.

앱에 무엇을 표시해야 하나요?

meta.copyright(/v1/votd와 레거시 경로는 copyright)에 담긴 번역본 출처 표기를 본문 옆에 표시하세요. 일부 라이선스는 동일조건 변경허락(CC BY-SA)이나 변경 금지(CC BY-ND) 같은 조건을 추가로 둡니다. 선택한 번역본의 라이선스 전문을 확인하세요.

OpenAPI 명세가 있나요?

네. /openapi.json(OpenAPI 3.1)과 /docs의 대화형 레퍼런스가 있습니다. AI 에이전트용으로는 mcp.midvash.com의 성경 MCP를 쓰세요.