Skip to content

Private API Network

The Private API Network lets a team publish and discover internal API workspaces, and manage requests from members to add their workspaces to it. Reachable via client.PrivateAPINetwork().

Requires an add-on

The Private API Network API requires a Postman Enterprise plan with the Private API Network add-on enabled — see Authentication.

Quick Example

import (
    "context"
    "fmt"

    postman "github.com/grokify/postman-go"
    "github.com/grokify/postman-go/privateapinetwork"
)

client, _ := postman.NewClient(postman.WithAPIKey(key))
ctx := context.Background()

// List workspaces published to the team's Private API Network.
list, err := client.PrivateAPINetwork().List(ctx, &privateapinetwork.ListInput{Limit: 50})
for _, e := range list.Elements {
    fmt.Println(e.ID, e.Name, e.Type)
}

// Publish a workspace to the network.
elem, err := client.PrivateAPINetwork().Add(ctx, &privateapinetwork.AddInput{
    WorkspaceID: "ws-id",
})

// Review and approve a pending add request.
reqs, err := client.PrivateAPINetwork().ListAddRequests(ctx, &privateapinetwork.ListAddRequestsInput{
    Status: privateapinetwork.RequestStatusPending,
})
for _, r := range reqs.Requests {
    _, err = client.PrivateAPINetwork().RespondAddRequest(ctx, fmt.Sprint(r.ID), &privateapinetwork.RespondInput{
        Status: privateapinetwork.DecisionApproved,
    })
}

Methods

Method Description
List(ctx, *ListInput) List the workspaces added to the team's Private API Network.
Add(ctx, *AddInput) Publish a workspace to the team's Private API Network.
Remove(ctx, workspaceID) Remove a workspace from the Private API Network (does not delete the workspace).
UpdateFolder(ctx, workspaceID, *UpdateFolderInput) Move a workspace to a different Private API Network folder. Deprecated by the Postman API.
ListAddRequests(ctx, *ListAddRequestsInput) List requests from members to add workspaces to the network.
RespondAddRequest(ctx, requestID, *RespondInput) Approve or deny a member's add request.

List

list, err := client.PrivateAPINetwork().List(ctx, &privateapinetwork.ListInput{
    Name:      "billing",
    Sort:      privateapinetwork.SortFieldCreatedAt,
    Direction: privateapinetwork.SortDesc,
    Limit:     50,
})
for _, e := range list.Elements {
    fmt.Println(e.ID, e.Name, e.Href)
}

Sort and Direction must both be set to have an effect.

Add

elem, err := client.PrivateAPINetwork().Add(ctx, &privateapinetwork.AddInput{
    WorkspaceID: "ws-id",
})
// elem.ID, elem.Name, elem.AddedAt

Remove

_, err := client.PrivateAPINetwork().Remove(ctx, "WORKSPACE_ID")

This does not delete the workspace; it only removes it from the Private API Network folder.

UpdateFolder

err := client.PrivateAPINetwork().UpdateFolder(ctx, "WORKSPACE_ID", &privateapinetwork.UpdateFolderInput{
    ParentFolderID: 42,
})

This endpoint is deprecated in the Postman API.

ListAddRequests

reqs, err := client.PrivateAPINetwork().ListAddRequests(ctx, &privateapinetwork.ListAddRequestsInput{
    Status: privateapinetwork.RequestStatusPending,
    Limit:  50,
})
for _, r := range reqs.Requests {
    fmt.Println(r.ID, r.Element.Name, r.Status)
}

RespondAddRequest

_, err := client.PrivateAPINetwork().RespondAddRequest(ctx, "REQUEST_ID", &privateapinetwork.RespondInput{
    Status:  privateapinetwork.DecisionApproved,
    Message: "Looks good, welcome to the network.",
})

Only managers can approve or deny a request; once approved, the workspace appears in the team's Private API Network.

Reference

Source: privateapinetwork/ · GoDoc