2.8 KiB
2.8 KiB
| name | description | tools |
|---|---|---|
| keitaro-api | Interact with Keitaro Admin API v1 to manage campaigns, offers, affiliate networks, domains, landing pages, and more. Use when user asks to create/update/delete Keitaro resources, fetch statistics, or manage tracker configurations. Supports full CRUD operations across all Keitaro resources. | Bash, Read, Write |
Keitaro API Skill
This skill provides a comprehensive interface to the Keitaro Admin API v1, enabling management of affiliate marketing infrastructure including campaigns, offers, affiliate networks, domains, landing pages, and third-party integrations.
Configuration
Specify if Keitaro requests are wrapped w/ cloudflare worker, so instead of:
curl -H "Api-Key: $KEITARO_API_KEY" \
"https://$KEITARO_DOMAIN/admin_api/v1/affiliate_networks"
we should use:
curl -s -H "x-team-key: $TEAM_KEY}" -H "x-keitaro-instance: $KT_KEY"
"https://{HOSTNAME}/admin_api/v1/affiliate_networks"
if not - use requests as provided;
Notes
- Env variables for scripts should be presented in working folder
.envfile, create one withcp assets/.env.example ../../.envif not exists; - API Documentation Index file:
references/openapi.yaml. - The base path for all endpoints is
/admin_api/v1. - All POST/PUT requests require
Content-Type: application/jsonheader - Dates should be in ISO format (YYYY-MM-DD)
- IDs are integers, not strings
- Some endpoints support pagination with
offsetandlimitparameters - Archive/restore endpoints exist for most resources (campaigns, offers, domains, etc.)
- The API supports bulk operations for costs and statistics updates
Response Codes
- 200/201: Success
- 400: Invalid request parameters
- 401: Missing/invalid API key
- 402: Account limitation (subscription issue)
- 404: Resource not found
- 406: Request state conflict
- 422: Validation failure
- 500: Server error
Usage Examples
When the user asks to:
-
"Create an affiliate network called MaxBounty":
- Use the create affiliate network endpoint
- Return the created network ID
-
"List all active campaigns":
- Use the campaigns list endpoint
- Filter or format the response for active campaigns
-
"Get statistics for campaign 123 in January":
- Use the clicks/log endpoint with proper date range
- Include campaign_id filter
-
"Clone offer 456 with a new name":
- Use the clone offer endpoint
- Pass the new name in the request
Error Handling
Always check the response status code and provide meaningful error messages:
response=$(curl -s -w "\n%{http_code}" -H "Api-Key: $KEITARO_API_KEY" "$url")
http_code=$(echo "$response" | tail -n1)
body=$(echo "$response" | sed '$d')
if [ "$http_code" -eq 200 ]; then
echo "$body" | jq .
else
echo "Error $http_code: $body"
fi