가이드

Edgelink API로 단축 링크 대량 생성하기 (Python)

100개, 1000개의 캠페인 링크를 손으로 만들지 말고 Edgelink REST API와 Python으로 자동 생성하고 관리하는 방법을 코드 예제와 함께 안내합니다. CSV 입력 대량 생성 패턴까지 다룹니다.

Edgelink API로 단축 링크를 코드로 대량 생성하기 (Python 예제)

월요일 아침, 이번 주 캠페인용 단축 링크 80개를 만들어야 합니다. 소스 URL은 스프레드시트에 있고, 각 링크마다 UTM 파라미터가 다르게 붙어야 합니다. 대시보드 화면을 열고, 붙여넣고, 저장하고, 복사하고... 이 작업을 80번 반복하면 오전이 통째로 사라집니다. 더 심각한 건 중간에 오탈자가 끼어도 알아채기 어렵다는 점입니다.

Edgelink REST API를 쓰면 이 작업을 스크립트 한 번 실행으로 끝낼 수 있습니다. Python으로 CSV를 읽어 API를 호출하는 데 필요한 코드는 50줄 내외입니다.

Edgelink API Python 가이드 커버

손으로 100개 만들지 말자

링크가 10개 이하일 때는 UI가 편합니다. 그런데 캠페인 규모가 커지면 상황이 달라집니다. 채널 수 x 소재 수 x 랜딩 변형 수를 곱하면 단숨에 수십 개, 수백 개가 됩니다. 이때부터는 사람이 반복 작업을 하는 것보다 코드가 훨씬 정확하고 빠릅니다. API 연동에 한 번 투자하면 다음 캠페인부터는 스크립트 실행 한 번으로 끝납니다.

API 키 발급

Edgelink 대시보드 → 설정API 키 탭으로 이동합니다. 새 키 생성 버튼을 누르면 이름을 입력하는 창이 나옵니다. python-campaign-script 같이 목적을 알 수 있는 이름을 붙이고 생성합니다. 키는 발급 직후 한 번만 전체 값이 보이므로 안전한 곳에 바로 복사해 둡니다.

Free 플랜은 키를 2개까지, Pro 플랜은 10개까지 만들 수 있습니다. 환경(개발/운영)이나 팀(마케팅/개발)별로 키를 분리해 두면 나중에 특정 키만 폐기하거나 권한을 조정하기 편합니다.

첫 호출: 단축 링크 1개 생성

Python 표준 라이브러리에 없는 패키지는 requests 하나뿐입니다.

pip install requests

아래 코드로 링크 1개를 만들어 봅니다.

import requests

API_KEY = "el_your_api_key_here"  # 발급받은 API 키
BASE_URL = "https://api.edgelink.me/v1"

def create_short_link(original_url: str, custom_slug: str = None) -> dict:
    """단축 링크를 1개 생성하고 결과를 반환합니다."""
    headers = {
        "Authorization": f"Bearer {API_KEY}",
        "Content-Type": "application/json",
    }
    payload = {"url": original_url}
    if custom_slug:
        payload["slug"] = custom_slug

    response = requests.post(f"{BASE_URL}/links", json=payload, headers=headers)
    response.raise_for_status()  # 4xx/5xx 오류는 예외로 처리
    return response.json()

result = create_short_link("https://example.com/landing?utm_source=email")
print(result["shortUrl"])  # https://edgelink.me/abc123

응답 JSON에는 id, shortUrl, originalUrl, createdAt 등이 담겨 있습니다.

CSV 읽어 대량 생성 스크립트

실제 캠페인 상황에 맞게 CSV에서 URL 목록을 읽어 대량으로 처리하는 스크립트입니다.

import csv
import time
import requests

API_KEY = "el_your_api_key_here"
BASE_URL = "https://api.edgelink.me/v1"
INPUT_CSV = "campaign_urls.csv"   # original_url, slug(옵션) 컬럼 포함
OUTPUT_CSV = "short_links.csv"

def create_short_link(original_url: str, slug: str = None) -> str:
    headers = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}
    payload = {"url": original_url}
    if slug:
        payload["slug"] = slug
    resp = requests.post(f"{BASE_URL}/links", json=payload, headers=headers)
    resp.raise_for_status()
    return resp.json()["shortUrl"]

results = []
with open(INPUT_CSV, newline="", encoding="utf-8") as f:
    reader = csv.DictReader(f)
    for row in reader:
        try:
            short_url = create_short_link(row["original_url"], row.get("slug"))
            results.append({"original_url": row["original_url"], "short_url": short_url})
            print(f"완료: {short_url}")
        except requests.HTTPError as e:
            # 실패한 행은 기록하고 다음으로 계속 진행
            results.append({"original_url": row["original_url"], "short_url": f"ERROR: {e}"})
        time.sleep(0.2)  # rate limit 여유 확보

with open(OUTPUT_CSV, "w", newline="", encoding="utf-8") as f:
    writer = csv.DictWriter(f, fieldnames=["original_url", "short_url"])
    writer.writeheader()
    writer.writerows(results)

print(f"완료. {OUTPUT_CSV} 확인하세요.")

입력 CSV 형식 예시입니다.

original_url,slug
https://example.com/?utm_source=email&utm_campaign=may,email-may
https://example.com/?utm_source=kakao&utm_campaign=may,kakao-may
https://example.com/?utm_source=instagram&utm_campaign=may,ig-may

스크립트를 실행하면 short_links.csv에 원본 URL과 단축 URL 쌍이 저장됩니다. 이 파일을 스프레드시트에 붙여넣거나 메일 시스템에 바로 임포트할 수 있습니다.

에러 처리와 rate limit

API는 대부분의 오류에 표준 HTTP 상태 코드로 응답합니다. 실제로 자주 마주치는 케이스는 다음과 같습니다.

  • 400 Bad Request: URL 형식이 잘못됐거나 slug에 허용되지 않는 문자 포함
  • 409 Conflict: 이미 사용 중인 slug 지정
  • 429 Too Many Requests: rate limit 초과. Retry-After 헤더에 대기 시간(초)이 들어있습니다

스크립트에 time.sleep(0.2)를 넣어두면 대부분의 경우 rate limit에 걸리지 않습니다. 수천 건을 한 번에 처리해야 한다면 429 응답 시 Retry-After 값만큼 대기했다가 재시도하는 로직을 추가하면 안정적으로 돌릴 수 있습니다.


API 연동에 한 번 익숙해지면 같은 패턴으로 링크 조회, 클릭 수 확인, 링크 삭제까지 자동화할 수 있습니다. 더 복잡한 자동화가 필요하다면 Zapier·n8n 연동 가이드도 참고하세요. AI 에이전트 환경에서 쓰고 싶다면 MCP 서버 연결 가이드를 먼저 살펴보시면 됩니다.

Edgelink API 키 발급은 무료 플랜에서도 바로 시작할 수 있습니다.


Edgelink는 단축 URL을 만드는 데서 끝나지 않고, 클릭의 출처·시점·디바이스까지 추적해 채널 의사결정을 데이터로 받쳐주는 한국형 링크 인텔리전스 플랫폼입니다.