BillyAPI Platform

Using with n8n

Connect Billy to n8n and other automation platforms using header authentication.

n8n is a workflow automation platform that allows you to connect the Billy API with hundreds of other services.

Basic Configuration

1. Create an HTTP Credential

  1. In n8n, go to Settings > Credentials
  2. Click on Add Credential
  3. Select HTTP Request
  4. Configure:
    • Name: Billy API
    • Authentication: Generic Credential Type
    • Generic Auth Type: Header Auth
    • Name: Authorization
    • Value: Bearer billy:o:your-org-id:your-api-key

2. Configure an HTTP Request Node

To list your events:

Method: GET
URL: https://platform.billyapp.live/v1/events
Authentication: Generic Credential Type
Generic Auth Type: Header Auth
Credential: Billy API

Workflow Examples

Workflow 1: Daily Ticket Sync to Google Sheets

Schedule Trigger (every day at 8am)

HTTP Request (GET /v1/tickets?per_page=1000)

Function (transform data)

Google Sheets (append or update)

Function Node to transform data:

// Input: result from Billy API
const tickets = items[0].json.items;

// Transformation for Google Sheets
const rows = tickets.map((ticket) => ({
  json: {
    "Ticket ID": ticket.ticketId,
    Event: ticket.eventId,
    Category: ticket.categoryName,
    Price: ticket.finalPricePaid,
    "Issue Date": ticket.issuedAt,
    Status: ticket.status,
    Customer: ticket.customerInfo
      ? `${ticket.customerInfo.firstName} ${ticket.customerInfo.lastName}`
      : "N/A",
    Email: ticket.customerInfo?.email || "N/A",
  },
}));

return rows;

Workflow 2: Weekly Report by Email

Schedule Trigger (every Monday at 9am)

HTTP Request (GET /v1/events)

Split In Batches (for each event)

HTTP Request (GET /v1/tickets?eventIds={event.id})

Aggregate (count tickets)

Function (generate HTML report)

Send Email

Error Handling

Add an Error Trigger node to be notified in case of error:

Error Trigger

Slack (message: "Error in Billy workflow: {{$json.error.message}}")

Automatic Pagination

Create a sub-workflow to handle pagination:

HTTP Request

IF (response.hasMore)
    ↓ (yes)
HTTP Request (next page)

Merge (accumulate results)

Loop (back to IF)

n8n Best Practices

  1. Use credentials to store your API key securely
  2. Enable manual execution to test your workflows
  3. Configure retries on HTTP nodes (3 attempts with backoff)
  4. Use the Wait node to respect rate limiting
  5. Enable logs for debugging

On this page