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

# Get Instruments

> Returns a list of available instruments for a given investment option



## OpenAPI

````yaml GET /instruments
openapi: 3.0.0
info:
  title: Pipevest Investment API
  description: Connecting millions of Africans to the global economy
  version: 0.0.1
servers:
  - url: https://api.pipevest.com/v1
    description: Production server
  - url: https://api.staging.pipevest.com/v1
    description: Staging server
security:
  - BearerAuth: []
paths:
  /instruments:
    parameters:
      - $ref: '#/components/parameters/Signature'
      - $ref: '#/components/parameters/SignatureInput'
      - $ref: '#/components/parameters/XCliendId'
    get:
      tags:
        - Instruments
      summary: Returns a list of available instruments for a given investment option.
      parameters:
        - name: investmentType
          in: query
          description: The investment type
          required: true
          schema:
            $ref: '#/components/schemas/InvestmentType'
        - $ref: '#/components/parameters/PageParam'
        - $ref: '#/components/parameters/LimitParam'
        - $ref: '#/components/parameters/SortParam'
      responses:
        '200':
          description: A JSON array of investment instruments
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/SuccessMeta'
                  - type: object
                    properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/Instrument'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  parameters:
    Signature:
      in: header
      name: Signature
      schema:
        type: string
        example: 'sig1=:OTEyMjY4...A5NTNDMEQ=:'
        description: >
          Base64 encoded signed hash of the http message request components.


          [Learn how signatures
          work](/concepts/http-signature/message-signature)
      required: true
    SignatureInput:
      in: header
      name: Signature-Input
      schema:
        type: string
        example: sig1=("Content-Type" "Content-Digest"...expires=<expires>
        description: >
          An ordered list of components that make up the signature base. It is
          used to recompute and verify the `Signature`


          [Learn how signatures
          work](/concepts/http-signature/message-signature)
      required: true
    XCliendId:
      in: header
      name: X-Client-Id
      schema:
        $ref: '#/components/schemas/ClientId'
      example: client-id
      required: true
    PageParam:
      in: query
      name: page
      schema:
        $ref: '#/components/schemas/Page'
    LimitParam:
      in: query
      name: limit
      schema:
        $ref: '#/components/schemas/Limit'
    SortParam:
      in: query
      name: sort
      schema:
        $ref: '#/components/schemas/Sort'
  schemas:
    InvestmentType:
      description: >
        Investment type associated with the account


        Currently only `INTERNATIONAL_STOCKS` is available

        More options will be available in the near future


        Future Options: [`COMMODITY`, `BONDS`, `LOCAL_STOCKS`,
        `FOREIGN_EXCHANGE`, `CRYPTO`]
      type: string
      enum:
        - INTERNATIONAL_STOCKS
      example: INTERNATIONAL_STOCKS
    SuccessMeta:
      allOf:
        - $ref: '#/components/schemas/Success'
        - type: object
          properties:
            meta:
              $ref: '#/components/schemas/Meta'
          required:
            - meta
    Instrument:
      type: object
      properties:
        instrumentId:
          $ref: '#/components/schemas/InstrumentId'
        name:
          $ref: '#/components/schemas/InstrumentName'
        symbol:
          $ref: '#/components/schemas/InstrumentSymbol'
        investmentId:
          $ref: '#/components/schemas/InvestmentId'
        isAvailable:
          $ref: '#/components/schemas/IsAvailable'
        valueChangeOverTime:
          type: array
          items:
            $ref: '#/components/schemas/ValueChange'
        fractionalEnabled:
          $ref: '#/components/schemas/FractionalEnabled'
        createdAt:
          $ref: '#/components/schemas/CreatedAt'
        updatedAt:
          $ref: '#/components/schemas/UpdatedAt'
      required:
        - instrumentId
        - name
        - symbol
        - investmentId
        - isAvailable
        - createdAt
        - updatedAt
    ClientId:
      description: Unique identifier assigned to the client
      type: string
      example: client-id
    Page:
      description: The page offset for the items returned
      type: integer
      minimum: 0
      example: 0
    Limit:
      description: The maximum numbers of items to return.
      type: integer
      minimum: 1
      maximum: 1000
      default: 100
      example: 100
    Sort:
      description: |
        The date order in which to sort the items

        This currently only works to sort `createdAt`.
      enum:
        - ASC
        - DESC
      example: ASC
    Success:
      type: object
      properties:
        data:
          oneOf:
            - type: object
            - type: array
        code:
          $ref: '#/components/schemas/ResponseCode'
        message:
          $ref: '#/components/schemas/ResponseMessage'
      required:
        - data
        - code
        - message
    Meta:
      type: object
      properties:
        previousPage:
          allOf:
            - $ref: '#/components/schemas/Page'
            - description: The previous page offset for the items returned
        currentPage:
          $ref: '#/components/schemas/Page'
        nextPage:
          allOf:
            - $ref: '#/components/schemas/Page'
            - description: The next page offset for the items returned
        limit:
          $ref: '#/components/schemas/Limit'
        currentCount:
          $ref: '#/components/schemas/CountCurrent'
        totalCount:
          $ref: '#/components/schemas/CountTotal'
        sort:
          allOf:
            - $ref: '#/components/schemas/Sort'
            - description: Order for `createdAt` in which the list was returned.
      required:
        - previousPage
        - currentPage
        - nextPage
        - limit
        - currentCount
        - totalCount
        - sort
    InstrumentId:
      description: Unique instrument identifier
      type: integer
      example: 123456
    InstrumentName:
      description: The display name of the instrument
      type: string
      example: Apple Inc.
    InstrumentSymbol:
      description: The symbol associated by the instrument
      type: string
      example: APPL
    InvestmentId:
      description: Unique investment identifier
      type: integer
      example: 123456
    IsAvailable:
      description: Determines whether the instrument is available for trading
      type: boolean
      example: true
    ValueChange:
      type: object
      description: Instruments performance over a given time period
      properties:
        timeFrame:
          $ref: '#/components/schemas/TimeFrame'
        percentChange:
          $ref: '#/components/schemas/PercentChange'
        summary:
          $ref: '#/components/schemas/ValueChangeSummary'
      required:
        - timeFrame
        - percentChange
        - summary
    FractionalEnabled:
      description: Determines whether the instrument can be fractionally traded
      type: boolean
      example: true
    CreatedAt:
      description: Created at unix timestamp
      type: integer
      example: 1234567890
    UpdatedAt:
      description: Updated at unix timestamp
      type: integer
      example: 1234567890
    Error:
      type: object
      properties:
        code:
          allOf:
            - $ref: '#/components/schemas/ResponseCode'
            - example: 401
        message:
          allOf:
            - $ref: '#/components/schemas/ResponseMessage'
            - example: Unauthorized
      required:
        - code
        - message
    ResponseCode:
      description: Request response code
      type: string
      example: 200
    ResponseMessage:
      description: Request response message
      type: string
      example: Success
    CountCurrent:
      description: Total number of results returned with a request
      type: integer
      example: 100
    CountTotal:
      description: Total number of returnable results
      type: integer
      example: 1000
    TimeFrame:
      description: The time frames used to determine instrument market data
      enum:
        - 1D
        - 5D
        - 3M
        - 6M
        - YTD
        - 1Y
        - 5Y
        - ALL
      example: 1D
    PercentChange:
      description: The change percent change
      type: integer
      example: 1.5
    ValueChangeSummary:
      description: Human readable summary for the instrument value change
      type: string
      example: Asset has changed by 1.5% over the past 1 day
  responses:
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: The specified resource was not found
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/Error'
              - type: object
                properties:
                  code:
                    type: string
                    example: 404
                  message:
                    type: string
                    example: Not Found
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer

````