Skip to main content

Guru

Guru is a knowledge management platform that helps teams capture, organize, and share institutional knowledge. Built for modern teams, Guru provides a centralized knowledge base where companies can store verified, up-to-date information in Cards organized into Collections. Teams use Guru to surface the right knowledge in the right context — whether through browser extensions, Slack integrations, or direct searches — reducing time spent hunting for information and ensuring everyone works from a single source of truth. Guru's REST API enables programmatic access to cards, collections, boards, groups, and user management, making it straightforward to integrate your organizational knowledge with other data systems.

Guru icon

Power end-to-end data operations for your Guru API with Nexla. Our bi-directional Guru connector is purpose-built for Guru, making it simple to ingest data, sync it across systems, and deliver it anywhere — all with no coding required. Nexla turns API-sourced data into ready-to-use, reusable data products and makes it easy to send data to Guru or any other destination. With comprehensive monitoring, lineage tracking, and access controls, Nexla keeps your Guru workflows fast, secure, and fully governed.

Features

Type: API

SourceDestination

  • Seamless API Integration: Connect to any endpoint as source or destination without coding, with automatic data product creation
  • Visual Composition & Chaining: Build complex integrations using visual templates, chain API calls, and compose workflows with data validation and filtering
  • API Proxy: Expose curated slices of your data securely with a secure and customizable API proxy that validates and transforms data on the fly
  • Request optimization with intelligent batching, retry, and caching to minimize API calls and costs

Prerequisites

Before creating a Guru credential in Nexla, you will need an API token from your Guru account. Guru uses HTTP Basic Authentication for API access, where your Guru account email address serves as the username and an API token serves as the password.

Guru supports two types of API tokens, each suited to different use cases:

  • User Token — Provides full read and write access to the Guru API based on the permissions of the user who generated the token. Use a User Token when you need to read from or write to your Guru knowledge base via Nexla.

  • Collection Token — Provides read-only access to the content in a single, specific Collection. Use a Collection Token when you only need to retrieve knowledge from one Collection and prefer a scoped, read-only credential.

Only Guru Admins can generate API tokens. Admins can generate tokens for themselves or on behalf of other users in the organization.

Generate a User Token

  1. Log in to your Guru account at https://app.getguru.com.

  2. Navigate to the Manage menu in the top navigation bar.

  3. Select Apps & Integrations from the menu.

  4. Click the API Access tab.

  5. Click Generate User Token.

  6. Enter a name to identify this token (for example, "Nexla Integration"), then click Generate Token.

  7. Copy the generated token immediately and store it in a secure location. The token will not be displayed again after you leave this page.

Important

The User Token is displayed only once. If you navigate away from the page before copying the token, you will need to generate a new one. Store the token securely — treat it like a password, as it grants full API access on behalf of the associated user.

Generate a Collection Token

  1. Log in to your Guru account at https://app.getguru.com.

  2. Navigate to the Manage menu in the top navigation bar.

  3. Select Apps & Integrations from the menu.

  4. Click the API Access tab.

  5. Click Generate a New Collection Token.

  6. From the dropdown list, select the Collection that this token should grant access to.

  7. Click Generate Token.

  8. Copy the generated token immediately and store it in a secure location. Collection Tokens are also shown only once.

Collection Tokens provide read-only access limited to a single Collection. For flows that require writing data to Guru or accessing content across multiple Collections, use a User Token instead.

For complete information about Guru API authentication, refer to the Guru Developer Network documentation.

Authenticate

Create a credential in Nexla

  1. After selecting the data source/destination type, click the Add Credential tile to open the Add New Credential overlay.

  2. Enter a name for the credential in the Credential Name field and a short, meaningful description in the Credential Description field.

  3. Enter your Guru account email address in the Username field. This is the email address associated with the Guru account that owns the API token.

  4. Enter the API token you generated in Prerequisites in the Password field. Depending on your use case, this will be either a User Token (for read/write access) or a Collection Token (for read-only access to a single Collection).

    The Guru API uses HTTP Basic Authentication, where your email address is the username and the API token is the password. Nexla handles the encoding and transmission of these credentials securely.

  5. Click the Save button at the bottom of the overlay to save the configured credential. The newly added credential will now appear in a tile on the Authenticate screen during data source/destination creation and can be selected for use with a new data source or destination.

Use as a data source

To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Select the Guru connector tile, then select the credential that will be used to connect to the Guru account, and click Next; or, create a new Guru credential for use in this flow.

Endpoint templates

Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common Guru endpoints. Each template is designed specifically for the corresponding Guru endpoint. Select the endpoint from which this source will fetch data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below — click on an endpoint to see more information about it and how to configure your data source for this endpoint.

List Teams

Returns a list of all teams in the Guru account. Use this endpoint to retrieve team metadata for organizational reporting or to obtain team IDs needed for other Guru API calls.

  • Sends a GET request to /api/v1/teams using the base URL configured in your Guru credential.
  • Response data is extracted from $[*], returning each team as an individual record.

Team IDs returned by this endpoint are required for endpoints such as Get Team Analytics and List Tag Categories.

List Groups

Returns a list of all groups in the Guru account. Use this endpoint to retrieve group metadata for access management reporting or to obtain group IDs for use in group-specific endpoints.

  • Sends a GET request to /api/v1/groups using the base URL configured in your Guru credential.
  • Response data is extracted from $[*], returning each group as an individual record.

Group IDs returned by this endpoint are required for the List Group Collection Access and List Group Members endpoints.

List Group Collection Access

Returns a list of collections that a specific group has access to. Use this endpoint to audit which knowledge collections are accessible to a given group.

  • Sends a GET request to /api/v1/groups/{groupId} using the base URL configured in your Guru credential.
  • Response data is extracted from $[*], returning each accessible collection as an individual record.
  • Configure the following parameters: Group ID — the unique identifier of the group whose collection access should be retrieved.

Use the List Groups endpoint to obtain group IDs. A User Token (rather than a Collection Token) is required to query group-level access data.

List Group Members

Returns a list of members in a specific group. Use this endpoint to audit group membership for compliance, access reviews, or directory synchronization.

  • Sends a GET request to /api/v1/groups/{groupId}/members using the base URL configured in your Guru credential.
  • Response data is extracted from $[*], returning each group member as an individual record.
  • Configure the following parameters: Group ID — the unique identifier of the group whose members should be listed.

Use the List Groups endpoint to obtain group IDs. A User Token is required to access group membership data.

List Members

Returns a list of all members in the Guru account. Use this endpoint for user directory exports, onboarding audits, or to retrieve member IDs for use in other Guru API calls.

  • Sends a GET request to /api/v1/members using the base URL configured in your Guru credential.
  • Response data is extracted from $[*], returning each member as an individual record.

A User Token (not a Collection Token) is required to list all account members.

Get Team Analytics

Returns analytics data for a specific team, including card views, searches, and engagement metrics. Use this endpoint to track knowledge base usage and adoption across a team.

  • Sends a GET request to /api/v1/teams/{teamId}/analytics using the base URL configured in your Guru credential.
  • Response data is extracted from $[*], returning each analytics record.
  • Configure the following parameters: Team ID — the unique identifier of the team for which analytics should be retrieved.

Use the List Teams endpoint to obtain team IDs. Analytics data availability may vary based on your Guru plan.

List Folder Items

Returns a list of items contained in a specific folder. Use this endpoint to enumerate cards and boards organized within a known folder.

  • Sends a GET request to /api/v1/folders/{folderId}/items using the base URL configured in your Guru credential.
  • Response data is extracted from $[*], returning each folder item as an individual record.
  • Configure the following parameters: Folder ID — the unique identifier of the folder whose items should be listed.

Use the List Folders or Search for folders endpoint to obtain folder IDs.

Get Folder Parent

Returns the parent folder of a specific folder, enabling traversal of the folder hierarchy. Use this endpoint to build full folder path metadata or to navigate the organizational structure of a Guru collection.

  • Sends a GET request to /api/v1/folders/{folderId}/parent using the base URL configured in your Guru credential.
  • Response data is extracted from $, returning the parent folder as a single record.
  • Configure the following parameters: Folder ID — the unique identifier of the folder whose parent should be retrieved.

If the folder is a top-level folder within a collection, the parent may be the collection itself rather than another folder.

List Tag Categories

Retrieves all tag categories available for a given team. Use this endpoint to enumerate the tag taxonomy in your Guru account for content classification or reporting.

  • Sends a GET request to /api/v1/teams/{teamId}/tagcategories using the base URL configured in your Guru credential.
  • Response data is extracted from $[*], returning each tag category as an individual record.
  • Configure the following parameters: Team ID — the unique identifier of the team whose tag categories should be listed.

Use the List Teams endpoint to obtain team IDs.

List Collections

Retrieves a list of all collections from the Guru API with optional search, filtering, and sorting parameters. Use this endpoint to enumerate knowledge collections for archiving, reporting, or to obtain collection IDs for downstream calls.

  • Sends a GET request to /api/v1/collections using the base URL configured in your Guru credential, with optional query parameters for Search, Sortfield, Sortdir, and Filter.
  • Response data is extracted from $[*], returning each collection as an individual record.
  • Configure the following parameters: Search — keyword search term to filter collections by name. Sortfield — field to sort results by. Sortdir — sort direction (ascending or descending). Filter — additional filter criteria.

Collection Tokens only have access to the collection they were generated for. Use a User Token to list all collections in the account.

List Folders

Retrieves a list of folders from the Guru API, with optional filtering by collection, search terms, and sort order. Use this endpoint to enumerate folders for organizational mapping or to obtain folder IDs for subsequent calls.

  • Sends a GET request to /api/v1/folders using the base URL configured in your Guru credential, with optional query parameters including Token, Sort Field, Sort Order, Query, Search, Collection, Folder IDs, and Legacy Types.
  • Response data is extracted from $[*], returning each folder as an individual record.

Use the Collection parameter to restrict results to folders within a specific collection. A User Token is required to list folders across all collections.

Search Cards (Card Manager)

Searches for cards using the Guru Card Manager endpoint, with support for keyword queries, filtering (including archived cards), and sort options. Use this endpoint to retrieve cards matching specific criteria for bulk export or analysis.

  • Sends a GET request to /api/v1/search/cardmgr using the base URL configured in your Guru credential, with optional parameters for Q (query string), Search Terms, Query Type, Show Archived, Max Results, Sort Field, Sort Order, Token, and X Guru Activity Subtype.
  • Response data is extracted from $[*], returning each matching card as an individual record.

Set Show Archived to true to include archived cards in results. Use Max Results to control page size and Token for cursor-based pagination across large result sets.

List AI evaluations

Returns a paginated list of AI evaluations with optional filtering by question and agent. Use this endpoint to review AI answer quality assessments and monitor knowledge base accuracy over time.

  • Sends a GET request to /api/v1/aievaluations using the base URL configured in your Guru credential, with optional Question filter, Agent ID, and Sort order parameters.
  • Response data is extracted from $.evaluations[*], returning each AI evaluation as an individual record.
  • Configure the following parameters: Question filter — filter evaluations by question text. Agent ID — filter evaluations for a specific AI agent. Sort order — control the order of returned evaluations.

AI evaluation data is available only on Guru plans that include the AI Answers feature. Confirm that your plan supports this endpoint before configuring this source.

Search for folders

Searches for folders by keyword terms, with an optional filter to restrict results to a specific collection. Use this endpoint to find folders by name when the folder ID is not yet known.

  • Sends a GET request to /api/v1/folders/search using the base URL configured in your Guru credential, with Search terms and an optional Collection ID parameter.
  • Response data is extracted from $[*], returning each matching folder as an individual record.
  • Configure the following parameters: Search terms — keyword terms to search folder names. Collection ID — optionally restrict search to a specific collection.

Use a Collection Token scoped to the target collection, or a User Token to search across all collections.

Get folder

Retrieves detailed information about a specific folder by its ID. Use this endpoint to fetch full folder metadata including its name, collection, and associated items.

  • Sends a GET request to /api/v1/folders/{id} using the base URL configured in your Guru credential, with an optional Collection parameter and activity tracking headers.
  • Response data is extracted from $, returning the full folder object as a single record.
  • Configure the following parameters: Id — the unique identifier of the folder to retrieve. Collection — optional collection scoping parameter.

Use the List Folders or Search for folders endpoint to obtain folder IDs.

Search Documents with Natural Language

Searches for documents using natural language query terms and returns results with source references. Use this endpoint to power AI-driven knowledge retrieval pipelines or to extract relevant content using semantic search.

  • Sends a GET request to /api/v1/search/documents using the base URL configured in your Guru credential, with optional parameters for Search Terms, Agent ID, Include Content, Max Results, Chunk Documents, and Limit to All Member Access.
  • Response data is extracted from $.results[*], returning each document result as an individual record.

Set Include Content to true to embed the full document text in results. Use Chunk Documents for RAG-style pipelines that require document chunking.

Search for Cards

Searches for cards using query parameters with sorting and filtering options, returning results with relevance ranking. Use this endpoint for keyword-based card searches or to build search-driven knowledge ingestion pipelines.

  • Sends a GET request to /api/v1/search/query using the base URL configured in your Guru credential, with optional Query, Search Terms, Query Type, Show Archived, Max Results, Sort Field, Sort Order, and Include Card Attributes parameters.
  • Response data is extracted from $.results[*], returning each matching card as an individual record.

Use Include Card Attributes to return extended metadata alongside each card result. For bulk exports without a search query, consider the List All Cards endpoint instead.

List All Cards

Lists all cards accessible to the authenticated user via the all-cards feed. Use this endpoint for bulk exports of the entire Guru knowledge base or for full-sync ingestion into a data warehouse.

  • Sends a GET request to /api/v1/cards using the base URL configured in your Guru credential.
  • Response data is extracted from $[*], returning each card as an individual record.

A User Token is recommended for full account-wide card access. Collection Tokens will limit results to cards within the scoped collection only.

Get Card by ID

Retrieves a single card by its unique ID, including its full content and metadata. Use this endpoint when you need complete details of a specific Guru card, including HTML content and verification status.

  • Sends a GET request to /api/v1/cards/{cardId}/extended using the base URL configured in your Guru credential.
  • Response data is extracted from $, returning the full card object as a single record.
  • Configure the following parameters: Cardid — the unique identifier of the card to retrieve.

Card IDs can be obtained from the List All Cards or Search for Cards endpoints. Use a lookup macro to pass card IDs dynamically when chaining API calls.

List Collection Cards

Lists all cards within a specific collection. Use this endpoint to perform collection-scoped bulk exports or to sync card content for a particular knowledge domain.

  • Sends a GET request to /api/v1/collections/{collectionId}/cards using the base URL configured in your Guru credential.
  • Response data is extracted from $[*], returning each card in the collection as an individual record.
  • Configure the following parameters: Collectionid — the unique identifier of the collection whose cards should be listed.

Use the List Collections endpoint to obtain collection IDs. A Collection Token scoped to this collection, or a User Token, is required.

Get Member by ID

Retrieves details for a single team member by their unique ID, including profile information and role data. Use this endpoint to enrich member records retrieved from a bulk listing.

  • Sends a GET request to /api/v1/members/{memberId} using the base URL configured in your Guru credential.
  • Response data is extracted from $, returning the full member object as a single record.
  • Configure the following parameters: Memberid — the unique identifier of the member to retrieve.

Member IDs can be obtained from the List Members endpoint. Use a lookup macro to pass member IDs dynamically when chaining API calls.

Once the selected endpoint template has been configured, click the Test button to the right of the endpoint selection menu to retrieve a sample of the data that will be fetched. Sample data will be displayed in the Endpoint Test Result panel on the right, allowing you to verify that the source is configured correctly before saving.

Manual configuration

Guru data sources can also be manually configured to ingest data from any valid Guru API endpoint not covered by the pre-built templates, including chained API calls or custom request parameters. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, endpoint URL, date/time and lookup macros, path to data, metadata, and request headers.

The Guru REST API root URL is https://api.getguru.com/api/v1/. Common endpoints include search/query (search Cards), teams/{'{teamId}'}/cards (Cards for a team), collections (list Collections), and boards (list Boards). Use GET to retrieve knowledge base data such as Cards, Collections, Boards, and users, and POST to search Cards or create content programmatically. Guru responses typically wrap the returned collection in a top-level key, so set the path to data accordingly — for example, $.cards[*] for a list of Cards. You do not need to add an Authorization header; the Basic Authentication credentials configured in your Guru credential are automatically included in every request. Collection Tokens only have access to the Collection they were generated for — use a User Token for endpoints that span multiple Collections.

Once all of the relevant settings have been configured, click the Create button in the upper right corner of the screen to save and create the new Guru data source. Nexla will now begin ingesting data from the configured endpoint and will organize any data that it finds into one or more Nexsets.

Use as a destination

Click the + icon on the Nexset that will be sent to the Guru destination, and select the Send to Destination option from the menu. Select the Guru connector from the list of available destination connectors, then select the credential that will be used to connect to the Guru account, and click Next; or, create a new Guru credential for use in this flow.

Endpoint templates

Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common Guru endpoints. Each template is designed specifically for the corresponding Guru endpoint. Select the endpoint to which this destination will send data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below — click on an endpoint to see more information about it and how to configure your destination for this endpoint.

Ask a Question

Submits a question to receive answers from the Guru knowledge base, with optional agent and context parameters. Use this endpoint to power automated Q&A workflows or to route questions from external systems into Guru's AI answer engine.

  • Sends a POST request to the Guru AI answers endpoint with a Question payload and optional parameters for Agent ID, Minimal Answer Only, Bypass Question Detection, Context, Chat Thread ID, and Thread Type.
  • Configure the following parameters: Question — the question text to submit. Agent ID — optionally target a specific AI agent. Minimal Answer Only — return only the answer text without sources.

This endpoint is available only on Guru plans that include the AI Answers feature. Confirm plan eligibility before configuring this destination.

Create Card (Extended)

Creates a new Guru card (knowledge article) with content, title, share status, and verifier. Use this endpoint to programmatically publish knowledge from external systems such as CRMs, ticketing platforms, or documentation repositories.

  • Sends a POST request to the Guru cards endpoint. The request body must include at minimum a content field (HTML) and a preferredPhrase (card title).
  • Additional fields such as shareType, verifiers, tags, and collection can be included to fully configure the published card.

Cards created via API are published immediately unless drafted first using the Create Draft Card endpoint. Ensure that the collection field references a valid collection ID accessible with your credential.

Create Collection

Creates a new Guru collection, which is the top-level content container for organizing cards and boards. Use this endpoint to programmatically provision knowledge collections for new teams, projects, or domains.

  • Sends a POST request to the Guru collections endpoint with the collection name and configuration in the request body.
  • A User Token with collection management permissions is required to create collections.

Collection creation requires appropriate admin permissions. Verify that the credential used has sufficient privileges before configuring this destination.

Create Draft Card

Creates a draft card prior to publishing, allowing content to be staged for review before it becomes visible to team members. Use this endpoint when cards require editorial review or approval before going live.

  • Sends a POST request to the Guru draft cards endpoint with the card content and metadata in the request body.
  • Draft cards are not visible to regular users until published. They can be reviewed and published from the Guru interface or via the Verify Card endpoint.

Draft cards can be promoted to published status using the Guru web interface or the card verification API. Drafts do not count against knowledge base search results until published.

Invite Member

Invites a new member to the Guru team by email. Use this endpoint to automate onboarding workflows that provision Guru access based on HR or directory system events.

  • Sends a POST request to the Guru members endpoint with the invitee's email address and optional role information in the request body.
  • The invited user will receive an email invitation to join the Guru team.

Admin-level permissions are required to invite new members. Confirm that your Guru plan supports the number of members being provisioned.

Update Card

Updates an existing Guru card's content, title, tags, verifier, or share status. Use this endpoint to keep knowledge cards in sync with changes in external source systems.

  • Sends a PUT request to /api/v1/cards/{cardId} with the updated card fields in the request body.
  • Configure the following parameters: Cardid — the unique identifier of the card to update.

The card author or a Collection Manager must own the card to update it. Use the Get Card by ID source endpoint to retrieve current card content before updating.

Remove Member

Removes a member from the Guru team. Use this endpoint to automate offboarding workflows that revoke Guru access when a user departs or changes roles.

  • Sends a DELETE request to /api/v1/members/{memberId}.
  • Configure the following parameters: Memberid — the unique identifier of the member to remove.

Admin-level permissions are required to remove members. This action is irreversible — the removed member will lose access to all Guru collections immediately.

Verify Card

Marks a card as verified, resetting its verification timer. Use this endpoint to programmatically confirm that knowledge cards are up-to-date as part of a content governance workflow.

  • Sends a PUT request to the verify endpoint for a specific card.
  • Configure the following parameters: Cardid — the unique identifier of the card to verify.

Only designated card verifiers or Collection Managers can verify a card via the API. Verifying a card resets its verification interval to the configured default.

Delete Card

Archives or deletes a Guru card by ID. Use this endpoint to programmatically remove outdated or incorrect knowledge cards from the Guru knowledge base.

  • Sends a DELETE request to /api/v1/cards/{cardId}.
  • Configure the following parameters: Cardid — the unique identifier of the card to delete.

Deleting a card archives it rather than permanently removing it. Archived cards can be restored from the Guru interface. Admin or Collection Manager permissions are required.

Once the selected endpoint template has been configured, Nexla can send a sample payload to the Guru API to ensure that the destination is set up correctly. Click the Test button to the right of the endpoint selection menu; sample data will be fetched and displayed in the Endpoint Test Result panel on the right.

Manual configuration

Guru destinations can also be manually configured to send data to any valid Guru API endpoint, including creating or updating Cards, adding members to groups or teams, or archiving knowledge card content from external systems. You can also configure Nexla to automatically send the response received from the Guru API after each call to a new Nexla webhook data source. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, data format, endpoint URL, request headers, attribute exclusions, record batching, and response webhooks.

The Guru API root URL is https://api.getguru.com/api/v1/ and expects data in JSON format for write operations. Use POST to create new Cards, Boards, or other resources, PUT to fully replace an existing resource, PATCH to partially update a resource, and DELETE to remove a resource — for update operations, include the ID of the resource to be updated at the end of the URL (for example, https://api.getguru.com/api/v1/cards/{'{cardId}'}). You do not need to add authentication headers; the Basic Authentication credentials configured in your Guru credential are automatically included in every request. The Guru API may enforce rate limits on write endpoints — review the Guru API documentation for current rate limit information and adjust your batch size and flow schedule accordingly to avoid exceeding limits.

Save & activate

Once all endpoint settings have been configured, click the Done button in the upper right corner of the screen to save and create the destination. To send the data to the configured Guru endpoint, open the destination resource menu, and select Activate.

The Nexset data will not be sent to Guru until the destination is activated. Destinations can be activated immediately or at a later time, providing full control over data movement.