API Builder — Real-World Examples
Three complete integrations built from scratch, demonstrating different features of the API Builder.
Example 1: Weather API
A common first integration — fetching current weather data.
Gathering information from docs:
- Base URL:
https://api.openweathermap.org/data/2.5 - Auth: API Key (passed as a query parameter named
appid) - Endpoint:
GET /weatherwithq(city name) andunitsparameters
API Builder Configuration
| Step | Field | Value |
|---|---|---|
| General | Display Name | OpenWeatherMap |
| General | Base URL | https://api.openweathermap.org/data/2.5 |
| General | Auth Type | API Key |
| Endpoint | Method | GET |
| Endpoint | Path | /weather |
| Endpoint | Summary | Get current weather for a city |
Parameters
| Name | In | Required |
|---|---|---|
q | Query | ✅ Yes |
units | Query | ❌ No |
appid | Query | ✅ Yes |
Sample Response → Output Fields
{
"main": { "temp": 72.5, "humidity": 65, "pressure": 1013 },
"weather": [{ "description": "clear sky", "icon": "01d" }],
"name": "London"
}| Output Label | JSON Path |
|---|---|
| Temperature | main.temp |
| Humidity | main.humidity |
| Pressure | main.pressure |
| Description | weather[*].description |
| CityName | name |
Example 2: CRM Customer Lookup
Fetching a specific customer record by ID — demonstrates path parameters and root accessors.
API Builder Configuration
| Step | Field | Value |
|---|---|---|
| General | Display Name | Acme CRM |
| General | Base URL | https://api.acmecrm.com/v2 |
| General | Auth Type | Bearer Token |
| Endpoint | Method | GET |
| Endpoint | Path | /customers/{customerId} |
| Endpoint | Summary | Get customer by ID |
Parameters
| Name | In | Required |
|---|---|---|
customerId | Path | ✅ Yes |
Sample Response → Output Fields
{
"customer": {
"id": "CUST-1234",
"name": "Jane Smith",
"email": "jane@example.com",
"company": "Acme Corp",
"lifetime_value": 12500.00,
"tags": ["enterprise", "active"]
}
}Root Accessor: customer
| Output Label | JSON Path |
|---|---|
| CustomerId | id |
| Name | name |
email | |
| Company | company |
| LifetimeValue | lifetime_value |
Why use a Root Accessor here? The actual customer data is nested inside a customer wrapper. Setting Root Accessor to customer means field paths are shorter and cleaner — name instead of customer.name.
Example 3: Paginated List API
Fetching a list of recent transactions with pagination — demonstrates query parameters, array response handling, and nested field extraction.
API Builder Configuration
| Step | Field | Value |
|---|---|---|
| General | Display Name | Payment Gateway |
| General | Base URL | https://api.payments.io/v1 |
| General | Auth Type | API Key |
| Endpoint | Method | GET |
| Endpoint | Path | /transactions |
| Endpoint | Summary | List recent transactions |
Parameters
| Name | In | Required |
|---|---|---|
limit | Query | ❌ No |
page | Query | ❌ No |
status | Query | ❌ No |
Sample Response → Output Fields
{
"results": [
{
"id": "txn_001",
"amount": 150.00,
"currency": "USD",
"customer": { "name": "John Doe", "email": "john@example.com" },
"status": "completed"
}
],
"pagination": { "page": 1, "total_pages": 5 }
}Root Accessor: results
| Output Label | JSON Path |
|---|---|
| TransactionId | [*].id |
| Amount | [*].amount |
| Currency | [*].currency |
| CustomerName | [*].customer.name |
| CustomerEmail | [*].customer.email |
| Status | [*].status |
Why does the path start with [*]? Because results is an array. After setting Root Accessor to results, each path starts at the array itself. [*] means "for every item in the array, extract this field."
Next Steps
- Troubleshooting & Glossary — Common issues and technical term reference
- Overview — Return to the main API Builder guide