Automatically reverse engineers APIs by capturing traffic, generating documentation, and creating API clients. Ideal for operations teams to streamline API integration and maintenance. Connects to Python workflows and supports Claude agents.
git clone https://github.com/kalil0321/reverse-api-engineer.githttps://pypi.org/project/reverse-api-engineer/
[{"step":"Capture API traffic or provide existing documentation","action":"Use a proxy tool like Burp Suite, Charles Proxy, or mitmproxy to capture HTTP traffic from the [API_NAME] service. Alternatively, provide the API's OpenAPI/Swagger spec or Postman collection if available.","tip":"For best results, capture traffic during typical usage patterns including authentication flows and error cases."},{"step":"Generate the API client","action":"Run the reverse API engineer skill with the captured traffic or documentation. Specify the target language ([LANGUAGE]) and project name ([PROJECT_NAME]). For Python projects, this will generate a pip-installable package structure.","tip":"Include specific endpoints you need ([ENDPOINT_1], [ENDPOINT_2]) to focus the generation on relevant functionality."},{"step":"Integrate the client","action":"Copy the generated client code into your project. For Python, install dependencies with `pip install requests` (or the specified library). Update the base URL and authentication in the client initialization.","tip":"Test the client immediately with a simple endpoint to verify connectivity before implementing complex workflows."},{"step":"Extend and maintain","action":"Use the generated client as a foundation. Add custom methods for your specific workflows, implement retry logic for transient errors, and update the client when the API changes (re-run the reverse engineering process).","tip":"Set up automated tests that call the API directly to catch breaking changes early. Consider using the generated client in your CI/CD pipeline for integration testing."}]
Automatically generate Python API clients from web traffic for rapid development.
Capture and document API endpoints from complex web applications without manual effort.
Utilize AI agents to autonomously navigate and interact with web pages for data extraction.
Export collected data in structured formats like JSON and CSV for easy integration.
No install command available. Check the GitHub repository for manual installation instructions.
git clone https://github.com/kalil0321/reverse-api-engineerCopy the install command above and run it in your terminal.
Launch Claude Code, Cursor, or your preferred AI coding agent.
Use the prompt template or examples below to test the skill.
Adapt the skill to your specific use case and workflow.
Reverse engineer the [API_NAME] API by analyzing its traffic or documentation. Generate a complete API client in [LANGUAGE] with authentication handling, endpoint definitions, and error classes. Include a usage example for [ENDPOINT_1] and [ENDPOINT_2]. Output should be in a format suitable for direct integration into a [PROJECT_NAME] project.
```python
# Auto-generated API client for 'AcmeCorp Inventory Service' v2.1
# Generated on 2024-05-15 by AI Reverse API Engineer
# Usage: pip install requests
import requests
from typing import Optional, Dict, List
class AcmeCorpInventoryClient:
def __init__(self, api_key: str, base_url: str = "https://api.acmecorp.com/v2"):
self.api_key = api_key
self.base_url = base_url
self.session = requests.Session()
self.session.headers.update({
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json",
"X-Client-Version": "2.1.0"
})
def get_product(self, product_id: str) -> Dict:
"""Retrieve product details by ID"""
response = self.session.get(f"{self.base_url}/products/{product_id}")
response.raise_for_status()
return response.json()
def update_stock(self, product_id: str, quantity: int, location: str) -> bool:
"""Update inventory stock for a product"""
payload = {
"product_id": product_id,
"quantity": quantity,
"location": location,
"timestamp": "2024-05-15T14:30:00Z"
}
response = self.session.post(
f"{self.base_url}/inventory/update",
json=payload
)
response.raise_for_status()
return response.json().get("success", False)
def list_low_stock_products(self, threshold: int = 5) -> List[Dict]:
"""Get all products with stock below threshold"""
response = self.session.get(
f"{self.base_url}/inventory/low-stock",
params={"threshold": threshold}
)
response.raise_for_status()
return response.json().get("products", [])
# Example Usage
if __name__ == "__main__":
client = AcmeCorpInventoryClient(api_key="prod_abc123xyz456")
# Get product details
product = client.get_product("PRD-45678")
print(f"Product: {product['name']}, Current Stock: {product['stock']}")
# Update stock
success = client.update_stock("PRD-45678", 10, "WAREHOUSE-A")
print(f"Stock update {'succeeded' if success else 'failed'}")
# List low stock items
low_stock = client.list_low_stock_products(threshold=3)
print(f"Found {len(low_stock)} products below threshold:")
for item in low_stock:
print(f"- {item['name']}: {item['stock']} units")
```
**Generated Documentation Snippet:**
- **Base URL:** `https://api.acmecorp.com/v2`
- **Authentication:** Bearer token in Authorization header
- **Rate Limits:** 100 requests/minute per API key
- **Common Errors:**
- 401: Invalid API key
- 404: Resource not found
- 429: Rate limit exceeded
**Validation:**
- Tested against 15 API endpoints
- Verified authentication flow
- Confirmed all endpoints return expected response formatsYour one-stop shop for church and ministry supplies.
AI assistant built for thoughtful, nuanced conversation
Automate your browser workflows effortlessly
IronCalc is a spreadsheet engine and ecosystem
Enterprise workflow automation and service management platform
Automate your spreadsheet tasks with AI power
Take a free 3-minute scan and get personalized AI skill recommendations.
Take free scan