---
title: "Get record by ID"
method: GET
path: "/knowledgeBase/record/{recordId}"
tags: ["Knowledge Base"]
---

# Get record by ID

`GET /knowledgeBase/record/{recordId}`

Retrieve detailed information about a specific record.

**Overview:**

Returns complete record metadata including name, type, indexing status, storage information, and version history.

**File conversion:**

Use the optional `convertTo` parameter to request file format conversion (e.g., PDF to text). Supported conversions include PPT to PDF and PPTX to PDF.

## Path parameters

- `recordId` string, required

## Query parameters

- `convertTo` string

## Response `200`

Successful operation

- GetRecordByIdResponseSchema — Response returned by GET /knowledgeBase/record/{recordId}.
  - `record` object, required
    - `id` string, required
    - `orgId` string, required
    - `recordName` string, required
    - `externalRecordId` string, required
    - `externalRootGroupId` string, nullable
    - `externalGroupId` string, nullable
    - `connectorId` string, required
    - `connectorName` 'DRIVE' | 'DRIVE WORKSPACE' | 'GMAIL' | 'GMAIL WORKSPACE' | 'CALENDAR' | 'ONEDRIVE' | 'SHAREPOINT ONLINE' | 'OUTLOOK' | 'OUTLOOK PERSONAL' | 'OUTLOOK CALENDAR' | 'MICROSOFT TEAMS' | 'NOTION' | 'SLACK' | 'SLACK WORKSPACE' | 'KB' | 'CONFLUENCE' | 'CONFLUENCE DATA CENTER' | 'CONFLUENCE DATA CENTER PERSONAL' | 'JIRA' | 'JIRA PERSONAL' | 'JIRA DATA CENTER' | 'JIRA DATA CENTER PERSONAL' | 'BOX' | 'NEXTCLOUD' | 'DROPBOX' | 'DROPBOX PERSONAL' | 'WEB' | 'BOOKSTACK' | 'GITHUB' | 'SERVICENOW' | 'SALESFORCE' | 'S3' | 'MINIO' | 'GCS' | 'AZURE BLOB' | 'AZURE FILES' | 'LINEAR' | 'ZAMMAD' | 'ZOOM' | 'GITLAB' | 'GITLAB PERSONAL' | 'SNOWFLAKE' | 'POSTGRESQL' | 'MARIADB' | 'UNKNOWN' | 'RSS' | 'LOCAL_FS' | 'CODING_SANDBOX' | 'DATABASE_SANDBOX' | 'IMAGE_GENERATION' | 'ATTACHMENTS', required — Name of the source connector. Mirrors the values of the backend `Connectors` enum (`backend/python/app/config/constants/arangodb.py`); records store the enum value (e.g. Google Drive is `DRIVE`, SharePoint Online is `SHAREPOINT ONLINE`), not the enum member name.
    - `recordType` 'FILE' | 'DRIVE' | 'WEBPAGE' | 'DATABASE' | 'DATASOURCE' | 'MESSAGE' | 'MAIL' | 'GROUP_MAIL' | 'TICKET' | 'COMMENT' | 'INLINE_COMMENT' | 'CONFLUENCE_PAGE' | 'CONFLUENCE_BLOGPOST' | 'SHAREPOINT_PAGE' | 'SHAREPOINT_LIST' | 'SHAREPOINT_LIST_ITEM' | 'SHAREPOINT_DOCUMENT_LIBRARY' | 'LINK' | 'PROJECT' | 'PULL_REQUEST' | 'MEETING' | 'PRODUCT' | 'DEAL' | 'CASE' | 'TASK' | 'ARTIFACT' | 'CODE_FILE' | 'SQL_TABLE' | 'SQL_VIEW' | 'OTHERS', required — Type of content. Mirrors the backend `RecordType` enum (`backend/python/app/models/entities.py`); connector-sourced records may use any of the connector-specific types below. - FILE: Uploaded or synced documents (PDF, DOCX, etc.) - DRIVE: Drive/folder container (Google Drive, OneDrive, etc.) - WEBPAGE: Web pages crawled or bookmarked - DATABASE: Database object (e.g. Notion database) - DATASOURCE: Data source object - MESSAGE: Chat/messaging content (Slack, Teams) - MAIL: Email messages (Gmail, Outlook) - GROUP_MAIL: Group/shared mailbox email messages - TICKET: Support/issue tickets (Jira, ServiceNow) - COMMENT: Comments from collaboration tools - INLINE_COMMENT: Inline comments anchored to content (e.g. Confluence) - CONFLUENCE_PAGE: Confluence page - CONFLUENCE_BLOGPOST: Confluence blog post - SHAREPOINT_PAGE: SharePoint page - SHAREPOINT_LIST: SharePoint list - SHAREPOINT_LIST_ITEM: SharePoint list item - SHAREPOINT_DOCUMENT_LIBRARY: SharePoint document library - LINK: Web link / bookmark - PROJECT: Project entity (e.g. Jira project) - PULL_REQUEST: Source-control pull request - MEETING: Meeting record (e.g. Zoom) - PRODUCT: Product entity (CRM) - DEAL: Deal/opportunity entity (CRM) - CASE: Case entity (CRM/support) - TASK: Task entity - ARTIFACT: Generated/derived artifact - CODE_FILE: Source-code file - SQL_TABLE: SQL table object - SQL_VIEW: SQL view object - OTHERS: Miscellaneous content types
    - `origin` string, required
    - `version` integer, required
    - `isLatestVersion` boolean, required
    - `createdAtTimestamp` integer, required
    - `updatedAtTimestamp` integer, required
    - `sourceCreatedAtTimestamp` integer, required
    - `sourceLastModifiedTimestamp` integer, required
    - `lastSyncTimestamp` integer, required
    - `lastIndexTimestamp` integer
    - `lastExtractionTimestamp` integer
    - `indexingStatus` string, required
    - `extractionStatus` string, required
    - `isDeleted` boolean, required
    - `isArchived` boolean, required
    - `isDirty` boolean, required
    - `isVLMOcrProcessed` boolean, required
    - `mimeType` string, required
    - `sizeInBytes` integer, required
    - `md5Checksum` string
    - `virtualRecordId` string
    - `webUrl` string, required
    - `fileRecord` object, nullable, required
      - `id` string, required
      - `orgId` string, required
      - `name` string, required
      - `extension` string, required
      - `mimeType` string, required
      - `sizeInBytes` integer, required
      - `isFile` boolean, required
      - `webUrl` string, required
      - `path` string, nullable
      - `localFsRelativePath` string, nullable
    - `mailRecord` object, nullable, required
    - `ticketRecord` object, nullable, required
  - `knowledgeBase` object, nullable, required
    - `id` string, required
    - `name` string, required
    - `orgId` string, required
  - `folder` object, nullable, required
    - `id` string, required
    - `name` string, required
  - `metadata` object, required
    - `languages` object[], required
      - `id` string, required
      - `name` string, required
    - `topics` object[], required
      - `id` string, required
      - `name` string, required
    - `subcategories1` object[], required
      - `id` string, required
      - `name` string, required
    - `subcategories2` object[], required
      - `id` string, required
      - `name` string, required
    - `subcategories3` object[], required
      - `id` string, required
      - `name` string, required
    - `departments` object[], required
      - `id` string, required
      - `name` string, required
    - `categories` object[], required
      - `id` string, required
      - `name` string, required
  - `permissions` object[], required
    - `id` string, required
    - `name` string, required
    - `type` string, required
    - `relationship` 'OWNER' | 'WRITER' | 'READER', required
    - `accessType` string, required

## Other responses

- `400` — Invalid request parameters or query shape
- `401` — Missing, invalid, expired, or revoked authentication
- `403` — OAuth token is missing the required kb:read scope
- `404` — Record not found
- `500` — Internal server error while retrieving record details. Current API behavior includes record-access lookup failures returning `HTTP_INTERNAL_SERVER_ERROR` with messages such as `Failed to check record access`, including cases where callers might otherwise expect a not-found style response.
- `503` — Connector service unavailable or connection refused

---

[API](https://skmtc.net/pipeshub-ai/apis/pipeshub-api.md) · [All operations](https://skmtc.net/pipeshub-ai/apis/pipeshub-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/pipeshub-ai/pipeshub-api/revisions/abd27cfefc73/schema)
