All API requests require an x-api-key header with your API key.
curl -H "x-api-key: tp_live_your_key_here" \ https://toolpipe.io/api/v1/qr-code
API keys follow the format tp_live_xxxxxxxx. Create and manage keys from your dashboard.
Rate limits are enforced per API key using a sliding window algorithm. Limits depend on your plan:
| Plan | Requests/min |
|---|---|
| Free | 30 |
| Starter | 120 |
| Pro | 300 |
| Business | 1,000 |
When rate limited, the API returns 429 with a Retry-After header.
All endpoints return a consistent JSON envelope:
// Success
{
"success": true,
"data": { ... },
"meta": {
"endpoint": "/api/v1/qr-code",
"credits_used": 1,
"credits_remaining": 499,
"latency_ms": 47,
"request_id": "req_abc123..."
}
}
// Error
{
"success": false,
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "Rate limit of 120 requests/min exceeded",
"retry_after": 3
}
}Generate customizable QR codes
| Parameter | Type | Required | Description |
|---|---|---|---|
| content | string | Yes | Text or URL to encode |
| format | enum | No | png | svg | base64 (default: png) |
| size | integer | No | Width/height in px (default: 300, max: 2000) |
| color | string | No | Foreground hex color (default: #000000) |
| background | string | No | Background hex color (default: #FFFFFF) |
| error_correction | enum | No | L | M | Q | H (default: M) |
curl -X POST \
-H "x-api-key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"content":"https://example.com","format":"png","size":300}' \
https://toolpipe.io/api/v1/qr-codeCapture a rendered screenshot of any URL
| Parameter | Type | Required | Description |
|---|---|---|---|
| url | string | Yes | URL to screenshot |
| format | enum | No | png | jpeg | webp (default: png) |
| viewport_width | integer | No | Browser width (default: 1280) |
| viewport_height | integer | No | Browser height (default: 720) |
| full_page | boolean | No | Capture full page (default: false) |
curl -X POST \
-H "x-api-key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com"}' \
https://toolpipe.io/api/v1/screenshotAnalyze text for toxicity and harmful content using AI
| Parameter | Type | Required | Description |
|---|---|---|---|
| text | string | Yes | Content to analyze (max 10,000 chars) |
| categories | string[] | No | Specific categories to check |
| threshold | number | No | Confidence threshold 0-1 (default: 0.7) |
curl -X POST \
-H "x-api-key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello world","threshold":0.7}' \
https://toolpipe.io/api/v1/content-moderateExtract structured data from invoices and receipts using AI vision
| Parameter | Type | Required | Description |
|---|---|---|---|
| file_url | string | No | URL to fetch document from |
| file_base64 | string | No | Base64-encoded document |
| document_type | enum | No | invoice | receipt | auto (default: auto) |
| extract_line_items | boolean | No | Parse individual line items (default: true) |
curl -X POST \
-H "x-api-key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"file_url":"https://example.com/invoice.png"}' \
https://toolpipe.io/api/v1/invoice-parseCapture a screenshot of a TradingView chart for any ticker symbol
| Parameter | Type | Required | Description |
|---|---|---|---|
| symbol | string | Yes | Ticker symbol (e.g. NASDAQ:AAPL, BTCUSD) |
| interval | enum | No | 1 | 5 | 15 | 30 | 60 | 120 | 240 | D | W | M (default: D) |
| theme | enum | No | light | dark (default: dark) |
| style | integer | No | Chart style 0-9 (default: 1 = candles) |
| studies | string[] | No | Indicators to overlay (e.g. RSI@tv-basicstudies). Max 10. |
| format | enum | No | png | jpeg | webp (default: png) |
| viewport_width | integer | No | Width in px (default: 1280) |
| viewport_height | integer | No | Height in px (default: 720) |
| hide_side_toolbar | boolean | No | Hide drawing toolbar (default: true) |
| hide_top_toolbar | boolean | No | Hide top toolbar (default: false) |
curl -X POST \
-H "x-api-key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"symbol":"NASDAQ:AAPL","interval":"D","theme":"dark","style":1}' \
https://toolpipe.io/api/v1/tradingview-screenshotVerify and search Texas TDLR-regulated licenses across 39 industries. Data refreshed nightly from the Texas Department of Licensing and Regulation. Records are typically within 24 hours of the latest TDLR publication.
Verify a Texas TDLR license by number and optional type
| Parameter | Type | Required | Description |
|---|---|---|---|
| license_number | string | Yes | TDLR license number (e.g., TACLB012345) |
| license_type | string | No | License type filter (e.g., Electrician) |
| name | string | No | Owner/holder name filter |
curl -X POST \
-H "x-api-key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"license_number":"TACLB012345","license_type":"Air Conditioning"}' \
https://toolpipe.io/api/v1/tx-license-verifySearch Texas licensed professionals by name, trade, or location
| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | No | Owner/holder name (min 2 chars) |
| business_name | string | No | Business name (min 2 chars) |
| license_type | string | No | Trade/license type filter |
| county | string | No | Texas county name |
| city | string | No | City name |
| zip | string | No | ZIP code |
| status | enum | No | active | expired | all (default: active) |
| page | integer | No | Page number (default: 1) |
| per_page | integer | No | Results per page (default: 25, max: 100) |
curl -X POST \
-H "x-api-key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Smith","license_type":"Electrician","county":"Travis"}' \
https://toolpipe.io/api/v1/tx-contractor-searchVerify a Texas business or establishment license with fuzzy name matching
| Parameter | Type | Required | Description |
|---|---|---|---|
| business_name | string | No | Business name to search (min 2 chars) |
| license_number | string | No | Exact license number |
| license_type | string | No | License type filter |
| city | string | No | City filter |
curl -X POST \
-H "x-api-key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"business_name":"Cool Air Systems","city":"Austin"}' \
https://toolpipe.io/api/v1/tx-establishment-verifyValidate up to 50 Texas licenses in a single call
| Parameter | Type | Required | Description |
|---|---|---|---|
| licenses | array | Yes | Array of {license_type, license_number} objects (max 50) |
curl -X POST \
-H "x-api-key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"licenses":[{"license_type":"Electrician","license_number":"ELEC012345"}]}' \
https://toolpipe.io/api/v1/tx-license-bulk-verifySubscribe to change notifications for a Texas license
| Parameter | Type | Required | Description |
|---|---|---|---|
| action | enum | Yes | subscribe | unsubscribe | check |
| license_type | string | Yes | License type |
| license_number | string | Yes | License number |
| webhook_url | string | No | URL for change notifications (required for subscribe) |
| email_notify | boolean | No | Send email alerts (default: false) |
curl -X POST \
-H "x-api-key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"action":"subscribe","license_type":"Electrician","license_number":"ELEC012345","webhook_url":"https://myapp.com/webhooks/license"}' \
https://toolpipe.io/api/v1/tx-license-monitorGet aggregate statistics for Texas license types by trade and county
| Parameter | Type | Required | Description |
|---|---|---|---|
| license_type | string | No | Filter by license type |
| county | string | No | Filter by county |
| group_by | enum | No | license_type | county | status (default: license_type) |
curl -G \ -H "x-api-key: YOUR_KEY" \ --data-urlencode "county=Travis" \ --data-urlencode "group_by=license_type" \ https://toolpipe.io/api/v1/tx-trade-stats
| Code | HTTP | Description |
|---|---|---|
| INVALID_API_KEY | 401 | Invalid or missing API key |
| API_KEY_EXPIRED | 401 | API key has expired |
| API_KEY_DISABLED | 403 | API key has been revoked |
| RATE_LIMIT_EXCEEDED | 429 | Too many requests |
| INSUFFICIENT_CREDITS | 402 | No credits remaining (free plan) |
| INVALID_REQUEST | 400 | Invalid request parameters |
| ENDPOINT_ERROR | 500 | Endpoint processing failed |