GitPedia

Okex

Golang API wrapper of OkEX

From amir-the-h·Updated February 11, 2026·View on GitHub·

*NOTICE:* > PACKAGE IS CURRENTLY UNDER HEAVY DEVELOPMENT AND THERE IS NO GUARANTY FOR STABILITY. The project is written primarily in Go, distributed under the Apache License 2.0 license, first published in 2021. Key topics include: api, cryptocurrency-exchanges, exchange, go-financial, golang.

Latest release: v1.1.4-alphaRelease: v1.1.4-alpha
March 27, 2023View Changelog →

okex

Go Reference
GitHub go.mod Go version of a Go module
GoReportCard example
GitHub license
GitHub release
PRs Welcome
CI
CodeQL
AutoRelease

NOTICE:

PACKAGE IS CURRENTLY UNDER HEAVY DEVELOPMENT AND THERE IS NO GUARANTY FOR STABILITY.

DISCLAIMER:

This package is provided as-is, without any express or implied warranties. The user assumes all risks associated with the use of this package. The author and contributors to this package shall not be held liable for any damages arising from the use of this package, including but not limited to direct, indirect, incidental, or consequential damages. This package is not intended to be used as a substitute for professional financial advice. Users are responsible for verifying the accuracy and reliability of the data generated by this package. Use of this package constitutes acceptance of these terms and conditions.

Okex V5 Golang API

A complete golang wrapper for Okex V5 API. Pretty simple and easy to use. For more info about
Okex V5 API read here.

Installation

bash
go get github.com/amir-the-h/okex@v1.1.4-alpha

Usage

go
package main import ( "context" "github.com/amir-the-h/okex" "github.com/amir-the-h/okex/api" "github.com/amir-the-h/okex/events" "github.com/amir-the-h/okex/events/public" ws_public_requests "github.com/amir-the-h/okex/requests/ws/public" "log" ) func main() { apiKey := "YOUR-API-KEY" secretKey := "YOUR-SECRET-KEY" passphrase := "YOUR-PASS-PHRASE" dest := okex.NormalServer // The main API server ctx := context.Background() client, err := api.NewClient(ctx, apiKey, secretKey, passphrase, &dest) if err != nil { log.Fatalln(err) } log.Println("Starting") errChan := make(chan *events.Error) subChan := make(chan *events.Subscribe) uSubChan := make(chan *events.Unsubscribe) logChan := make(chan *events.Login) sucChan := make(chan *events.Success) client.Ws.SetChannels(errChan, subChan, uSubChan, logChan, sucChan) obCh := make(chan *public.OrderBook) err = client.Ws.Public.OrderBook(ws_public_requests.OrderBook{ InstID: "BTC-USD-SWAP", Channel: "books", }, obCh) if err != nil { log.Fatalln(err) } for { select { case <-logChan: log.Print("[Authorized]") case success := <-sucChan: log.Printf("[SUCCESS]\t%+v", success) case sub := <-subChan: channel, _ := sub.Arg.Get("channel") log.Printf("[Subscribed]\t%s", channel) case uSub := <-uSubChan: channel, _ := uSub.Arg.Get("channel") log.Printf("[Unsubscribed]\t%s", channel) case err := <-client.Ws.ErrChan: log.Printf("[Error]\t%+v", err) for _, datum := range err.Data { log.Printf("[Error]\t\t%+v", datum) } case i := <-obCh: ch, _ := i.Arg.Get("channel") log.Printf("[Event]\t%s", ch) for _, p := range i.Books { for i := len(p.Asks) - 1; i >= 0; i-- { log.Printf("\t\tAsk\t%+v", p.Asks[i]) } for _, bid := range p.Bids { log.Printf("\t\tBid\t%+v", bid) } } case b := <-client.Ws.DoneChan: log.Printf("[End]:\t%v", b) return } } }

Supporting APIs

Features

  • All requests, responses, and events are well typed and will convert into the
    language built-in types instead of using API's strings. Note that zero values will be replaced with non-existing
    data.
  • Fully automated authorization steps for both REST and WS
  • To receive websocket events you can choose RawEventChan
    , StructuredEventChan, or provide your own
    channels. More info

Contributors

Showing top 7 contributors by commit count.

View all contributors on GitHub →

This article is auto-generated from amir-the-h/okex via the GitHub API.Last fetched: 6/27/2026