Skip to main content

Quickstart Guide

Get up and running with the North API in just a few minutes.

Prerequisites

Step 1: Test your connection

Let’s verify your API key works by fetching your account info:
curl -X GET \
  "https://api.northreports.com/v1/users/me" \
  -H "Authorization: Bearer north_sk_live_YOUR_API_KEY"
You should see your team information and API key details.

Step 2: List your reports

Fetch all your existing North reports:
curl -X GET \
  "https://api.northreports.com/v1/reports" \
  -H "Authorization: Bearer north_sk_live_YOUR_API_KEY"

Step 3: Create a new report

Let’s create a North report programmatically:
curl -X POST \
  "https://api.northreports.com/v1/reports" \
  -H "Authorization: Bearer north_sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "address": "123 Main Street",
    "city": "Austin",
    "state": "TX",
    "zip": "78701",
    "price": 450000,
    "bedrooms": 3,
    "bathrooms": 2,
    "square_feet": 1850,
    "year_built": 2010,
    "property_type": "Single Family"
  }'
The report is created as a draft by default. You can update it or publish it later.

Step 4: Update the report

Add more details to your report:
curl -X PATCH \
  "https://api.northreports.com/v1/reports/REPORT_ID" \
  -H "Authorization: Bearer north_sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "description": "Beautiful corner lot with mature trees",
    "executive_summary": "This charming 3-bed home offers excellent value in a prime Austin location."
  }'

Understanding rate limits

Every response includes rate limit headers:
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 985
X-RateLimit-Reset: 1705774800
  • Limit: Maximum requests per hour
  • Remaining: How many you have left
  • Reset: Unix timestamp when your quota resets

Error handling

Always check for errors in your code:
const response = await fetch('https://api.northreports.com/v1/reports', {
  headers: { 'Authorization': `Bearer ${API_KEY}` }
});

if (!response.ok) {
  const error = await response.json();
  console.error(`Error ${error.error.status}: ${error.error.message}`);
  return;
}

const data = await response.json();
// Process successful response

Next steps