Skip to content
Documentation

DevAPI Hub documentation

Guides and references for integrating DevAPI Hub APIs into your applications.

Quick start

1. Create an account

Sign up for a DevAPI Hub account to get started. You can register using your email address or connect with GitHub/Google for faster access.

Create account

2. Subscribe to an API

Browse the API catalogue and subscribe to the APIs you need. Each API has detailed documentation, code examples, and usage information.

3. Generate an API key

Once subscribed, open API Keys in your dashboard and generate a key for the subscribed API. You can create multiple keys for different projects.

4. Make your first API call

Include your API key in the request header:

cURL
curl -X GET "https://devapi.autoplannerx.com/api/v1/quotes-api/random" \
  -H "X-API-Key: YOUR_API_KEY"

Example response

JSON
{
  "quote": "The only way to do great work is to love what you do.",
  "author": "Steve Jobs",
  "category": "motivational"
}

Authentication

API key authentication

All API requests require authentication using an API key. Include your API key in the request header:

Header
X-API-Key: YOUR_API_KEY

The header name is case-insensitive — both X-API-Key and x-api-key work. You can also pass the key as a query parameter: ?api_key=YOUR_API_KEY

Example request

cURL
curl -X GET "https://devapi.autoplannerx.com/api/v1/quotes-api/random" \
  -H "X-API-Key: your-api-key-here"

Important: each API key is tied to a specific API. Make sure you generate a key for the API you want to use from your dashboard.

Security best practices

  • Never expose your API key in client-side code or public repositories
  • Rotate your keys regularly for enhanced security
  • Use different keys for different projects or environments
  • Revoke compromised keys immediately from your dashboard

Error responses

If authentication fails, you'll receive one of these error responses:

JSON
// 401 Unauthorized - Missing API Key
{
  "error": true,
  "message": "API Key is missing"
}

// 401 Unauthorized - Invalid API Key
{
  "error": true,
  "message": "Invalid API Key"
}

// 401 Unauthorized - API Key not for this service
{
  "error": true,
  "message": "Invalid API Key for this service"
}

// 404 Not Found - API not found
{
  "error": true,
  "message": "API not found"
}
MessageMeaning
API Key is missingThe X-API-Key header was not provided
Invalid API KeyThe API key does not exist or is inactive
Invalid API Key for this serviceThe key is valid but not associated with the requested API — generate a key for that API

Code examples

Ready-to-use examples for different languages. Each API's detail page includes examples for all of its endpoints.

JavaScript (Fetch API)

JavaScript
fetch('https://devapi.autoplannerx.com/api/v1/quotes-api/random', {
  method: 'GET',
  headers: {
    'X-API-Key': 'YOUR_API_KEY'
  }
})
.then(response => response.json())
.then(data => {
  console.log(data);
})
.catch(error => {
  console.error('Error:', error);
});

Python (requests)

Python
import requests

url = 'https://devapi.autoplannerx.com/api/v1/quotes-api/random'
headers = {
    'X-API-Key': 'YOUR_API_KEY'
}

response = requests.get(url, headers=headers)
data = response.json()
print(data)

PHP (cURL)

PHP
$apiKey = "YOUR_API_KEY";
$apiUrl = "https://devapi.autoplannerx.com/api/v1/quotes-api/list";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
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) {
    $quotes = json_decode($response, true);
    foreach ($quotes as $quote) {
        echo $quote['quote'] . " - " . $quote['author'] . "\n";
    }
} else {
    $error = json_decode($response, true);
    echo "Error: " . $error['message'];
}

Node.js (axios)

Node.js
const axios = require('axios');

axios.get('https://devapi.autoplannerx.com/api/v1/quotes-api/random', {
  headers: {
    'X-API-Key': 'YOUR_API_KEY'
  }
})
.then(response => {
  console.log(response.data);
})
.catch(error => {
  console.error('Error:', error.response?.data || error.message);
});

Quotes API endpoints

EndpointDescription
GET /api/v1/quotes-api/randomGet a random quote
GET /api/v1/quotes-api/listGet all available quotes
GET /api/v1/quotes-api/category/{category}Get a random quote from a category

Available categories: motivational, success, wisdom, life, technology

Example: get all quotes

cURL
curl -X GET "https://devapi.autoplannerx.com/api/v1/quotes-api/list" \
  -H "X-API-Key: YOUR_API_KEY"

Example response (list)

JSON
[
  {
    "quote": "The only way to do great work is to love what you do.",
    "author": "Steve Jobs",
    "category": "motivational"
  },
  {
    "quote": "Success is walking from failure to failure with no loss of enthusiasm.",
    "author": "Winston Churchill",
    "category": "success"
  }
]

E-Signature API

Send a PDF, list signers, and we handle the rest. Use the same X-API-Key header.

EndpointDescription
POST /api/v1/e-signature/sendUpload, create the request, and email signers
GET /api/v1/e-signature/requests/{id}Check status
GET /api/v1/e-signature/requests/{id}/downloadDownload the signed PDF
cURL
curl -X POST "https://devapi.autoplannerx.com/api/v1/e-signature/send" \
  -H "X-API-Key: YOUR_API_KEY" \
  -F "file=@contract.pdf" \
  -F "title=Employment Contract" \
  -F "signers=[{\"name\":\"Jane Doe\",\"email\":\"jane@example.com\"}]"

Visit any API's detail page to see code examples for all of its endpoints in multiple languages.

Rate limits

Rate limits ensure fair usage and system stability. Limits are applied per API key and reset based on your plan's period.

Rate limit tiers

PlanRequestsPeriod
Free100Hour
Premium1,000Hour
Enterprise10,000+Hour

Rate limit headers

Every API response includes rate limit information in the headers:

Headers
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 987
X-RateLimit-Reset: 1640995200

Handling rate limits

When you exceed your rate limit, you'll receive a 429 Too Many Requests response:

JSON
{
  "error": true,
  "message": "Rate limit exceeded",
  "retry_after": 3600
}

Best practices

  • Monitor your rate limit headers to avoid hitting limits
  • Implement exponential backoff when you receive 429 errors
  • Cache responses when possible to reduce API calls
  • Upgrade your plan if you consistently hit rate limits

Troubleshooting

401 Unauthorized

Problem: your API key is missing or invalid.

  • Verify you're including the X-API-Key header in your request (header name is case-insensitive)
  • Check that your API key is correct and hasn't been revoked
  • Ensure you're subscribed to the API you're trying to access
  • Each API key is tied to a specific API. If you get "Invalid API Key for this service", generate a new key for that API from your dashboard

429 Rate limit exceeded

Problem: you've exceeded your plan's rate limit.

  • Wait for the rate limit window to reset (check the X-RateLimit-Reset header)
  • Implement request caching to reduce API calls
  • Upgrade your plan for higher rate limits
  • Use multiple API keys to distribute load (Premium/Enterprise plans)

404 Not found

Problem: the API endpoint doesn't exist or the API is inactive.

  • Verify the endpoint URL is correct
  • Check the API documentation for the correct endpoint path
  • Check the API's current status on the status page

500 Internal server error

Problem: an error occurred on our servers.

  • Retry the request after a few moments
  • Check the status page for any ongoing issues
  • If the problem persists, contact support with the request details

CORS Browser requests blocked

Problem: cross-origin requests are blocked in the browser.

  • Make API calls from your backend server instead of directly from the browser
  • Use a proxy server to handle CORS
  • For Enterprise plans, contact us about CORS configuration

Getting help

Quick reference

Base URL
https://devapi.autoplannerx.com/api/v1/
Authentication
X-API-Key: YOUR_API_KEY
Response format
JSON
HTTP methods
GET, POST, PUT, DELETE