Skip to main content
go get github.com/ofauth-org/onlyfans-sdk-go

Quick Example

package main

import (
    "context"
    "fmt"
    "log"

    "github.com/ofauth-org/onlyfans-sdk-go"
)

func main() {
    client := ofauth.NewClient("your-api-key")

    acc, err := client.Whoami(context.Background())
    if err != nil {
        log.Fatal(err)
    }

    fmt.Println(acc.Id, acc.Permissions)
}

Details

Go
Packageonlyfans-sdk-go
Repositoryonlyfans-sdk-go
Initofauth.NewClient()
Architecture126+ typed methods, builder pattern
TypesGenerated response structs
PaginationManual (query params)
DependenciesZero (standard library)

Features

Context Cancellation

Every method accepts context.Context for timeouts and cancellation.

Zero Dependencies

Built entirely on Go’s standard library.

Proxy Support

Call any OnlyFans endpoint directly through the OFAuth proxy.

Media Upload

Automatic chunking and progress callbacks.

Usage Examples

List subscribers

subs, err := client.ListSubscribers(ctx, &ofauth.ListSubscribersParams{
    ConnectionID: "conn_xxx",
    Limit:        50,
})
if err != nil {
    log.Fatal(err)
}

for _, sub := range subs.Data {
    fmt.Println(sub.Username, sub.SubscribedAt)
}

Send a message

err := client.SendMessage(ctx, &ofauth.SendMessageParams{
    ConnectionID: "conn_xxx",
    UserID:       "12345",
    Text:         "Hello from OFAuth!",
})

Error handling

_, err := client.GetUser(ctx, &ofauth.GetUserParams{
    ConnectionID: "conn_xxx",
    UserID:       "999",
})
if err != nil {
    var apiErr *ofauth.APIError
    if errors.As(err, &apiErr) {
        fmt.Println(apiErr.Status, apiErr.Code, apiErr.Message)
    }
}