# OpenMeter Go SDK ## Install ```sh go get github.com/openmeterio/openmeter/api/client/go@v1.0.0-beta.53 ``` ## Usage Initialize client. ```go import ( cloudevents "github.com/cloudevents/sdk-go/v2/event" om "github.com/openmeterio/openmeter/api/client/go" ) func main() { // Initialize OpenMeter client om, err := openmeter.NewClientWithResponses("http://localhost:8888") if err != nil { panic(err.Error()) } // Use OpenMeter client // ... } ``` ### Ingest Event Report usage to OpenMeter. ```go e := cloudevents.New() e.SetID("00001") e.SetSource("my-app") e.SetType("tokens") e.SetSubject("user-id") e.SetTime(time.Now()) e.SetData("application/json", map[string]string{ "tokens": "15", "model": "gpt-4", }) _, err := client.IngestEventWithResponse(ctx, e) ``` ### Query Meter Retreive usage from OpenMeter. ```go slug := "token-usage" subject := []string{"user-id"} from, _ := time.Parse(time.RFC3339, "2023-01-01T00:00:00Z") to, _ := time.Parse(time.RFC3339, "2023-01-02T00:00:00Z") resp, _ := client.QueryMeterWithResponse(ctx, slug, &om.QueryMeterParams{ Subject: &subject, From: &from, To: &to, }) // resp.JSON200.Data ```