The Meraki Dashboard API Golang library provides all current Meraki dashboard API calls to interface with the Cisco Meraki cloud-managed platform.
Meraki generates the library based on dashboard API's OpenAPI spec to keep it up to date with the latest API releases. The library requires Go 1.18+, receives support from the community, and you can install it according to the instructions below:
go get github.com/meraki/dashboard-api-go/client
While you can make direct HTTP requests to dashboard API in any programming language or REST API client, using a client library can make it easier for you to focus on your specific use case, without the overhead of having to write functions to handle the dashboard API calls.
- Support for all API endpoints, as it uses the OpenAPI Generator to generate source code from the Meraki OpenAPI specification
-
Enable API access in your Meraki dashboard organization and obtain an API key (instructions)
-
Keep your API key safe and secure, as it is similar to a password for your dashboard. If publishing your Go code to a wider audience, please research secure handling of API keys.
-
Install the latest version of the Go programming language
-
Use
go get
command to install the library:go get github.com/meraki/dashboard-api-go/client
-
Export your API key as an environment variable, for example:
export MERAKI_DASHBOARD_API_KEY=093b24e85df15a3e66f1fc359f4c48493eaa1b73
Client API documentation is available in the /client/docs directory. You can find fully working example scripts in the /examples folder.
package main
import (
"context"
"fmt"
openapiclient "github.com/meraki/dashboard-api-go/client"
"log"
)
func main() {
// Create a new API configuration
configuration := openapiclient.NewConfiguration()
// Create the API client using the configuration
apiClient := openapiclient.NewAPIClient(configuration)
// Make the API call to get organizations
resp, r, err := apiClient.OrganizationsApi.GetOrganizations(context.Background()).Execute()
if err != nil {
// Handle the error appropriately (e.g., return, log, or display a user-friendly message)
log.Fatalf("Error when calling `OrganizationsApi.GetOrganizations`: %v\n", err)
}
// Print the full HTTP response if needed for debugging
fmt.Println("Full HTTP response:", r)
// Process the response
for _, org := range resp {
fmt.Printf("Organization Name: %s, Organization ID: %s\n", org.GetName(), org.GetId())
}
}
We're so glad that you're leveraging our Go library. It's best practice to identify your application with every API request that you make. You can easily do this automatically by setting:
configuration.UserAgent = "MY-APPLICATION-IDENTIFIER"
Unless you are an ecosystem partner, this identifier is optional.
- If you are an ecosystem partner and you have questions about this requirement, please reach out to your ecosystem rep.
- If you have any questions about the formatting, please ask your question by opening an issue in this repo.