Official Go client for the Nitrozen.io changelog API. Manage projects, entries, and API tokens programmatically.
go get github.com/nitrozenio/nitrozen-gopackage main
import (
"context"
"fmt"
"log"
nitrozen "github.com/nitrozenio/nitrozen-go"
)
func main() {
cfg := nitrozen.NewConfiguration()
client := nitrozen.NewAPIClient(cfg)
// Authenticate using context
ctx := context.WithValue(context.Background(), nitrozen.ContextAccessToken, "YOUR_API_TOKEN")
// List projects
projects, _, err := client.ProjectsAPI.ProjectsGet(ctx).Execute()
if err != nil {
log.Fatal(err)
}
for _, p := range projects.Data {
fmt.Printf("[%d] %s slug=%s\n", p.GetId(), p.GetName(), p.GetSlug())
}
// Create a changelog entry
entry, _, err := client.EntriesAPI.
ProjectsProjectEntriesPost(ctx, projects.Data[0].GetId()).
EntryInput(nitrozen.EntryInput{
Title: nitrozen.PtrString("Dark mode shipped"),
Content: nitrozen.PtrString("Users can now toggle dark mode from their profile settings."),
Category: nitrozen.PtrString("new"),
}).
Execute()
if err != nil {
log.Fatal(err)
}
fmt.Printf("Created entry: %d\n", entry.Data.GetId())
}All authenticated endpoints require a Bearer token. Create one from your API Tokens page and pass it via context:
ctx := context.WithValue(context.Background(), nitrozen.ContextAccessToken, "YOUR_API_TOKEN")Rate limits are determined by your plan (api_rate_limit requests per minute). The API returns 429 Too Many Requests when exceeded. Unauthenticated requests are limited to 60 req/min per IP.
List endpoints accept page and per_page query parameters. Responses include a meta object with pagination details:
resp, _, err := client.EntriesAPI.
ProjectsProjectEntriesGet(ctx, projectId).
Page(2).
PerPage(20).
Execute()
fmt.Println(resp.Meta.GetTotal())All URIs are relative to https://nitrozen.io/api/v1.
| API | Method | HTTP | Description |
|---|---|---|---|
| AuthenticationAPI | TokensGet | GET /tokens | List API tokens |
| AuthenticationAPI | TokensPost | POST /tokens | Create an API token |
| AuthenticationAPI | TokensTokenDelete | DELETE /tokens/{token} | Revoke an API token |
| EntriesAPI | ProjectsProjectEntriesGet | GET /projects/{project}/entries | List entries |
| EntriesAPI | ProjectsProjectEntriesPost | POST /projects/{project}/entries | Create an entry |
| EntriesAPI | ProjectsProjectEntriesEntryGet | GET /projects/{project}/entries/{entry} | Get an entry |
| EntriesAPI | ProjectsProjectEntriesEntryPut | PUT /projects/{project}/entries/{entry} | Update an entry |
| EntriesAPI | ProjectsProjectEntriesEntryDelete | DELETE /projects/{project}/entries/{entry} | Delete an entry |
| ProjectsAPI | ProjectsGet | GET /projects | List projects |
| ProjectsAPI | ProjectsPost | POST /projects | Create a project |
| ProjectsAPI | ProjectsProjectGet | GET /projects/{project} | Get a project |
| ProjectsAPI | ProjectsProjectPut | PUT /projects/{project} | Update a project |
| ProjectsAPI | ProjectsProjectDelete | DELETE /projects/{project} | Delete a project |
| PublicAPI | PublicProjectsSlugEntriesGet | GET /public/projects/{slug}/entries | List published entries (no auth) |
| UsersAPI | UserGet | GET /user | Get current user |
| UsersAPI | UserUsageGet | GET /user/usage | Get usage statistics |
- Entry
- EntryInput
- PaginationMeta
- Project
- ProjectInput
- TokenInfo
- Usage
- UsageLimits
- User
- UserPlan
- ValidationError
All model fields are pointers. Use these helpers to construct values inline:
nitrozen.PtrString("value")
nitrozen.PtrInt(42)
nitrozen.PtrInt32(42)
nitrozen.PtrBool(true)
nitrozen.PtrFloat64(3.14)MIT — see LICENSE.