Bamboo Invest NG Securities API
The section provides us endpoints that allows a client to fetch all the information pertaining to the NG stocks available on Bamboo.
The section provides us endpoints that allows a client to fetch all the information pertaining to the NG stocks available on Bamboo.
openapi: 3.0.1
info:
title: Bamboo Account Management NG Securities API
version: ''
description: "Account creation enables users to invest on Bamboo. Ensure KYC has been completed and each user’s identity verified before creating a brokerage account.\n\n**Best Practice:** To avoid maintenance fees on inactive accounts, create and fund brokerage accounts **only when users initiate their first trade**. You may collect account details in advance but delay sending the request until they’re ready to buy.\n\n##### Prerequisites\n- **Minimum Age:** 18 years (verified via government-issued ID)\n- **Compliance:** Must meet local investment regulations\n\n##### Document Requirements\n<table>\n <thead>\n <tr>\n <th>Country</th>\n <th>Primary ID</th>\n <th>Image Requirements</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>Nigeria</th>\n <td>BVN</td>\n <td>Passport photo</td>\n </tr>\n <tr>\n <th>Ghana</th>\n <td>National ID</td>\n <td>Front & back ID images</td>\n </tr>\n <tr>\n <th>South Africa</th>\n <td>National ID</td>\n <td>Front & back ID images</td>\n </tr>\n </tbody>\n</table>\n\n**Note:** Images must be in Base64 format. The `front_id_image` and `back_id_image` fields apply only to Ghana and South Africa.\n\n##### Phone Number Format\n- Must be in international format (e.g., +2347083864023)\n- Country code must match user’s residence\n- Used for notifications and account security\n"
servers:
- url: https://powered-by-bamboo-sandbox.investbamboo.com
tags:
- name: NG Securities
description: "The section provides us endpoints that allows a client to fetch all the information pertaining to the NG stocks available on Bamboo. \n"
paths:
/api/lsx/ng/stocks:
get:
tags:
- NG Securities
summary: Fetch List of All Stocks
description: 'This endpoint fetches the list of stocks with basic information about them like their symbol and logo.
'
operationId: Web.Api.StockController.index
parameters:
- name: content-type
in: header
description: Acceptable content type
example: application/json
required: true
schema:
type: string
- name: accept-language
in: header
description: Acceptable language; 'en' for English
example: en
required: true
schema:
type: string
- name: x-user-id
in: header
description: Required for user authentication
required: true
schema:
type: string
- name: x-subject-type
in: header
description: For user request -> 'tenant'.
required: true
schema:
type: string
- name: x-client-token
in: header
description: API Consumer Authorisation Token
required: true
schema:
type: string
- name: x-request-source
in: header
description: The tenant's username
required: true
schema:
type: string
- name: limit
in: query
description: Number of requested results. (Default = 20)
schema:
type: string
- name: next_token
in: query
description: Next token for pagination
schema:
type: integer
- name: search_term
in: query
description: Stock symbol. E.g. `ZENITHBANK`
schema:
type: string
responses:
'200':
description: Stock list
content:
application/json:
schema:
$ref: '#/components/schemas/lsxngstocks_response'
'401':
description: Token have expired or invalid token
content:
application/json:
schema:
$ref: '#/components/schemas/Unauthorized'
/api/lsx/ng/stocks/{symbol}:
get:
tags:
- NG Securities
summary: Fetch Stock by Symbol
description: 'This endpoint returns all the details of a specified stock. This is used to offer a user more insight into a specific stock option.
'
operationId: Web.Api.StockDataController.about
parameters:
- name: content-type
in: header
description: Acceptable content type
example: application/json
required: true
schema:
type: string
- name: accept-language
in: header
description: Acceptable language; 'en' for English
example: en
required: true
schema:
type: string
- name: x-user-id
in: header
description: Required for user authentication
required: true
schema:
type: string
- name: x-subject-type
in: header
description: For user request -> 'tenant'.
required: true
schema:
type: string
- name: x-client-token
in: header
description: API Consumer Authorisation Token
required: true
schema:
type: string
- name: symbol
in: path
description: Stock Symbol
required: true
schema:
type: string
responses:
'200':
description: Stock about info
content:
application/json:
schema:
$ref: '#/components/schemas/lsxngstock_about_info'
'401':
description: Token have expired or invalid token
content:
application/json:
schema:
$ref: '#/components/schemas/Unauthorized'
'404':
description: Resource not found
content:
application/json:
schema:
$ref: '#/components/schemas/ResourceNotFound'
'422':
description: Error response
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/api/lsx/ng/my_stocks:
get:
tags:
- NG Securities
summary: Fetch List of All Stocks
description: 'This endpoint fetches the list of stocks with basic information about them like their symbol and logo.
'
operationId: Web.Api.StockController.index
parameters:
- name: content-type
in: header
description: Acceptable content type
example: application/json
required: true
schema:
type: string
- name: accept-language
in: header
description: Acceptable language; 'en' for English
example: en
required: true
schema:
type: string
- name: x-user-id
in: header
description: Required for user authentication
required: true
schema:
type: string
- name: x-subject-type
in: header
description: For user request -> 'tenant'.
required: true
schema:
type: string
- name: x-client-token
in: header
description: API Consumer Authorisation Token
required: true
schema:
type: string
responses:
'200':
description: Stock list
content:
application/json:
schema:
$ref: '#/components/schemas/lsxngmy_stocks_response'
'401':
description: Token have expired or invalid token
content:
application/json:
schema:
$ref: '#/components/schemas/Unauthorized'
'404':
description: Resource not found
content:
application/json:
schema:
$ref: '#/components/schemas/ResourceNotFound'
'422':
description: Error response
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
components:
schemas:
lsxngstock_about_info:
title: Stock About Info
type: object
properties:
avatar:
type: string
description: Theme avatar
example: https://firebasestorage.googleapis.com/v0/b/bamboo-16d59.appspot.com/o/staging%2Fcategories%2FMost%20Popular.png1605885112566?alt=media&token=7300dc44-f067-4aec-a3a6-6e0498de775d
close_price:
type: integer
description: close_price
example: 33.4
description:
type: string
description: Stock name
example: ZENITHBANK
favourite:
type: string
description: Stock favourite
example: false
logo:
type: string
description: Stock logo URL
market_cap:
type: integer
description: market_cap
example: 0
market_price:
type: integer
description: market_price
example: 33.4
name:
type: string
description: Stock name
example: ZENITH BANK
open_price:
type: integer
description: open_price
example: 33.4
percent_change:
type: number
description: Total percentage change
example: 0
symbol:
type: string
description: Stock symbol
example: ZENITHBANK
value_change:
type: integer
description: Equity value change
example: 0
volume:
type: number
description: volume
example: 0
Unauthorized:
title: Unauthorized response
required:
- message
type: object
properties:
message:
type: string
description: Unauthorized/Invalid Token/Token has expired
example: Invalid client token supplied.
description: Token is invalid or have expired
lsxngmy_stocks_response:
title: Array of users NGX stocks
type: object
properties:
total_user_equity:
type: number
description: total_user_equity
example: 0
stocks:
type: array
description: List of Stock
items:
title: Stock response
type: object
properties:
avatar:
type: string
description: Theme avatar
example: https://firebasestorage.googleapis.com/v0/b/bamboo-16d59.appspot.com/o/staging%2Fcategories%2FMost%20Popular.png1605885112566?alt=media&token=7300dc44-f067-4aec-a3a6-6e0498de775d
average_cost:
type: integer
description: average_cost
example: 0
cost_basis:
type: integer
description: cost_basis
example: 0
favourite:
type: string
description: Stock favourite
example: false
logo:
type: string
description: Stock logo URL
market_cap:
type: integer
description: market_cap
example: 0
market_price:
type: integer
description: market_price
example: 33.4
name:
type: string
description: Stock name
example: ZENITH BANK
percent_change:
type: number
description: Total percentage change
example: 0
quantity:
type: number
description: Quantity
default: 10
symbol:
type: string
description: Stock symbol
example: ZENITHBANK
total_percent_change:
type: number
description: Total portfolio change
example: 0
total_return:
type: number
description: Total return
example: 0
value_change:
type: integer
description: Equity value change
example: 0
volume:
type: number
description: volume
example: 0
lsxngstocks_response:
title: List of all active stocks response
type: object
properties:
next_token:
type: integer
description: Next token for pagination
example: 20
stocks:
type: array
description: Stock response
items:
title: Stock response
type: object
properties:
avatar:
type: string
description: Theme avatar
example: https://firebasestorage.googleapis.com/v0/b/bamboo-16d59.appspot.com/o/staging%2Fcategories%2FMost%20Popular.png1605885112566?alt=media&token=7300dc44-f067-4aec-a3a6-6e0498de775d
close_price:
type: integer
description: close_price
example: 33.4
description:
type: string
description: Stock name
example: ZENITHBANK
favourite:
type: string
description: Stock favourite
example: false
logo:
type: string
description: Stock logo URL
market_cap:
type: integer
description: market_cap
example: 0
market_price:
type: integer
description: market_price
example: 33.4
name:
type: string
description: Stock name
example: ZENITH BANK
open_price:
type: integer
description: open_price
example: 33.4
percent_change:
type: number
description: Total percentage change
example: 0
symbol:
type: string
description: Stock symbol
example: ZENITHBANK
value_change:
type: integer
description: Equity value change
example: 0
volume:
type: number
description: volume
example: 0
ErrorResponse:
title: Error response
required:
- message
type: object
properties:
message:
type: string
description: Error response for external or internal errors not connected to data
example: Message why request didn't succeed
description: Error response for external or internal errors not connected to data
ResourceNotFound:
title: Resource not found
required:
- message
type: object
properties:
message:
type: string
description: Resource not found (an incorrect url may have been used)
example: Resource Not Found
description: Error response for when the resource is not found within our data.
x-logo:
url: bamboo-logo.png
altText: bamboo logo
x-tagGroups:
- name: Authentication
tags:
- Authentication
- Account Management
- name: Money Movement
tags:
- Overview
- Deposits
- Withdrawals
- name: US Brokerage Services
tags:
- Portfolio Reporting
- US Securities
- US Stock Trading
- US Stock Events
- name: Utilities
tags:
- Dictionaries
- Market Activity
- Exchange Rate
- Featured Themes
- Financial Documents