Postman API
getpostman · Developer Tools
The Postman API allows you to programmatically access data stored in Postman account with ease. The easiest way to get started with the API is to click the **fork** button to fork this collection to your own workspace and use Postman to send requests. # Overview 1. You need a valid API Key to send requests to the API endpoints. You can get your key from the [integrations dashboard](https://go.postman.co/settings/me/api-keys). 1. The API has an access <a href="#
Authentication
Sample Requests
This call fetches all the APIs present in the specified workspace Response contains an array named `apis` which would contain all the details of APIs present in the workspace. > Requires API Key as `X-Api-Key` request header or `apikey` URL query parameter.
Hover any highlighted part to learn what it does
curl -X GET "https://api.apis.guru/v2/specs/getpostman.com/1.20.0/apis?name=%7B%7Bname%7D%7D&sort=%7B%7Bsort%7D%7D&since=%7B%7Bsince%7D%7D&until=%7B%7Buntil%7D%7D&summary=%7B%7Bsummary%7D%7D&isPublic=%7B%7BisPublic%7D%7D&createdBy=%7B%7BcreatedBy%7D%7D&direction=%7B%7Bdirection%7D%7D&updatedBy=%7B%7BupdatedBy%7D%7D&workspace=%7B%7BworkspaceId%7D%7D&description=%7B%7Bdescription%7D%7D"
import requests
params = {
"name": "{{name}}",
"sort": "{{sort}}",
"since": "{{since}}",
"until": "{{until}}",
"summary": "{{summary}}",
"isPublic": "{{isPublic}}",
"createdBy": "{{createdBy}}",
"direction": "{{direction}}",
"updatedBy": "{{updatedBy}}",
"workspace": "{{workspaceId}}",
"description": "{{description}}"
}
response = requests.get(
"https://api.apis.guru/v2/specs/getpostman.com/1.20.0/apis",
params=params,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/getpostman.com/1.20.0/apis');
url.searchParams.set('name', '{{name}}');
url.searchParams.set('sort', '{{sort}}');
url.searchParams.set('since', '{{since}}');
url.searchParams.set('until', '{{until}}');
url.searchParams.set('summary', '{{summary}}');
url.searchParams.set('isPublic', '{{isPublic}}');
url.searchParams.set('createdBy', '{{createdBy}}');
url.searchParams.set('direction', '{{direction}}');
url.searchParams.set('updatedBy', '{{updatedBy}}');
url.searchParams.set('workspace', '{{workspaceId}}');
url.searchParams.set('description', '{{description}}');
const response = await fetch(url);
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/getpostman.com/1.20.0/apis")
q := baseURL.Query()
q.Set("name", "{{name}}")
q.Set("sort", "{{sort}}")
q.Set("since", "{{since}}")
q.Set("until", "{{until}}")
q.Set("summary", "{{summary}}")
q.Set("isPublic", "{{isPublic}}")
q.Set("createdBy", "{{createdBy}}")
q.Set("direction", "{{direction}}")
q.Set("updatedBy", "{{updatedBy}}")
q.Set("workspace", "{{workspaceId}}")
q.Set("description", "{{description}}")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("GET", targetURL, nil)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/getpostman.com/1.20.0/apis")
uri.query = URI.encode_www_form({
"name" => "{{name}}",
"sort" => "{{sort}}",
"since" => "{{since}}",
"until" => "{{until}}",
"summary" => "{{summary}}",
"isPublic" => "{{isPublic}}",
"createdBy" => "{{createdBy}}",
"direction" => "{{direction}}",
"updatedBy" => "{{updatedBy}}",
"workspace" => "{{workspaceId}}",
"description" => "{{description}}"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/getpostman.com/1.20.0/apis?" . http_build_query([
"name" => "{{name}}",
"sort" => "{{sort}}",
"since" => "{{since}}",
"until" => "{{until}}",
"summary" => "{{summary}}",
"isPublic" => "{{isPublic}}",
"createdBy" => "{{createdBy}}",
"direction" => "{{direction}}",
"updatedBy" => "{{updatedBy}}",
"workspace" => "{{workspaceId}}",
"description" => "{{description}}"
]);
$opts = ["http" => [
"method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));The `/collections` endpoint returns a list of all [collections](https://www.getpostman.com/docs/collections) that are accessible by you. The list includes your own collections and the collections that you have subscribed to. The response contains an array of collection information containing the `n
Hover any highlighted part to learn what it does
curl -X GET "https://api.apis.guru/v2/specs/getpostman.com/1.20.0/collections"
import requests
response = requests.get(
"https://api.apis.guru/v2/specs/getpostman.com/1.20.0/collections",
)
print(response.json())const url = 'https://api.apis.guru/v2/specs/getpostman.com/1.20.0/collections'; const response = await fetch(url); const data = await response.json(); console.log(data);
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
targetURL := "https://api.apis.guru/v2/specs/getpostman.com/1.20.0/collections"
req, _ := http.NewRequest("GET", targetURL, nil)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/getpostman.com/1.20.0/collections")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/getpostman.com/1.20.0/collections";
$opts = ["http" => [
"method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));The `/environments` endpoint returns a list of all [environments](https://www.getpostman.com/docs/environments) that belong to you.. The response contains an array of environments' information containing the `name`, `id`, `owner` and `uid` of each environment. > Requires
Hover any highlighted part to learn what it does
curl -X GET "https://api.apis.guru/v2/specs/getpostman.com/1.20.0/environments"
import requests
response = requests.get(
"https://api.apis.guru/v2/specs/getpostman.com/1.20.0/environments",
)
print(response.json())const url = 'https://api.apis.guru/v2/specs/getpostman.com/1.20.0/environments'; const response = await fetch(url); const data = await response.json(); console.log(data);
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
targetURL := "https://api.apis.guru/v2/specs/getpostman.com/1.20.0/environments"
req, _ := http.NewRequest("GET", targetURL, nil)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/getpostman.com/1.20.0/environments")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/getpostman.com/1.20.0/environments";
$opts = ["http" => [
"method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Postman Setup Guide
- See official documentation for authentication and setup.
What can you build with Postman API?
Postman API is a Developer Tools API. Developers commonly use developer tools APIs for:
- automating code review and quality checks
- integrating CI/CD pipelines and build systems
- managing feature flags and A/B tests
- monitoring errors and application performance
- generating and validating test data
No authentication required. This API is open — no signup or key needed. Ideal for quick prototypes and public-facing features. Postman API is free to use, making it a low-risk choice to experiment with.
New to APIs? Read our beginner's guide · Learn about API keys · What is REST?