> For the complete documentation index, see [llms.txt](https://docs.userlane.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.userlane.com/developer-reference/export-guides-guide-progress-and-announcement-data-via-api.md).

# Export Guides, Guide progress, and Announcement data via API

Retrieve Guide interactions, progress, and Announcement event data through the REST API.

## About the end-user events APIs

The [end-user events APIs](https://dev.userlane.com/reference/enduser-events) export interaction data from a Userlane property in JSON format. Use them to bring Guide and Announcement interaction data into a business intelligence tool such as Power BI, Tableau, or Looker, or to combine it with data collected in other systems.

## Why use it

Use the data to:

* track how individual users interact with Guides and Announcements
* measure onboarding completion across a user base
* enrich internal reporting with Userlane interaction data
* share Userlane findings with a wider group of stakeholders

## What can be exported

There are three APIs in the end-user events family. Choose based on the question to be answered.

| Question                                                             | API                                                                                                            |
| -------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
| What percentage of an onboarding Guide do users complete?            | [Guide Progress API](https://dev.userlane.com/reference/getting-started-with-guide-progress)                   |
| Where do users drop off in a Guide, and which Guide is started most? | [Guides API](https://dev.userlane.com/reference/publicenduser-eventsguidesproperty_idpropertyid)               |
| How many users saw or clicked an Announcement?                       | [Announcements API](https://dev.userlane.com/reference/publicenduser-eventsannouncementsproperty_idpropertyid) |

All three APIs return JSON.

### Guides API

Returns event-level records for every interaction with a Guide:

* **Guide started:** a user opened a Guide
* **Guide finished:** a user reached the end of a Guide
* **Guide exited:** a user closed a Guide before finishing, including the step exited on

Each event carries the time, event type, user, Guide ID, and, for exits, the step number and total step count.

![](https://259567114-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FF6bxg8i3T6U4vZ3k7PHi%2Fuploads%2FqkL7Rhv7mZnMrLNve0wy%2Fimage.png?alt=media\&token=0c36cbeb-5348-4801-8294-dc871750f995)

### Announcements API

Returns event-level records for every interaction with an Announcement:

* **Announcement viewed:** an Announcement was shown to a user
* **Announcement interacted:** a user clicked a button or link inside an Announcement

Each event carries the time, event type, user, and Announcement ID.

![](https://259567114-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FF6bxg8i3T6U4vZ3k7PHi%2Fuploads%2FbviXDfoLJcHPVzFnJTMp%2Fimage.png?alt=media\&token=7ef7a5fc-241e-4b9d-9d7d-ae4fa263a3d5)

### Guide Progress API

Returns the current completion state of one Guide, per user: how far each user got, what percentage was completed, and when they last interacted with it. It also returns aggregate completion statistics across all users, for example how many users reached 20, 40, 60, 80, or 100 percent completion.

![](https://259567114-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FF6bxg8i3T6U4vZ3k7PHi%2Fuploads%2FXze1Rd5vEwCZdzSmMgEj%2Fimage.png?alt=media\&token=a983165e-4b9f-402f-af71-9a88ff83fc27)

## Resolving IDs to names

The APIs return Guide and Announcement IDs as numbers, for example `"id": "99067"`. Matching those IDs to their titles makes the export usable in a report or dashboard.

**Guides:** open the Guide analytics page in the Userlane Portal and export the list to CSV. The export includes both Guide ID and title. Alternatively, open the analytics page for one Guide and read the ID from the URL.

**Announcements:** open the Announcement analytics page in the Userlane Portal and export the list to CSV. The export includes both Announcement ID and title.

**Guide progress:** the Guide ID is a required request parameter, so it has to be found first, in either of the ways above.

Join the API export with the CSV lookup in the reporting tool to display names instead of numeric IDs.

## How to export the data

### Generate the token

The export is protected and requires an authorization token. Generate the token in the Userlane Portal under **Settings > API Token**. See [Your Userlane API token](/developer-reference/your-userlane-api-token.md).

![](https://259567114-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FF6bxg8i3T6U4vZ3k7PHi%2Fuploads%2FDwYxwHNue1tWHY6chAoB%2Fimage.png?alt=media\&token=dfaa12d3-3bd1-4b3c-bad2-ecfddd647a9d)

The token is generated per Userlane Manager and can be regenerated at any time using the same button in the Portal.

### Run the request

Each API is available in the developer documentation, which includes a Try it button for testing a request directly in the browser.

* [Guides API](https://dev.userlane.com/reference/publicenduser-eventsguidesproperty_idpropertyid)
* [Announcements API](https://dev.userlane.com/reference/publicenduser-eventsannouncementsproperty_idpropertyid)
* [Guide Progress API](https://dev.userlane.com/reference/getting-started-with-guide-progress)

Each request needs:

* **Property ID:** the Userlane ID of the application. In the API, a property is what the Userlane Portal calls an application.
* **Start and end dates:** the time span for the export, in the format `2026-04-01T00:00:00+00:00`
* **Page and limit:** up to 1,000 records per page. For larger results, request each page separately by changing the page number.
* **Authorization token:** pasted into the authentication field
* **Guide ID:** required for Guide progress only

Each request covers a maximum of 60 days of history. For longer history, schedule a daily or weekly pull into a local database.

Once the request runs successfully, copy the JSON response, or the request code, using the copy icon.

## Troubleshooting

A failed request returns an error message in the result section. Most errors relate to:

* an incorrect date format, or a date range outside the allowed window, for example larger than 60 days
* an invalid or expired authorization token

Review the parameters against this article. If the issue persists, contact Userlane.

## Relevant articles

{% content-ref url="/pages/TcXdqgybeGLnS1EODhcN" %}
[Your Userlane API token](/developer-reference/your-userlane-api-token.md)
{% endcontent-ref %}

{% content-ref url="/pages/pFJIN3rpdCcXyo6ifg4j" %}
[Export HEART, NPS, Survey, Tag, and Task data via API](/developer-reference/export-heart-nps-survey-tag-and-task-data-via-api.md)
{% endcontent-ref %}

{% content-ref url="/pages/0XiPZYLLfKewriq8G6Av" %}
[User profile data export](/developer-reference/user-profile-data-export.md)
{% endcontent-ref %}

{% content-ref url="/pages/QoC1TgEC9ALRtbtaX7F9" %}
[Hooking into event callbacks](/developer-reference/hooking-into-event-callbacks.md)
{% endcontent-ref %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.userlane.com/developer-reference/export-guides-guide-progress-and-announcement-data-via-api.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
