인증
ActiCrawl API는 요청을 인증하기 위해 API 키를 사용합니다. 대시보드에서 API 키를 확인하고 관리할 수 있습니다.
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 키를 교체하세요:
- 새 API 키 생성
- 애플리케이션을 새 키로 업데이트
- 정상 작동 확인을 위한 테스트
- 이전 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
}
}
}