> ## 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.

# Search Wiki Pages

> Keyword-required search for wiki pages. Returns pages ranked by full-text relevance.

Returns 402 if wiki is not plan-eligible or not activated.




## OpenAPI

````yaml /openapi.yaml get /v1/external/workspaces/{workspaceGuid}/wiki/search/pages
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/workspaces/{workspaceGuid}/wiki/search/pages:
    get:
      tags:
        - Wiki
      summary: Search Wiki Pages
      description: >
        Keyword-required search for wiki pages. Returns pages ranked by
        full-text relevance.


        Returns 402 if wiki is not plan-eligible or not activated.
      operationId: searchWikiPages
      parameters:
        - name: workspaceGuid
          in: path
          description: Workspace GUID
          required: true
          schema:
            type: string
        - name: q
          in: query
          description: Search keyword (required)
          required: true
          schema:
            type: string
        - name: size
          in: query
          description: Result size (default 20, max 100)
          required: false
          schema:
            type: integer
            default: 20
            minimum: 1
            maximum: 100
      responses:
        '200':
          description: Ranked list of matching wiki pages
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WikiSearchPagesResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '402':
          description: Wiki plan requirement not met or not activated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WikiPlanRequired'
        '404':
          description: Workspace not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    WikiSearchPagesResponse:
      type: object
      required:
        - items
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/WikiSearchPage'
          description: Ranked list of matching wiki pages
    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
    WikiPlanRequired:
      type: object
      required:
        - error_code
        - message
        - status_code
      properties:
        success:
          type: boolean
          description: Always false for error responses
          example: false
        error_code:
          type: string
          enum:
            - WIKI_PLAN_REQUIRED
            - WIKI_NOT_ACTIVATED
          description: >
            Machine-readable error code:

            - `WIKI_PLAN_REQUIRED` — plan does not include wiki

            - `WIKI_NOT_ACTIVATED` — plan is eligible but admin has not
            activated wiki
          example: WIKI_PLAN_REQUIRED
        message:
          type: string
          description: Human-readable error message
          example: 위키 기능은 Pro 이상 요금제에서 사용할 수 있어요.
        current_plan:
          type: string
          nullable: true
          description: Current plan name, or null if no subscription
          example: Lite
        required_plans:
          type: array
          items:
            type: string
          nullable: true
          description: >
            Upgrade targets for `WIKI_PLAN_REQUIRED`; null for
            `WIKI_NOT_ACTIVATED`.

            Team Free Trial is intentionally excluded.
          example:
            - pro
            - max
            - team
            - enterprise
        action_url:
          type: string
          format: uri
          nullable: true
          description: >-
            Web link to act on (pricing page for users, null for team members
            without permission)
          example: https://tiro.ooo/#pricing
        status_code:
          type: integer
          description: HTTP status code (always 402)
          example: 402
    WikiSearchPage:
      type: object
      required:
        - guid
        - wikiId
        - canonicalName
        - pageType
        - score
      properties:
        guid:
          type: string
          description: Wiki page GUID
          example: page_abc123
        wikiId:
          type: integer
          format: int64
          description: Parent wiki ID
          example: 1
        canonicalName:
          type: string
          description: Canonical name of the page
          example: Alice Kim
        pageType:
          type: string
          enum:
            - ENTITY
            - MENTION
            - CUSTOM
          description: Type of wiki page
          example: ENTITY
        entitySubtype:
          type: string
          nullable: true
          description: Entity subtype
          example: PERSON
        score:
          type: number
          format: float
          description: Full-text relevance score (higher is more relevant)
          example: 0.85
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: API key in format {id}.{secret}

````