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

# Company Profile

> Retrieve the full profile for an NGX-listed company.

The company detail endpoint returns everything you need to build a comprehensive company page: current price data, 52-week range, market cap, trailing EPS, sector classification, contact details, and a plain-language business description.

It also returns pre-computed valuation and liquidity ratios derived from the latest available financial statements — so you don't need to calculate these yourself:

* **`pb_ratio`** — price-to-book (current price / book value per share)
* **`debt_to_equity`** — total liabilities / shareholders' equity
* **`current_ratio`** — current assets / current liabilities
* **`dividend_yield`** — from the most recent ex-dividend date

All ratio fields are `null` when the underlying financial data is not yet available for the company.

The response also includes `logo_url`, a ready-to-use PNG for the company's logo. Need a different format or size? See the [company logos guide](/guides/company-logos).

The ticker symbol lookup is case-insensitive, so `dangcem`, `DANGCEM`, and `DangCem` all resolve to the same company. This endpoint requires a Starter plan or higher.


## OpenAPI

````yaml GET /companies/{symbol}
openapi: 3.1.0
info:
  title: NGN Market API
  version: '1.0'
  description: >
    The NGN Market API provides programmatic access to Nigerian Exchange Group
    (NGX) market data, including equities, forex rates, company profiles,
    indices, bonds, and financial news.


    ## Base URL


    All endpoints are served from:


    ```

    https://api.ngnmarket.com/v1

    ```


    ## Authentication


    Every request requires a Bearer token in the `Authorization` header:


    ```

    Authorization: Bearer ngm_live_YOUR_KEY

    ```


    Generate and manage your API keys from the [developer
    dashboard](https://ngnmarket.com/developer).


    ## Plans & Quotas


    | Plan | Monthly Calls | Requests/min | Price |

    | :--- | ---: | ---: | :--- |

    | Free | 3,000 | 30 | Free |

    | Hobby | 10,000 | 60 | ₦15,000/mo |

    | Starter | 100,000 | 120 | ₦50,000/mo |

    | Growth | 500,000 | 200 | ₦200,000/mo |

    | Business | 2,000,000 | 300 | ₦700,000/mo |

    | Enterprise | Unlimited | Unlimited | Custom |


    Every response includes a `meta` object showing your current usage and
    remaining quota. Exceeding the per-minute rate limit returns `429
    RATE_LIMITED`. Exceeding the monthly quota returns `429 QUOTA_EXCEEDED`.


    ## Response Envelope


    All responses use a consistent JSON envelope:


    ```json

    {
      "success": true,
      "data": { ... },
      "meta": {
        "plan": "starter",
        "calls_used": 4821,
        "calls_remaining": 95179,
        "reset_at": "2026-05-01T00:00:00.000Z"
      }
    }

    ```
  contact:
    name: NGN Market Support
    email: support@ngnmarket.com
    url: https://ngnmarket.com
  license:
    name: Proprietary
servers:
  - url: https://api.ngnmarket.com/v1
    description: Production
security:
  - BearerAuth: []
tags:
  - name: Market
    description: >-
      Daily market snapshots, top trades, movers, market breadth, sectors, and
      YTD performers.
  - name: Companies
    description: >-
      Browse, search, and retrieve profiles, price charts, and financial
      statements for NGX-listed companies.
  - name: Forex
    description: Current and historical NGN exchange rates against major currencies.
  - name: Indices
    description: >-
      All NGX market indices, including list, detail with constituents, and
      historical chart data.
  - name: ETFs
    description: >-
      NGX-listed Exchange Traded Funds and ETPs — list, full fund detail, and
      historical daily price data.
  - name: Bonds
    description: >-
      NGX-listed bond instruments with issuer details, coupon rates, and
      maturity dates.
  - name: Disclosures
    description: >-
      Official corporate filings from NGX-listed companies (financial
      statements, AGM notices, board meetings, director dealings, earnings
      forecasts). Sourced from NGX Group and updated twice daily.
  - name: Blog
    description: >-
      Published NGN Market blog posts. List, search, and filter by category or
      company.
  - name: Dividends
    description: >-
      Market-wide NGX dividend calendar. Browse upcoming and recently paid
      dividends across all listed companies with optional search and pagination.
  - name: Account
    description: >-
      Quota status, 30-day request analytics, and paginated request logs for the
      authenticated user.
paths:
  /companies/{symbol}:
    get:
      tags:
        - Companies
      summary: Full company profile
      description: >
        Returns everything you need to build a comprehensive company page:
        current price data, 52-week range, market cap, trailing EPS, sector and
        sub-sector classification, contact details, and a business description.
        The ticker symbol lookup is case-insensitive.


        Price data is refreshed **every 20 minutes during NGX trading hours
        (Monday–Friday, 09:00–16:00 WAT)**. The `last_updated` field in the
        response indicates exactly when the price was last written. Outside
        trading hours, values reflect the most recent session close.


        **Plan required:** Hobby
      operationId: getCompanyDetail
      parameters:
        - name: symbol
          in: path
          description: NGX ticker symbol (e.g. `DANGCEM` or `GTCO`). Case-insensitive.
          required: true
          schema:
            type: string
            example: DANGCEM
      responses:
        '200':
          description: Company detail retrieved successfully.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/SuccessEnvelope'
                  - type: object
                    properties:
                      data:
                        $ref: '#/components/schemas/CompanyDetail'
              examples:
                dangcem:
                  summary: Dangote Cement profile
                  value:
                    success: true
                    data:
                      id: 12
                      symbol: DANGCEM
                      logo_url: >-
                        https://cdn.jsdelivr.net/gh/ngnmarket/ngx-logos/dist/png/DANGCEM.png
                      international_sec_id: NGDANGCEM0009
                      name: Dangote Cement Plc
                      sector: Industrial Goods
                      sub_sector: Building Materials
                      market_classification: Main Board
                      shares_outstanding: 17040507405
                      date_listed: '2010-10-26'
                      date_incorporated: '1992-11-04'
                      about: >-
                        Dangote Cement is Africa's largest cement producer with
                        operations across Nigeria and 9 other African countries.
                      website: https://dangotecement.com
                      email: investor.relations@dangotecement.com
                      phone: +234 1 448 2200
                      address: Union Marble House, 1 Alfred Rewane Road, Ikoyi, Lagos
                      nature_of_business: Manufacture and sale of cement
                      current_price: 302.5
                      prev_close: 300
                      open_price: 300
                      day_high: 305
                      day_low: 299.5
                      volume: 1284729
                      value_traded: 388431525.25
                      market_cap: 5154853514312.5
                      price_change: 2.5
                      price_change_percent: 0.83
                      high52wk: 320
                      high_52wk_date: '2026-01-15'
                      low52wk: 258
                      low_52wk_date: '2025-06-03'
                      ttm_eps: 24.12
                      latest_equity: 1423900000000
                      ttm_dividends: -206000000000
                      last_updated: '2026-04-21T14:30:00.000Z'
                    meta:
                      plan: starter
                      calls_used: 4821
                      calls_remaining: 95179
                      reset_at: '2026-05-01T00:00:00.000Z'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/PlanRequired'
        '404':
          description: Company not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
              example:
                success: false
                error:
                  code: NOT_FOUND
                  message: Company 'UNKNOWN' not found.
        '429':
          $ref: '#/components/responses/QuotaExceeded'
        '500':
          $ref: '#/components/responses/ServerError'
components:
  schemas:
    SuccessEnvelope:
      type: object
      required:
        - success
      properties:
        success:
          type: boolean
          const: true
        meta:
          $ref: '#/components/schemas/Meta'
    CompanyDetail:
      type: object
      properties:
        id:
          type: integer
        symbol:
          type: string
        logo_url:
          type: string
          description: URL of the company's logo image.
          example: https://cdn.jsdelivr.net/gh/ngnmarket/ngx-logos/dist/png/DANGCEM.png
        international_sec_id:
          type: string
        name:
          type: string
        sector:
          type: string
        sub_sector:
          type: string
        market_classification:
          type: string
        shares_outstanding:
          type: number
        date_listed:
          type: string
          format: date
        date_incorporated:
          type: string
          format: date
        about:
          type: string
        website:
          type: string
        email:
          type: string
        phone:
          type: string
        address:
          type: string
        nature_of_business:
          type: string
        current_price:
          type: number
        prev_close:
          type: number
        open_price:
          type: number
        day_high:
          type: number
        day_low:
          type: number
        volume:
          type: number
        value_traded:
          type: number
        market_cap:
          type: number
        price_change:
          type: number
        price_change_percent:
          type: number
        high52wk:
          type: number
        high_52wk_date:
          type: string
          format: date
        low52wk:
          type: number
        low_52wk_date:
          type: string
          format: date
        ttm_eps:
          type: number
          nullable: true
          description: Trailing twelve-month basic earnings per share.
        latest_equity:
          type: number
          nullable: true
          description: Most recent shareholders' equity (NGN).
        ttm_dividends:
          type: number
          nullable: true
          description: Dividends paid over the most recent full year (NGN).
        pb_ratio:
          type: number
          nullable: true
          description: >-
            Price-to-book ratio. Computed as current price divided by book value
            per share (shareholders' equity / shares outstanding). Null when
            balance sheet data is unavailable.
          example: 2.14
        debt_to_equity:
          type: number
          nullable: true
          description: >-
            Debt-to-equity ratio. Computed as total liabilities divided by
            shareholders' equity. Null when balance sheet data is unavailable.
          example: 0.83
        current_ratio:
          type: number
          nullable: true
          description: >-
            Current ratio. Computed as current assets divided by current
            liabilities. Null when balance sheet data is unavailable.
          example: 1.47
        dividend_yield:
          type: number
          nullable: true
          description: Dividend yield percentage from the most recent ex-dividend date.
          example: 4.2
        last_updated:
          type: string
          format: date-time
          description: >-
            ISO 8601 timestamp of the last price update. Prices refresh every 20
            minutes during NGX trading hours (Monday–Friday, 09:00–16:00 WAT).
    ErrorEnvelope:
      type: object
      required:
        - success
        - error
      properties:
        success:
          type: boolean
          const: false
        error:
          type: object
          required:
            - code
            - message
          properties:
            code:
              type: string
              description: Machine-readable error identifier.
              example: NOT_FOUND
            message:
              type: string
              description: Human-readable error description.
              example: Resource not found.
            required_plan:
              type: string
              description: _(PLAN_REQUIRED only)_ Minimum plan needed.
            current_plan:
              type: string
              description: _(PLAN_REQUIRED only)_ Your current plan.
    Meta:
      type: object
      description: Quota and plan metadata included on every authenticated response.
      properties:
        plan:
          type: string
          description: Current plan name.
          enum:
            - free
            - starter
            - growth
            - business
            - enterprise
          example: starter
        calls_used:
          type: integer
          description: Total calls made this calendar month across all your keys.
          example: 4821
        calls_remaining:
          type: integer
          description: Calls remaining before your quota is exhausted.
          example: 95179
        reset_at:
          type: string
          format: date-time
          description: ISO 8601 UTC timestamp of your next quota reset (1st of next month).
          example: '2026-05-01T00:00:00.000Z'
  responses:
    Unauthorized:
      description: Missing or invalid API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
          examples:
            missingKey:
              summary: Missing Authorization header
              value:
                success: false
                error:
                  code: MISSING_API_KEY
                  message: 'Provide your API key via: Authorization: Bearer <key>'
            invalidKey:
              summary: Invalid or revoked key
              value:
                success: false
                error:
                  code: INVALID_API_KEY
                  message: API key not found or revoked.
    PlanRequired:
      description: Endpoint requires a higher plan.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
          example:
            success: false
            error:
              code: PLAN_REQUIRED
              message: This endpoint requires a starter plan or higher.
              required_plan: starter
              current_plan: free
    QuotaExceeded:
      description: Monthly call limit reached.
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/ErrorEnvelope'
              - type: object
                properties:
                  meta:
                    $ref: '#/components/schemas/Meta'
          example:
            success: false
            error:
              code: QUOTA_EXCEEDED
              message: >-
                Monthly call limit of 100,000 reached. Resets on
                2026-05-01T00:00:00.000Z.
            meta:
              plan: starter
              calls_used: 100000
              calls_remaining: 0
              reset_at: '2026-05-01T00:00:00.000Z'
    ServerError:
      description: Unexpected server-side failure. Safe to retry with backoff.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
          example:
            success: false
            error:
              code: SERVER_ERROR
              message: Something went wrong on our end. Please try again.
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: ngm_live_*
      description: >
        Pass your API key as a Bearer token: `Authorization: Bearer
        ngm_live_YOUR_KEY`.

        Generate keys at
        [ngnmarket.com/dashboard/developer](https://ngnmarket.com/developer).

````