← 자료실

NCBI 계정과 API 키 발급

PDF 내려받기 ↓

유전자·게놈 데이터베이스 이용 안내 · 최종 확인 2026-08-22


API 키가 왜 필요한가

NCBI는 누구나 로그인 없이 쓸 수 있습니다. 다만 프로그램으로 자동 수집할 때 속도 제한이 걸립니다.

키 없음 키 있음
요청 속도 초당 3회 초당 10회
비용 무료 무료
발급 시간 2분

게놈 1,000건을 훑는다면 10분 걸릴 일이 3분으로 줄어듭니다. 발급이 무료이고 금방이니 받아두는 편이 낫습니다.

키가 필요 없는 경우

아래는 로그인도 키도 필요 없습니다. 그냥 쓰시면 됩니다.

키가 필요한 건 E-utilities로 자동 수집하는 코드를 돌릴 때입니다.


1단계 · 계정 만들기

⚠️ NCBI 자체 아이디는 2022년에 없어졌습니다. 반드시 다른 계정으로 연결해 로그인합니다. 새로 아이디·비밀번호를 만드는 방식이 아닙니다.

https://account.ncbi.nlm.nih.gov/ 로 접속합니다.

로그인 방법을 고르는 화면이 나옵니다. 편한 것을 고르시면 됩니다.

방법 추천 상황
Google 가장 간단. 구글 계정이 있으면 클릭 두 번
ORCID 연구자 식별번호가 있고 논문 실적과 연결하고 싶을 때
소속기관 로그인 대학 계정이 NCBI 연합인증에 등록된 경우
Microsoft 회사·학교 MS 계정을 쓰는 경우

처음 로그인하면 이름과 이메일 확인 화면이 한 번 나옵니다. 확인만 누르면 계정이 생성됩니다.


2단계 · API 키 발급

로그인한 상태에서 진행합니다.

  1. 오른쪽 위 자기 이름(또는 이메일) 클릭
  2. Account settings 선택 (바로 가기: https://account.ncbi.nlm.nih.gov/settings/)
  3. 아래로 내려 API Key Management 항목을 찾습니다
  4. Create an API Key 버튼 클릭

36자리 문자열이 화면에 나타납니다. 이게 API 키입니다.

예시 형식:  a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8

알아두실 점


3단계 · 키 보관

키를 코드 안에 직접 써 넣지 마세요. 실수로 공유하거나 GitHub에 올리면 그대로 노출됩니다.

이 연구실은 C:\Users\sdkpa\.secrets\ENVIRONMENT_VARIABLES.json 에 모아 보관합니다.

{
  "data_api_keys": {
    "NCBI_API_KEY": "여기에 발급받은 키"
  }
}

지켜야 할 것은 세 가지입니다.


4단계 · 쓰는 법

모든 NCBI 요청 주소 끝에 &api_key=키 를 붙이면 됩니다.

https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=protein&term=hyaluronan+synthase&api_key=발급받은키

파이썬 예시

import json, os, urllib.parse, urllib.request

KEY = json.load(open(os.path.expanduser('~/.secrets/ENVIRONMENT_VARIABLES.json'),
                     encoding='utf-8'))['data_api_keys']['NCBI_API_KEY']

params = {
    'db': 'protein',
    'term': 'hyaluronan synthase',
    'retmode': 'json',
    'api_key': KEY,
    'tool': 'my-research',          # 권장: 프로그램 이름
    'email': 'you@example.com',     # 권장: 문제 시 NCBI가 연락할 주소
}
url = 'https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?' + urllib.parse.urlencode(params)
print(json.load(urllib.request.urlopen(url))['esearchresult']['count'])

toolemail은 필수는 아니지만 NCBI가 권장합니다. 요청에 문제가 있을 때 차단 대신 연락을 받게 됩니다.

이 프로젝트에는 이미 scripts/ncbi.py 로 만들어져 있습니다. from ncbi import count, search, summary, fetch 로 바로 쓰시면 됩니다.


5단계 · 확인

키가 제대로 동작하는지 확인합니다.

import sys; sys.path.insert(0, 'scripts')
from ncbi import count
print(count('protein', 'hyaluronan synthase[Protein Name]'))

숫자가 나오면 정상입니다.


지켜야 할 이용 규칙

NCBI는 공공 무료 서비스입니다. 아래를 어기면 IP가 차단될 수 있습니다.

상황 지켜야 할 것
일반 요청 초당 10회를 넘기지 않기 (코드에 간격을 두세요)
100건 이상 대량 작업 주말 또는 평일 밤(미국 동부 기준 21시~5시)에 실행
대량 BLAST 결과를 조회할 때 간격을 충분히 두기. 1초마다 확인하면 차단 대상
전체 데이터가 필요할 때 E-utilities 대신 FTP 일괄 다운로드 사용

문제가 생기면

증상 원인 조치
API rate limit exceeded 요청이 너무 빠름 요청 간 간격을 0.11초 이상으로
Invalid api key 키 오타·앞뒤 공백 키 앞뒤 공백 제거, 재확인
갑자기 안 됨 키 재발급으로 이전 키 무효 새 키로 교체
응답이 계속 비어 있음 검색어 문법 문제 브라우저에서 같은 검색어로 먼저 확인
접속 자체가 막힘 대량 요청으로 IP 차단 몇 시간 뒤 재시도, email 파라미터 추가

참고 주소

용도 주소
계정 로그인 https://account.ncbi.nlm.nih.gov/
계정 설정 (키 발급) https://account.ncbi.nlm.nih.gov/settings/
E-utilities 안내 https://www.ncbi.nlm.nih.gov/books/NBK25501/
API 전체 목록 https://www.ncbi.nlm.nih.gov/home/develop/api/

마지막 주소에 여러 서비스가 나열되어 있는데, 각각 따로 키를 받는 게 아닙니다. 2단계에서 받은 키 하나로 전부 쓰실 수 있습니다.