API Reference

Complete reference for all AppPiper API endpoints. Requires authentication with your API token.

Tours

GET /tours

List all tours for the current organization.

Query Parameters:

status=published|draft|archived (optional)limit=50 (optional, default: 20)offset=0 (optional)

Response:

{
  "tours": [
    {
      "id": "tour_123",
      "name": "Getting Started",
      "status": "published",
      "created_at": "2026-04-01T12:00:00Z",
      "step_count": 5
    }
  ],
  "pagination": {
    "total": 1,
    "limit": 50,
    "offset": 0
  }
}

POST /tours

Create a new tour.

Request Body:

{
  "name": "Product Overview",
  "description": "Introduction to key features",
  "trigger_type": "auto"
}

Response:

{
  "tour": {
    "id": "tour_456",
    "name": "Product Overview",
    "status": "draft",
    "created_at": "2026-04-01T12:00:00Z"
  }
}

GET /tours/{id}

Get a specific tour with all steps.

Response:

{
  "tour": {
    "id": "tour_123",
    "name": "Getting Started",
    "status": "published",
    "created_at": "2026-04-01T12:00:00Z",
    "steps": [
      {
        "id": "step_1",
        "title": "Welcome",
        "description": "Let's get you started",
        "order": 1
      }
    ]
  }
}

PUT /tours/{id}

Update a tour.

Request Body (all fields optional):

{
  "name": "Updated Tour Name",
  "description": "Updated description"
}

PUT /tours/{id}/publish

Publish a tour (make it live to users).

PUT /tours/{id}/unpublish

Unpublish a tour (set back to draft status).

PUT /tours/{id}/archive

Archive a tour (soft delete).

DELETE /tours/{id}

Delete a tour. Add ?hard=true for permanent deletion.

Tour Steps

POST /tours/{tourId}/steps

Create a new step in a tour.

Request Body:

{
  "title": "Click the settings icon",
  "description": "Find the gear icon in the top right",
  "selector": ".settings-icon",
  "order": 1
}

PUT /tours/{tourId}/steps/{stepId}

Update a tour step.

DELETE /tours/{tourId}/steps/{stepId}

Delete a step from a tour.

PUT /tours/{tourId}/steps/reorder

Reorder steps in a tour.

Request Body:

{
  "step_ids": ["step_1", "step_3", "step_2"]
}

Analytics

GET /analytics/overview

Get organization-wide analytics.

Query Parameters:

startDate=2026-04-01endDate=2026-04-30

GET /analytics/tours/{id}

Get detailed analytics for a specific tour with funnel data.

GET /analytics/tours/{id}/daily

Get daily breakdown of tour metrics for charting.

Organizations

GET /organizations/current

Get the current user's organization.

PUT /organizations/current

Update the current organization.

GET /organizations/current/members

List all members of the current organization.

Authentication

All endpoints require authentication. Include your API token in the Authorization header:Authorization: Bearer YOUR_API_TOKEN

Learn More

For JavaScript-based tour control, check out the Snippet API Reference.