---
title: "Get analyst buy/sell/hold opinions across companies in a market."
url: "https://developer.argaam.com/apis/fundamentals-layer-api-sandbox-v1/versions/6df307f2-7eaf-4885-847f-c59d9ce4f0bb/operations/getMarketsByMarketIdAnalystOpinions"
---

> Full API specification: https://developer.argaam.com/apis/fundamentals-layer-api-sandbox-v1/versions/6df307f2-7eaf-4885-847f-c59d9ce4f0bb.md

# Get analyst buy/sell/hold opinions across companies in a market.

`GET` `/api/v1.1/markets/{marketId}/analyst-opinions`

Operation ID: `getMarketsByMarketIdAnalystOpinions`

Returns paginated analyst opinion records for all covered companies in the specified market. Each record includes the analyst firm name, rating (Buy / Overweight / Hold / Underweight / Sell), target price, and publication date. **Pagination** is controlled by `?page=` (1-based) and `?records=`. Default: page 1, 10 records per page. **Tip:** For estimates (EPS, revenue consensus) use `GET /markets/{marketId}/analyst-estimates`. For a single company's opinions use `GET /companies/{companyId}/analyst-opinions`.

## Path parameters

- `marketId` (integer, int32, required) - Market ID (e.g. `1` for Saudi Tadawul).

## Query parameters

- `page` (integer, int32, optional) - Page number (1-based). Default: `1`. Defaults to `1`.
- `records` (integer, int32, optional) - Records per page. Default: `10`. Defaults to `10`.

## Responses

- `200` - Success

## OpenAPI definition

```yaml
openapi: 3.0.1
info:
  title: Fundamentals Layer API
  version: v1.1
servers:
  - url: https://api-sandbox.argaam.com
    description: Argaam API Gateway (Sandbox)
paths:
  /api/v1.1/markets/{marketId}/analyst-opinions:
    get:
      tags:
        - Markets
      parameters:
        - name: marketId
          in: path
          required: true
          schema:
            type: integer
            format: int32
          description: Market ID (e.g. `1` for Saudi Tadawul).
          example: 3
        - name: page
          in: query
          description: "Page number (1-based). Default: `1`. Defaults to `1`."
          schema:
            type: integer
            format: int32
            default: 1
          example: 1
        - name: records
          in: query
          description: "Records per page. Default: `10`. Defaults to `10`."
          schema:
            type: integer
            format: int32
            default: 10
          example: 10
      responses:
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiV1Response"
      summary: Get analyst buy/sell/hold opinions across companies in a market.
      description: "Returns paginated analyst opinion records for all covered
        companies\r

        in the specified market. Each record includes the analyst firm name,\r

        rating (Buy / Overweight / Hold / Underweight / Sell), target price,\r

        and publication date.\r

        \                   \r

        **Pagination** is controlled by `?page=` (1-based) and `?records=`.\r

        Default: page 1, 10 records per page.\r

        \            \r

        **Tip:** For estimates (EPS, revenue consensus) use\r

        `GET /markets/{marketId}/analyst-estimates`. For a single company's\r

        opinions use `GET /companies/{companyId}/analyst-opinions`."
      operationId: getMarketsByMarketIdAnalystOpinions
security:
  - ApiKeyAuth: []
components:
  schemas:
    ApiV1Response:
      type: object
      properties:
        success:
          type: boolean
        apiVersion:
          type: string
          nullable: true
        timestamp:
          type: string
          format: date-time
        requestId:
          type: string
          nullable: true
        data:
          nullable: true
        meta:
          $ref: "#/components/schemas/ApiV1Meta"
        rateLimit:
          $ref: "#/components/schemas/ApiV1RateLimit"
      additionalProperties: false
    ApiV1Meta:
      type: object
      properties:
        page:
          type: integer
          format: int32
        pageSize:
          type: integer
          format: int32
        totalRecords:
          type: integer
          format: int32
        totalPages:
          type: integer
          format: int32
          readOnly: true
        hasNextPage:
          type: boolean
          readOnly: true
        hasPreviousPage:
          type: boolean
          readOnly: true
      additionalProperties: false
    ApiV1RateLimit:
      type: object
      properties:
        limit:
          type: integer
          format: int32
        remaining:
          type: integer
          format: int32
        reset:
          type: string
          format: date-time
      additionalProperties: false
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: apikey
```
