문서

문서

ActiCrawl을 사용하여 웹 스크래핑 워크플로를 자동화하는 방법을 알아보세요

인증

ActiCrawl API는 요청을 인증하기 위해 API 키를 사용합니다. 대시보드에서 API 키를 확인하고 관리할 수 있습니다.

API 키 받기

  1. ActiCrawl 계정에 가입하세요
  2. 대시보드로 이동하세요
  3. 사이드바에서 API 키를 클릭하세요
  4. 새 API 키 생성을 클릭하세요
  5. API 키를 복사하여 안전하게 보관하세요

중요: API 키는 민감한 정보입니다. 절대 공개적으로 공유하거나 버전 관리 시스템에 커밋하지 마세요.

API 키 사용하기

ActiCrawl API로 인증하는 방법은 두 가지가 있습니다:

1. HTTP 헤더 (권장)

X-API-Key 헤더에 API 키를 포함시킵니다:

bash
curl -X POST https://api.acticrawl.com/v1/scrape \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com"}'

2. 쿼리 매개변수

API 키를 쿼리 매개변수로 포함시킵니다:

bash
curl -X POST "https://api.acticrawl.com/v1/scrape?api_key=YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com"}'

참고: 쿼리 매개변수는 서버 접근 로그에 기록될 수 있으므로 헤더 방식이 더 안전합니다.

인증 예제

JavaScript (Node.js)

javascript
const axios = require('axios');

const apiKey = 'YOUR_API_KEY';
const apiUrl = 'https://api.acticrawl.com/v1/scrape';

async function scrapeWebsite(url) {
  try {
    const response = await axios.post(apiUrl, {
      url: url,
      formats: ['markdown', 'screenshot']
    }, {
      headers: {
        'X-API-Key': apiKey,
        'Content-Type': 'application/json'
      }
    });

    return response.data;
  } catch (error) {
    console.error('오류:', error.response.data);
  }
}

scrapeWebsite('https://example.com').then(console.log);

Python

python
import requests

api_key = 'YOUR_API_KEY'
api_url = 'https://api.acticrawl.com/v1/scrape'

def scrape_website(url):
    headers = {
        'X-API-Key': api_key,
        'Content-Type': 'application/json'
    }

    payload = {
        'url': url,
        'formats': ['markdown', 'screenshot']
    }

    response = requests.post(api_url, json=payload, headers=headers)

    if response.status_code == 200:
        return response.json()
    else:
        print(f"오류: {response.status_code} - {response.text}")
        return None

result = scrape_website('https://example.com')
print(result)

PHP

php
<?php
$apiKey = 'YOUR_API_KEY';
$apiUrl = 'https://api.acticrawl.com/v1/scrape';

$data = [
    'url' => 'https://example.com',
    'formats' => ['markdown', 'screenshot']
];

$ch = curl_init($apiUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'X-API-Key: ' . $apiKey,
    'Content-Type: application/json'
]);

$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

if ($httpCode === 200) {
    $result = json_decode($response, true);
    print_r($result);
} else {
    echo "오류: HTTP $httpCode - $response\n";
}
?>

Ruby

ruby
require 'net/http'
require 'json'
require 'uri'

api_key = 'YOUR_API_KEY'
api_url = 'https://api.acticrawl.com/v1/scrape'

uri = URI(api_url)
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

request = Net::HTTP::Post.new(uri)
request['X-API-Key'] = api_key
request['Content-Type'] = 'application/json'
request.body = {
  url: 'https://example.com',
  formats: ['markdown', 'screenshot']
}.to_json

response = http.request(request)

if response.code == '200'
  result = JSON.parse(response.body)
  puts result
else
  puts "오류: #{response.code} - #{response.body}"
end

API 키 보안 모범 사례

1. 환경 변수

API 키를 하드코딩하는 대신 환경 변수에 저장하세요:

bash
# .env 파일
ACTICRAWL_API_KEY=your_api_key_here
javascript
// Node.js
const apiKey = process.env.ACTICRAWL_API_KEY;
python
# Python
import os
api_key = os.environ.get('ACTICRAWL_API_KEY')

2. 서버 측 사용

항상 서버 측에서 API 키를 사용하세요. 클라이언트 측 코드에 노출시키지 마세요:

javascript
// ❌ 나쁨: 클라이언트 측 코드
fetch('https://api.acticrawl.com/v1/scrape', {
  headers: {
    'X-API-Key': 'YOUR_API_KEY' // 사용자에게 노출됨!
  }
});

// ✅ 좋음: 서버 측 프록시
// 클라이언트가 서버를 호출
fetch('/api/scrape', {
  method: 'POST',
  body: JSON.stringify({ url: 'https://example.com' })
});

// 서버가 키를 사용하여 ActiCrawl API 호출

3. 키 교체

정기적으로 API 키를 교체하세요:

  1. 새 API 키 생성
  2. 애플리케이션을 새 키로 업데이트
  3. 정상 작동 확인을 위한 테스트
  4. 이전 API 키 삭제

4. 키 권한 제한

여러 애플리케이션이 있다면 각각에 대해 적절한 권한을 가진 별도의 API 키를 생성하세요.

속도 제한

API 키는 플랜에 따라 속도 제한이 적용됩니다:

플랜 속도 제한 버스트 제한
Free 분당 10개 요청 20개 요청
Starter 분당 30개 요청 60개 요청
Professional 분당 60개 요청 120개 요청
Business 분당 120개 요청 240개 요청
Enterprise 맞춤형 맞춤형

속도 제한을 초과하면 429 Too Many Requests 응답을 받게 됩니다:

json
{
  "success": false,
  "error": {
    "code": "RATE_LIMIT_EXCEEDED",
    "message": "속도 제한을 초과했습니다. 60초 후에 다시 시도하세요.",
    "retry_after": 60
  }
}

오류 처리

인증 오류는 401 Unauthorized 응답을 반환합니다:

json
{
  "success": false,
  "error": {
    "code": "INVALID_API_KEY",
    "message": "유효하지 않거나 누락된 API 키"
  }
}

일반적인 인증 오류:

오류 코드 설명 해결 방법
INVALID_API_KEY API 키가 유효하지 않거나 삭제됨 API 키가 올바른지 확인
MISSING_API_KEY API 키가 제공되지 않음 요청에 API 키 포함
EXPIRED_API_KEY API 키가 만료됨 새 API 키 생성
SUSPENDED_API_KEY API 키가 일시 중지됨 지원팀에 문의

인증 테스트

간단한 요청으로 API 키를 테스트할 수 있습니다:

bash
curl -X GET https://api.acticrawl.com/v1/account \
  -H "X-API-Key: YOUR_API_KEY"

성공적인 응답은 API 키가 유효함을 확인합니다:

json
{
  "success": true,
  "data": {
    "email": "user@example.com",
    "plan": "Professional",
    "credits": {
      "used": 1250,
      "limit": 10000
    }
  }
}