> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tiro.ooo/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Folder

> Retrieve a single folder by ID. The workspace is resolved from the folder, so
no workspace is needed in the path.

Requires a **user** API key with access to the folder.




## OpenAPI

````yaml /openapi.yaml get /v1/external/folders/{folderId}
openapi: 3.1.0
info:
  title: Tiro API
  description: AI-powered note-taking and voice file processing API
  version: 1.0.0
  contact:
    name: Tiro Support
    email: support@tiro.ooo
    url: https://tiro.ooo
servers:
  - url: https://api.tiro.ooo
    description: Production server
security:
  - BearerAuth: []
tags:
  - name: Note
    description: Operations for managing notes and their paragraphs
  - name: Note Share Link
    description: Manage share links for notes
  - name: Note Summary
    description: Operations for retrieving note summaries
  - name: Note Document
    description: Template-based document generation from notes
  - name: Note Document Template
    description: Operations for managing note document templates
  - name: Folder
    description: Operations for retrieving folders
  - name: Voice File
    description: Operations for voice file processing
  - name: Word Memory
    description: >
      Manage word memories to improve voice transcription accuracy. Register
      important terms like company names, people's names, and product names so
      Tiro recognizes them precisely during recording. Personal word memories
      (User) and a workspace's shared word memories (Workspace) are managed
      separately. The legacy team word memory endpoints
      (`/v1/external/teams/me/word-memories`) are deprecated — removed on
      2026-06-30 — in favor of the workspace-explicit
      `/v1/external/workspaces/{workspaceGuid}/word-memories`.
  - name: Wiki
    description: |
      Access workspace wikis — unified knowledge graphs built from notes.
      Requires a workspace with wiki plan and activation enabled.
  - name: Organization
    description: >
      Endpoints for organization API keys. An organization key is issued by an

      organization admin, carries fixed scopes chosen at issuance, and can reach

      the notes in every workspace that belongs to the organization. Built for

      server-to-server integrations such as CRM sync — receive `note.ended`
      webhook

      events, generate documents for notes, and reconcile with the organization

      notes list.
  - name: Organization Management
    description: Operations for the authenticated user's organization.
paths:
  /v1/external/folders/{folderId}:
    get:
      tags:
        - Folder
      summary: Get Folder
      description: >
        Retrieve a single folder by ID. The workspace is resolved from the
        folder, so

        no workspace is needed in the path.


        Requires a **user** API key with access to the folder.
      operationId: getFolder
      parameters:
        - name: folderId
          in: path
          required: true
          description: Folder ID
          schema:
            type: string
          example: '12345'
      responses:
        '200':
          description: Folder details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FolderDetail'
              example:
                id: '12345'
                workspaceGuid: ws_a1b2c3d4
                title: Weekly Team Meetings
                description: Notes from our weekly sync
                sharingType: ALL_MEMBER_VIEWER
                parentId: null
                color: '#4A90D9'
                isTeamFolder: true
                createdAt: '2025-01-15T10:30:00Z'
                updatedAt: '2025-01-18T14:20:00Z'
        '401':
          description: Unauthorized — missing API key, or a team-only key was used
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden — no access to this folder
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Folder not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    FolderDetail:
      type: object
      description: A folder and its metadata.
      required:
        - id
        - workspaceGuid
        - title
        - description
        - sharingType
        - parentId
        - color
        - isTeamFolder
        - createdAt
        - updatedAt
      properties:
        id:
          type: string
          description: Unique identifier for the folder
          example: '12345'
        workspaceGuid:
          type: string
          description: GUID of the workspace the folder belongs to
          example: ws_a1b2c3d4
        title:
          type: string
          description: Folder title (max 50 characters)
          example: Weekly Team Meetings
        description:
          type: string
          description: Folder description. Empty string when unset.
          example: Notes from our weekly sync
        sharingType:
          $ref: '#/components/schemas/FolderSharingType'
        parentId:
          type: string
          nullable: true
          description: |
            Parent folder ID. `null` for root-level folders. In the List Folders
            response, `parentId` is also `null` when the parent folder is not
            accessible to you.
          example: '12300'
        color:
          type: string
          description: Folder color in hex format (#RRGGBB)
          example: '#4A90D9'
        isTeamFolder:
          type: boolean
          description: >
            `true` when the folder is shared with the workspace (any
            `sharingType`

            except `PRIVATE`); `false` for `PRIVATE` folders. Retained for
            backward

            compatibility — use `sharingType` for the precise access level.
          example: true
        createdAt:
          type: string
          format: date-time
          description: ISO-8601 creation timestamp (UTC)
          example: '2025-01-15T10:30:00Z'
        updatedAt:
          type: string
          format: date-time
          description: ISO-8601 last-update timestamp (UTC)
          example: '2025-01-18T14:20:00Z'
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - errorType
            - message
          properties:
            code:
              type: integer
              description: >
                6-digit error code in `AAABBB` form: first 3 digits match the
                HTTP status,

                last 3 digits are a per-status serial (e.g. `404018`). Use only
                when you need

                to distinguish specific error cases within the same HTTP status
                — values may be

                added or renumbered across releases. For general client
                branching, prefer `errorType`.
              example: 404018
            errorType:
              type: string
              description: >
                Stable, coarse-grained error category. Recommended default for
                client-side

                branching: the value-to-status mapping is part of the API
                contract and will not

                change without a breaking-change notice. Typical use:
                  - `unauthorized` → trigger re-authentication
                  - `forbidden` → surface a permission error to the user
                  - `not_found` → treat as missing resource
                  - `too_many_requests` → back off and retry
                  - `internal_error` → retry with exponential backoff
              enum:
                - bad_request
                - unauthorized
                - forbidden
                - not_found
                - not_acceptable
                - conflict
                - payload_too_large
                - unprocessable_entity
                - too_many_requests
                - internal_error
              example: not_found
            message:
              type: string
              description: >-
                Human-readable error message. Not stable; do not use for
                branching.
              example: 'No team found for user #217'
            detail:
              type: string
              nullable: true
              description: Additional error details
              example: null
    FolderSharingType:
      type: string
      description: >
        Who can access a folder and the notes inside it.


        | Type | View | Edit |

        |------|------|------|

        | `PRIVATE` | Only you | Only you |

        | `ALL_MEMBER_VIEWER` | All workspace members | No member-wide edit
        access |

        | `ALL_MEMBER_EDITOR` | All workspace members | All workspace members |

        | `LIMITED` | Invited members only | Invited members only (per-member
        role) |


        - `PRIVATE`: Personal folder. Not shared with the workspace.

        - `ALL_MEMBER_VIEWER`: Every workspace member can view; no member-wide
        edit access is granted.

        - `ALL_MEMBER_EDITOR`: Every workspace member can view and edit.

        - `LIMITED`: Only explicitly invited members can access, each with an
        individual role (`VIEWER` or `EDITOR`).
      enum:
        - PRIVATE
        - ALL_MEMBER_VIEWER
        - ALL_MEMBER_EDITOR
        - LIMITED
      example: PRIVATE
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: API key in format {id}.{secret}

````