---
title: "Returns all SourceDocument Ids and their scores and (optional) hightlights that match the query parameters."
method: POST
path: "/search/sdoc"
tags: ["search"]
---

# Returns all SourceDocument Ids and their scores and (optional) hightlights that match the query parameters.

`POST /search/sdoc`

## Query parameters

- `project_id` integer, required
- `search_query` string, required
- `expert_mode` boolean, required
- `highlight` boolean, required
- `folder_id` integer, nullable
- `page_number` integer, nullable
- `page_size` integer, nullable
- `show_folders` boolean
- `show_child_folders` boolean

## Request body

- BodySearchSearchSdocs
  - `filter` FilterSdocColumnsInput, required
    - `id` string, required
    - `items` union[], required
      - union
        - FilterExpressionSdocColumns
          - `id` string, required
          - `column` union, required
            - 'SD_SOURCE_DOCUMENT_TYPE' | 'SD_SOURCE_DOCUMENT_NAME' | 'SD_TAG_ID_LIST_RECURSIVE' | 'SD_CODE_ID_LIST_RECURSIVE' | 'SD_FOLDER_ID_LIST_RECURSIVE' | 'SD_USER_ID_LIST' | 'SD_SPAN_ANNOTATIONS'
            - integer
          - `operator` union, required
            - 'ID_EQUALS' | 'ID_NOT_EQUALS'
            - 'NUMBER_EQUALS' | 'NUMBER_NOT_EQUALS' | 'NUMBER_GT' | 'NUMBER_LT' | 'NUMBER_GTE' | 'NUMBER_LTE'
            - 'STRING_CONTAINS' | 'STRING_EQUALS' | 'STRING_NOT_EQUALS' | 'STRING_STARTS_WITH' | 'STRING_ENDS_WITH'
            - 'ID_LIST_CONTAINS' | 'ID_LIST_NOT_CONTAINS'
            - 'IDLR_CONTAINS' | 'IDLR_NOT_CONTAINS' | 'IDLR_CONTAINS_RECURSIVE'
            - 'LIST_CONTAINS' | 'LIST_NOT_CONTAINS'
            - 'DATE_EQUALS' | 'DATE_GT' | 'DATE_LT' | 'DATE_GTE' | 'DATE_LTE'
            - 'BOOLEAN_EQUALS' | 'BOOLEAN_NOT_EQUALS'
          - `value` union, required
            - boolean
            - string
            - integer
            - string[]
            - array[]
              - …
        - FilterSdocColumnsInput — recursive
    - `logic_operator` 'or' | 'and', required — This tells our filter how to combine multiple column expressions.
  - `sorts` SortSdocColumns[], required
    - `column` union, required
      - 'SD_SOURCE_DOCUMENT_TYPE' | 'SD_SOURCE_DOCUMENT_NAME' | 'SD_TAG_ID_LIST_RECURSIVE' | 'SD_CODE_ID_LIST_RECURSIVE' | 'SD_FOLDER_ID_LIST_RECURSIVE' | 'SD_USER_ID_LIST' | 'SD_SPAN_ANNOTATIONS'
      - integer
    - `direction` 'asc' | 'desc', required

## Response `200`

Successful Response

- PaginatedSDocHits
  - `hits` HierarchicalElasticSearchHit[], required — The IDs, scores and (optional) highlights of Document search results on the requested page.
    - `id` integer, required — The ID of the Document
    - `score` number, nullable — The score of the Document that was found by a ES Query
    - `highlights` string[] — The highlights found within the document.
    - `is_folder` boolean, required — Indicates if the hit is a folder (True) or a document (False).
    - `sub_rows` HierarchicalElasticSearchHit[], required — Sub-rows of the hit, if it is a folder.
  - `sdocs` object, required — A dictionary of sdoc_id and SourceDocumentRead.
  - `sdoc_folders` object, required — A dictionary of folder_id and FolderRead.
  - `annotators` object, required — A dictionary of sdoc_id and a list of annotator user IDs that annotated the document.
  - `tags` object, required — A dictionary of sdoc_id and a list of tag IDs that are associated with the document.
  - `memos` object, required — A dictionary of sdoc_id and a list of memo IDs that are attached to the document.
  - `total_results` integer, required — The total number of hits. Used for pagination.

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/uhh-lt/apis/discourse-analysis-tool-suite-api.md) · [All operations](https://skmtc.net/uhh-lt/apis/discourse-analysis-tool-suite-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/uhh-lt/discourse-analysis-tool-suite-api/revisions/6b22366ce2d1/schema)
