API Documentation

RESTful API for Business Intelligence & Address Search

Quick Start

The LaddreSA.ai API allows you to programmatically search and geocode addresses at scale. Perfect for integrating address validation into your applications, CRMs, and workflows.

1. Get API Key

Upgrade to Professional or Business plan and generate your API key

2. Make Request

Use your API key in the Authorization header for all requests

3. Start Building

Integrate address search into your application with ease

Quick Example

curl -X POST https://api.laddrressa.ai/api/v1/search \
  -H "Authorization: Bearer sk_live_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{"address": "123 Main St, Boston, MA"}'

Authentication

All API requests require authentication using an API key. Include your API key in the Authorization header as a Bearer token.

Keep your API key secure!

Never share your API key publicly or commit it to version control. Store it securely as an environment variable.

Header Format

Authorization: Bearer sk_live_your_api_key_here

Example Request

curl -X GET https://api.laddrressa.ai/api/v1/status \
  -H "Authorization: Bearer sk_live_your_api_key_here"

Rate Limits

API rate limits vary by subscription plan. All responses include rate limit headers to help you track your usage.

Plan Monthly API Calls Bulk Limit Price
Pro 5,000 100 per request $49/mo
Business 15,000 500 per request $149/mo
Enterprise Unlimited 1000 per request $299/mo

Rate Limit Headers

X-RateLimit-Limit: 5000
X-RateLimit-Remaining: 4985
X-RateLimit-Reset: 2025-11-01T00:00:00Z

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

API Endpoints

POST /api/v1/search

Search and geocode a single address.

Request Body

{
  "address": "123 Main St, Boston, MA"
}

Response (200 OK)

{
  "success": true,
  "data": {
    "formatted": "123 Main Street, Boston, MA 02101, United States",
    "lat": 42.3601,
    "lon": -71.0589,
    "city": "Boston",
    "state": "Massachusetts",
    "country": "United States",
    "postcode": "02101",
    "confidence": 0.98
  },
  "rateLimit": {
    "limit": 5000,
    "remaining": 4995,
    "resetAt": "2025-11-01T00:00:00Z"
  }
}

cURL Example

curl -X POST https://api.laddrressa.ai/api/v1/search \
  -H "Authorization: Bearer sk_live_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{"address": "123 Main St, Boston, MA"}'

JavaScript Example

const response = await fetch('https://api.laddrressa.ai/api/v1/search', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer sk_live_your_api_key_here',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    address: '123 Main St, Boston, MA'
  })
});

const data = await response.json();
console.log(data.data.formatted); // "123 Main Street, Boston, MA 02101"
POST /api/v1/bulk Rate Limit Applies

Process multiple addresses in a single request. Limit varies by plan (200 for Professional, 500 for Business).

Request Body

{
  "addresses": [
    "123 Main St, Boston, MA",
    "456 Oak Ave, San Francisco, CA",
    "789 Pine Rd, Seattle, WA"
  ]
}

Response (200 OK)

{
  "success": true,
  "jobId": "bulk_1729622400_abc123",
  "results": [
    {
      "address": "123 Main St, Boston, MA",
      "status": "success",
      "data": {
        "formatted": "123 Main Street, Boston, MA 02101",
        "lat": 42.3601,
        "lon": -71.0589,
        "city": "Boston",
        "state": "Massachusetts",
        "country": "United States",
        "postcode": "02101",
        "confidence": 0.98
      }
    },
    {
      "address": "456 Oak Ave, San Francisco, CA",
      "status": "success",
      "data": { ... }
    }
  ],
  "summary": {
    "total": 3,
    "success": 2,
    "errors": 1,
    "processed": 3
  },
  "rateLimit": {
    "limit": 5000,
    "remaining": 4992,
    "resetAt": "2025-11-01T00:00:00Z"
  }
}
GET /api/v1/status

Get your current API status, plan information, and rate limit details.

Response (200 OK)

{
  "status": "operational",
  "plan": "professional",
  "limits": {
    "dailySearches": 500,
    "bulkSearchLimit": 200,
    "apiCallsMonthly": 5000
  },
  "features": {
    "bulkSearch": true,
    "apiAccess": true,
    "crmIntegrations": true
  },
  "rateLimit": {
    "limit": 5000,
    "current": 1234,
    "remaining": 3766,
    "resetAt": "2025-11-01T00:00:00Z"
  }
}

Error Handling

The API uses standard HTTP status codes to indicate success or failure. All errors include a JSON response with details.

400 Bad Request

Invalid request parameters

{
  "error": "Invalid request",
  "message": "Address must be a non-empty string",
  "example": {
    "address": "123 Main St, Boston, MA"
  }
}

401 Unauthorized

Missing or invalid API key

{
  "error": "Invalid API key",
  "message": "API key validation failed",
  "docs": "https://laddrressa.ai/api-docs.html"
}

403 Forbidden

API access not available in your plan

{
  "error": "API access not available",
  "message": "Your starter plan does not include API access. Please upgrade to Professional or Business plan.",
  "currentPlan": "starter",
  "upgradeUrl": "https://laddrressa.ai/membership.html"
}

429 Too Many Requests

Rate limit exceeded

{
  "error": "Rate limit exceeded",
  "message": "You have exceeded your monthly API call limit of 5000",
  "limit": 5000,
  "current": 5001,
  "resetAt": "2025-11-01T00:00:00Z",
  "upgradeUrl": "https://laddrressa.ai/membership.html"
}

API Key Management

Manage your API keys through the web interface or programmatically. You can create multiple keys for different environments (development, staging, production).

Create API Key

Generate a new API key with a custom name

POST /api/api-keys
{
  "name": "Production Server"
}

List API Keys

View all your API keys (without full keys)

GET /api/api-keys

Revoke API Key

Revoke a compromised or unused API key

DELETE /api/api-keys/:id

Usage Statistics

View API usage statistics and analytics

GET /api/api-keys/usage/stats

Security Note: API keys are shown in full only once during creation. Store them securely - you cannot retrieve the full key again later. We only store hashed versions of your keys for security.

SDKs & Libraries

JavaScript / Node.js

Use with fetch API or axios

View examples →

Python

Use with requests library

View examples →

PHP

Use with cURL or Guzzle

View examples →

Need Help?

Our support team is here to help you integrate the API