> ## Documentation Index
> Fetch the complete documentation index at: https://test-62a57ffd.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Image search



## OpenAPI

````yaml api-reference/openapi.json get /v1/images/search
openapi: 3.1.0
info:
  title: Brave Search Products API
  description: |

    Product APIs exposed by Brave Search.

    You will be able to:

    * **Web Search**
  termsOfService: http://localhost:10000/terms-of-use/
  contact:
    name: Brave Search API
    url: http://localhost:10000/contact/
    email: search-api@brave.com
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  version: 1.0.0
  x-logo:
    url: >-
      https://cdn.search.brave.com/docs/681607ea86f83e9e04d242342a18f73f83f37137f5cd5246753f7a7a5beaca32-brave-logo-home-dark.svg
servers:
  - url: /res
    description: Default server
security:
  - ApiKeyAuth: []
tags:
  - name: web
    description: Get search results from the web
    x-displayName: Web Search
    x-mint:
      title: Web Search API
      description: Get search results from the web
  - name: news
    description: Get search results from the news
    x-displayName: News Search
  - name: videos
    description: Get search results from the videos
    x-displayName: Videos Search
  - name: images
    description: Get search results from the images
    x-displayName: Images Search
  - name: summarizer
    description: Get summarized search results
    x-displayName: AI Search
  - name: other
    description: Other API services
    x-displayName: Other
paths:
  /v1/images/search:
    get:
      tags:
        - images
      summary: Image search
      operationId: search_images_v1_images_search_get
      parameters:
        - name: q
          in: query
          required: true
          schema:
            type: string
            maxLength: 400
            minLength: 1
            title: Q
            description: >-
              The user's search query term. Query can not be empty. Maximum of
              400 characters and 50 words in the query.
          description: >-
            The user's search query term. Query can not be empty. Maximum of 400
            characters and 50 words in the query.
        - name: search_lang
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/Language-Input'
            description: >-
              The search language preference. The 2 or more character language
              code for which the search results are provided.
            default: en
          description: >-
            The search language preference. The 2 or more character language
            code for which the search results are provided.
        - name: country
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/SearchCountry'
            description: >-
              The search query country, where the results come from. The country
              string is limited to 2 character country codes of supported
              countries.
            default: US
          description: >-
            The search query country, where the results come from. The country
            string is limited to 2 character country codes of supported
            countries.
        - name: safesearch
          in: query
          required: false
          schema:
            $ref: >-
              #/components/schemas/app__models__products__search__v1__images__SafeSearch
            description: >-
              Filters search results for adult content. The following values are
              supported: off (No filtering is done), strict (Drops all adult
              content from search results). The default value is strict
            default: strict
          description: >-
            Filters search results for adult content. The following values are
            supported: off (No filtering is done), strict (Drops all adult
            content from search results). The default value is strict
        - name: count
          in: query
          required: false
          schema:
            type: integer
            maximum: 200
            minimum: 1
            description: >-
              The number of search results returned in response. The maximum is
              200. The actual number delivered may be less than requested.
            default: 50
            title: Count
          description: >-
            The number of search results returned in response. The maximum is
            200. The actual number delivered may be less than requested.
        - name: spellcheck
          in: query
          required: false
          schema:
            type: boolean
            title: Spellcheck
            description: >-
              Whether to spellcheck provided query. If the spellchecker is
              enabled, the modified query is always used for search. The
              modified query can be found in altered key from the query response
              model.
            default: true
          description: >-
            Whether to spellcheck provided query. If the spellchecker is
            enabled, the modified query is always used for search. The modified
            query can be found in altered key from the query response model.
        - name: x-subscription-token
          in: header
          required: true
          schema:
            type: string
            title: Subscription token
            description: The subscription token that was generated for the product.
            examples:
              - BSAgdIxiH0OLq6fnx6F-xp8Yplv4uOp
          description: The subscription token that was generated for the product.
        - name: api-version
          in: header
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: API version
            description: >-
              The API version to use.                 This is denoted by the
              format `YYYY-MM-DD`.                 Default is the latest that is
              available.
          description: >-
            The API version to use.                 This is denoted by the
            format `YYYY-MM-DD`.                 Default is the latest that is
            available.
        - name: accept
          in: header
          required: false
          schema:
            $ref: '#/components/schemas/Accept'
            title: Media type
            description: The default supported media type is application/json.
            examples:
              - application/json
            default: application/json
          description: The default supported media type is application/json.
        - name: cache-control
          in: header
          required: false
          schema:
            anyOf:
              - $ref: '#/components/schemas/CacheControl'
              - type: 'null'
            title: Cache control
            description: >-
              Brave Search will return cached content by
              default.                 To prevent caching set the Cache-Control
              header to no-cache.                 This is currently done as best
              effort.
          description: >-
            Brave Search will return cached content by default.                
            To prevent caching set the Cache-Control header to
            no-cache.                 This is currently done as best effort.
        - name: user-agent
          in: header
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: User agent
            description: >-
              The user agent originating the request.                 Brave
              search can utilize the user agent to provide a
              different                 experience depending on the device as
              described by the string.                 The user agent should
              follow the commonly used browser agent                 strings on
              each platform. For more information on curating user
              agents,                 see [RFC
              9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-user-agent).
            examples:
              - >-
                **Android** Mozilla/5.0 (Linux; Android 12) AppleWebKit/537.36
                (KHTML, like Gecko) Chrome/103.0.5060.71 Mobile Safari/537.36
              - >-
                **iOS** Mozilla/5.0 (iPhone; CPU iPhone OS 15_5 like Mac OS X)
                AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/103.0.5060.63
                Mobile/15E148 Safari/604.1
              - >-
                **macOS** Mozilla/5.0 (Macintosh; Intel Mac OS X 12_4)
                AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0
                Safari/537.36
              - >-
                **Windows** Mozilla/5.0 (Windows NT 10.0; Win64; x64)
                AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0
                Safari/537.36
          description: >-
            The user agent originating the request.                 Brave search
            can utilize the user agent to provide a different                
            experience depending on the device as described by the
            string.                 The user agent should follow the commonly
            used browser agent                 strings on each platform. For
            more information on curating user agents,                 see [RFC
            9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-user-agent).
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ImageSearchApiResponse'
        '404':
          content:
            application/json:
              examples:
                SUBSCRIPTION_NOT_FOUND:
                  summary: Missing subscription.
                  value:
                    type: ErrorResponse
                    errors:
                      - id: 5d832250-9396-4f6e-b84a-2a1fe524cd7d
                        code: SUBSCRIPTION_NOT_FOUND
                        detail: No subscription found.
                        status: 404
                        meta:
                          component: subscriptions
                    time: 1663072993
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not Found
        '422':
          content:
            application/json:
              examples:
                SUBSCRIPTION_TOKEN_INVALID:
                  summary: Invalid subscription token.
                  value:
                    type: ErrorResponse
                    errors:
                      - id: 5d832250-9396-4f6e-b84a-2a1fe524cd7d
                        code: SUBSCRIPTION_TOKEN_INVALID
                        detail: The provided subscription token is invalid.
                        status: 422
                        meta:
                          component: authentication
                    time: 1663072993
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unprocessable Entity
        '429':
          content:
            application/json:
              examples:
                RATE_LIMITED:
                  summary: Rate limited.
                  value:
                    type: ErrorResponse
                    errors:
                      - id: 5d832250-9396-4f6e-b84a-2a1fe524cd7d
                        code: RATE_LIMITED
                        detail: Request rate limit exceeded for plan.
                        status: 429
                        meta:
                          component: rate_limiter
                    time: 1663072993
                QUOTA_LIMITED:
                  summary: Quota limited.
                  value:
                    type: ErrorResponse
                    errors:
                      - id: 5d832250-9396-4f6e-b84a-2a1fe524cd7d
                        code: QUOTA_LIMITED
                        detail: Request quota limit exceeded for plan.
                        status: 429
                        meta:
                          component: rate_limiter
                    time: 1663072993
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Too Many Requests
components:
  schemas:
    Language-Input:
      type: string
      enum:
        - ar
        - eu
        - bn
        - bg
        - ca
        - zh-hans
        - zh-hant
        - hr
        - cs
        - da
        - nl
        - en
        - en-gb
        - et
        - fi
        - fr
        - gl
        - de
        - el
        - gu
        - he
        - hi
        - hu
        - is
        - it
        - jp
        - kn
        - ko
        - lv
        - lt
        - ms
        - ml
        - mr
        - nb
        - pl
        - pt-br
        - pt-pt
        - pa
        - ro
        - ru
        - sr
        - sk
        - sl
        - es
        - sv
        - ta
        - te
        - th
        - tr
        - uk
        - vi
      title: Language
    SearchCountry:
      type: string
      enum:
        - AR
        - AU
        - AT
        - BE
        - BR
        - CA
        - CL
        - DK
        - FI
        - FR
        - DE
        - GR
        - HK
        - IN
        - ID
        - IT
        - JP
        - KR
        - MY
        - MX
        - NL
        - NZ
        - 'NO'
        - CN
        - PL
        - PT
        - PH
        - RU
        - SA
        - ZA
        - ES
        - SE
        - CH
        - TW
        - TR
        - GB
        - US
        - ALL
      title: SearchCountry
    app__models__products__search__v1__images__SafeSearch:
      type: string
      enum:
        - 'off'
        - strict
      title: SafeSearch
    Accept:
      type: string
      enum:
        - application/json
        - '*/*'
      title: Accept
    CacheControl:
      type: string
      enum:
        - no-cache
      const: no-cache
      title: CacheControl
    ImageSearchApiResponse:
      properties:
        type:
          type: string
          enum:
            - images
          const: images
          title: Type
          default: images
        query:
          $ref: >-
            #/components/schemas/app__models__products__search__v1__images__Query
          description: Image search query string.
        results:
          items:
            $ref: '#/components/schemas/ImageResult'
          type: array
          title: Results
          description: The list of image results for the given query.
        extra:
          $ref: >-
            #/components/schemas/app__models__products__search__v1__images__Extra
          description: Additional information about the image search results.
      type: object
      required:
        - query
        - results
        - extra
      title: ImageSearchApiResponse
    ErrorResponse:
      properties:
        type:
          type: string
          title: Type
          default: ErrorResponse
        error:
          $ref: '#/components/schemas/ErrorModel'
        time:
          type: integer
          title: Time
          default: 0
      type: object
      required:
        - error
      title: ErrorResponse
    app__models__products__search__v1__images__Query:
      properties:
        original:
          type: string
          title: Original
          description: The original query that was requested.
        altered:
          anyOf:
            - type: string
            - type: 'null'
          title: Altered
          description: >-
            The altered query by the spellchecker. This is the query that is
            used to search.
        spellcheck_off:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Spellcheck Off
          description: Whether the spellchecker is enabled or disabled.
        show_strict_warning:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Show Strict Warning
          description: >-
            The value is `true` if the lack of results is due to a `strict`
            safesearch setting. Adult content relevant to the query was found,
            but was blocked by safesearch.
      type: object
      required:
        - original
      title: Query
    ImageResult:
      properties:
        type:
          type: string
          title: Type
          description: >-
            The type of image search API result. The value is always
            `image_result`.
          default: image_result
        title:
          anyOf:
            - type: string
            - type: 'null'
          title: Title
          description: The title of the image.
        url:
          anyOf:
            - type: string
            - type: 'null'
          title: Url
          description: The original page URL where the image was found.
        source:
          anyOf:
            - type: string
            - type: 'null'
          title: Source
          description: The source domain where the image was found.
        page_fetched:
          anyOf:
            - type: string
            - type: 'null'
          title: Page Fetched
          description: >-
            The ISO date time when the page was last fetched. The format is
            `YYYY-MM-DDTHH:MM:SSZ`.
        thumbnail:
          anyOf:
            - $ref: >-
                #/components/schemas/app__models__products__search__v1__images__Thumbnail
            - type: 'null'
          description: The thumbnail for the image.
        properties:
          anyOf:
            - $ref: '#/components/schemas/Properties'
            - type: 'null'
          description: Metadata for the image.
        meta_url:
          anyOf:
            - $ref: >-
                #/components/schemas/app__models__products__search__v1__images__MetaUrl
            - type: 'null'
          description: >-
            Aggregated information on the URL associated with the image search
            result.
        confidence:
          anyOf:
            - type: string
              enum:
                - low
                - medium
                - high
            - type: 'null'
          title: Confidence
          description: The confidence level for the image result.
      type: object
      title: ImageResult
    app__models__products__search__v1__images__Extra:
      properties:
        might_be_offensive:
          type: boolean
          title: Might Be Offensive
          description: >-
            Indicates whether the image search results might contain offensive
            content.
          default: false
      type: object
      title: Extra
    ErrorModel:
      properties:
        id:
          type: string
          title: Id
        status:
          type: integer
          title: Status
        code:
          $ref: '#/components/schemas/ErrorCode'
        detail:
          anyOf:
            - type: string
            - type: 'null'
          title: Detail
        meta:
          anyOf:
            - type: object
            - type: 'null'
          title: Meta
      type: object
      required:
        - id
        - status
        - code
      title: ErrorModel
    app__models__products__search__v1__images__Thumbnail:
      properties:
        src:
          anyOf:
            - type: string
            - type: 'null'
          title: Src
          description: The served URL of the image.
        width:
          anyOf:
            - type: integer
            - type: 'null'
          title: Width
          description: The width of the image.
        height:
          anyOf:
            - type: integer
            - type: 'null'
          title: Height
          description: The height of the image.
      type: object
      title: Thumbnail
    Properties:
      properties:
        url:
          anyOf:
            - type: string
            - type: 'null'
          title: Url
          description: The image URL.
        placeholder:
          anyOf:
            - type: string
            - type: 'null'
          title: Placeholder
          description: The lower resolution placeholder image URL.
        width:
          anyOf:
            - type: integer
            - type: 'null'
          title: Width
          description: The width of the image.
        height:
          anyOf:
            - type: integer
            - type: 'null'
          title: Height
          description: The height of the image.
      type: object
      title: Properties
    app__models__products__search__v1__images__MetaUrl:
      properties:
        scheme:
          anyOf:
            - type: string
            - type: 'null'
          title: Scheme
          description: The protocol scheme extracted from the URL.
        netloc:
          anyOf:
            - type: string
            - type: 'null'
          title: Netloc
          description: The network location part extracted from the URL.
        hostname:
          anyOf:
            - type: string
            - type: 'null'
          title: Hostname
          description: The lowercased domain name extracted from the URL.
        favicon:
          anyOf:
            - type: string
            - type: 'null'
          title: Favicon
          description: The favicon used for the URL.
        path:
          anyOf:
            - type: string
            - type: 'null'
          title: Path
          description: The hierarchical path of the URL useful as a display string.
      type: object
      title: MetaUrl
    ErrorCode:
      type: string
      enum:
        - INTERNAL
        - INVALID_ID
        - UNAUTHORIZED
        - RESOURCE_NOT_ALLOWED
        - FORBIDDEN
        - VALIDATION
        - INVALID_PASSWORD
        - INVALID_EMAIL
        - INVALID_NAME
        - INVALID_COMPANY
        - INVALID_VAT_NUMBER
        - INVALID_DESCRIPTION
        - INVALID_USAGE
        - INVALID_INVOICE_NOTES
        - INVALID_PURCHASE_ORDER
        - PASSWORD_REUSED
        - PASSWORD_BREACHED
        - INVALID_TIME_RANGE
        - USER_ALREADY_EXISTS
        - USER_INACTIVE
        - RESET_PASSWORD_BAD_TOKEN
        - USER_NOT_FOUND
        - LOGIN_BAD_CREDENTIALS
        - LOGIN_USER_LOCKED_OUT
        - LOGIN_USER_NOT_VERIFIED
        - LOGIN_INVALID_MFA_CHALLENGE
        - VERIFY_USER_BAD_TOKEN
        - VERIFY_USER_ALREADY_VERIFIED
        - PLAN_NOT_FOUND
        - PLAN_ALREADY_EXISTS
        - PLAN_ALREADY_PUBLIC
        - PLAN_ALREADY_ALLOWED
        - STRIPE_CUSTOMER_NOT_EXISTS
        - STRIPE_SUBSCRIPTION_NOT_EXISTS
        - PRODUCT_NOT_FOUND
        - API_VERSION_NOT_FOUND
        - PRODUCT_ALREADY_EXISTS
        - OPTION_NOT_FOUND
        - OPTION_ALREADY_EXISTS
        - OPTION_NOT_IN_PLAN
        - SUBSCRIPTION_TOKEN_LIMIT
        - SUBSCRIPTION_TOKEN_INVALID
        - SUBSCRIPTION_TOKEN_INACTIVE
        - SUBSCRIPTION_TOKEN_DEACTIVATED
        - SUBSCRIPTION_TOKEN_NOT_FOUND
        - SUBSCRIPTION_ALREADY_EXISTS
        - SUBSCRIPTION_NOT_FOUND
        - ACTIVITY_SESSION_NOT_FOUND
        - ORGANIZATION_NOT_FOUND
        - ORGANIZATION_NOT_MEMBER
        - NO_PLANS_SUBSCRIBED
        - QUOTA_LIMITED
        - RATE_LIMITED
        - USAGE_LIMIT_EXCEEDED
        - USAGE_LIMIT_NOT_FOUND
        - USAGE_LIMIT_ALREADY_EXISTS
        - RESOURCE_NOT_SUBSCRIBED
        - CONTENT_TYPE_NOT_SUPPORTED
        - AGGREGATION_NOT_SUPPORTED
        - TIME_GRANULARITY_NOT_SUPPORTED
        - CURRENCY_NOT_FOUND
        - CURRENCY_ALREADY_EXISTS
        - CSRF_VERIFICATION
        - INVALID_GOGGLE_URL
        - INVALID_URL
        - INVALID_DOMAIN
        - INVALID_RESULT_FILTER
        - CONTENT_URL_LIMIT_EXCEEDED
        - TOS_NOT_FOUND
        - ADDENDUM_NOT_FOUND
        - REDACTION_NOT_FOUND
        - REDACTION_ALREADY_EXISTS
        - ADDENDUM_ALREADY_EXISTS
        - TOS_ALREADY_EXISTS
        - QUERY_NOT_FOUND
        - EMAIL_DOMAIN_IN_BLOCKLIST_NOT_FOUND
        - EMAIL_DOMAIN_IN_BLOCKLIST_ALREADY_EXISTS
        - EMAIL_DOMAIN_NOT_ALLOWED
        - INVALID_TOTP_TOKEN
        - EMAIL_MFA_SENT_EXCEEDED
        - EMAIL_MFA_NOT_SENT
        - AUTHENTICATOR_MFA_ALREADY_EXISTS
        - AUTHENTICATOR_MFA_NOT_FOUND
        - MFA_FAIL_TOO_MANY_ATTEMPTS
        - INVALID_RECOVERY_CODE
        - MFA_TOKEN_NOT_FOUND
        - PAYMENT_METHOD_NOT_FOUND
        - PAYMENT_METHOD_ALREADY_EXISTS
        - ROLE_NOT_FOUND
        - USER_ALREADY_MEMBER
        - ORGANIZATION_INVITATION_ALREADY_EXISTS
        - INVALID_ORGANIZATION_INVITATION
        - ORGANIZATION_INVITATION_NOT_FOUND
        - COMPLIANCE_NOT_FOUND
        - AWS_MARKETPLACE_TOKEN_INVALID
        - AWS_MARKETPLACE_TOKEN_EXPIRED
        - AWS_MARKETPLACE_CUSTOMER_RESOLUTION_FAILED
        - AWS_MARKETPLACE_PRODUCT_NOT_FOUND
        - AWS_MARKETPLACE_CREDENTIALS_MISSING
        - AWS_MARKETPLACE_API_ERROR
        - EMAIL_CHANGE_BAD_TOKEN
        - EMAIL_CHANGE_INVALID_MFA_CHALLENGE
        - EMAIL_CHANGE_MFA_FAIL_TOO_MANY_ATTEMPTS
        - EMAIL_CHANGE_RATE_LIMITED
        - EMAIL_CHANGE_INVALID_PASSWORD
      title: ErrorCode
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-subscription-token
      description: The subscription token that was generated for the product.

````