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

# Explain Search Results

> Explain search results

Generate an explanation from a previous Scholar Search, Web Search, or Smart Search request. Pass the returned search `id` as `search_id`.

**Best for:** Summarizing search results, producing localized explanations, and turning search output into a readable answer.

## Example

```bash theme={null}
curl -X POST "https://api.aisa.one/apis/v1/scholar/search/explain" \
  -H "Authorization: Bearer ${AISA_API_KEY}" \
  -H "Content-Type: application/json" \
  -d '{
    "search_id": "search_id",
    "response_mode": "NON_STREAMING",
    "language": "en",
    "detail_level": "BRIEF"
  }'
```

## Response

`NON_STREAMING` returns a JSON object with a `message` field. `COMPLETE` and `INCREMENTAL` stream server-sent events for clients that can consume streaming responses.


## OpenAPI

````yaml openapi/platform-txyz-openapi.json POST /scholar/search/explain
openapi: 3.0.0
info:
  title: TXYZ Platform API
  version: 1.0.0
  description: >-
    API documentation for platform.txyz.ai services including academic search
    functionality
  contact:
    email: support@txyz.ai
  license:
    name: Proprietary
servers:
  - url: https://api.aisa.one/apis/v1
security:
  - BearerAuth: []
paths:
  /scholar/search/explain:
    post:
      tags:
        - Search
        - Explanation
      summary: Explain search results
      description: >-
        Generate explanations for search results in different languages and
        formats. The COMPLETE and INCREMENTAL response modes stream server-sent
        events; NON_STREAMING returns a JSON response.
      operationId: explainSearch
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExplainSearchRequest'
      responses:
        '200':
          description: >-
            Successful explanation response. COMPLETE/INCREMENTAL stream
            text/event-stream; NON_STREAMING returns application/json.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExplainSearchResponse'
            text/event-stream:
              schema:
                type: string
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalError'
      security:
        - BearerAuth: []
components:
  schemas:
    ExplainSearchRequest:
      type: object
      required:
        - search_id
      properties:
        search_id:
          type: string
          description: ID of the search to explain
        response_mode:
          type: string
          enum:
            - COMPLETE
            - INCREMENTAL
            - NON_STREAMING
          default: NON_STREAMING
          description: >-
            Format of the explanation response. COMPLETE and INCREMENTAL stream
            server-sent events; NON_STREAMING returns a JSON response.
        language:
          type: string
          default: en
          description: Language code for the explanation (e.g., en, zh, ar)
          example: ar
        detail_level:
          type: string
          enum:
            - BRIEF
            - MODERATE
            - DETAILED
          default: MODERATE
          description: Level of detail in the explanation
    ExplainSearchResponse:
      type: object
      required:
        - message
      properties:
        message:
          type: string
          description: Generated explanation text.
      description: JSON explanation response returned when response_mode is NON_STREAMING.
    ErrorResponse:
      type: object
      properties:
        error:
          type: string
          description: Error message describing what went wrong
        code:
          type: integer
          description: HTTP status code
        details:
          type: string
          description: Additional error details
  responses:
    BadRequest:
      description: Bad request - invalid parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Unauthorized:
      description: Unauthorized - invalid or missing API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    NotFound:
      description: Search ID not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    TooManyRequests:
      description: Rate limit exceeded
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    InternalError:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````