API Tester - Test Any API Endpoint

Test and document API endpoints - validate responses, check status, generate examples

How to use it

  1. Hit Copy the whole skill.
  2. Claude: ⋯ → Download .md, then Customize → Skills → Add → Upload skill.
    ChatGPT: make a Project and paste it into Instructions.
    Neither? Paste it at the top of a new chat — it works for that chat.
  3. Describe your job in plain words. The AI follows the skill from there.
Claude Code — installs the whole folder, not just SKILL.md
npx degit gooseworks-ai/goose-skills/skills/research-tools/capabilities/api-tester#main ~/.claude/skills/api-tester

For one project only, change the path to .claude/skills/api-tester.

Not working?
  • Check which app you pasted it into — the steps above name the right one.
  • Some skills need the paid tier of Claude or ChatGPT.
Step-by-step guide with screenshots · Ask in the forum

Paste into Claude, ChatGPT or Cursor.

Show the full text121 lines
api-tester/SKILL.md121 lines3.8 KBpushed 96d agoRawView on GitHub

API Tester - Test Any API Endpoint

Setup

Read your credentials from ~/.gooseworks/credentials.json:

export GOOSEWORKS_API_KEY=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json'))['api_key'])")
export GOOSEWORKS_API_BASE=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json')).get('api_base','https://api.gooseworks.ai'))")

If ~/.gooseworks/credentials.json does not exist, tell the user to run: npx gooseworks login

All endpoints use Bearer auth: -H "Authorization: Bearer $GOOSEWORKS_API_KEY"

Test API endpoints, validate responses, and generate documentation examples.

Workflow

Step 1: Test GET Endpoints

Make GET requests to test endpoints:

curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"linkup","path":"/fetch","body":{"url":"https://api.example.com/health"}}'

Step 2: Test POST Endpoints

Test POST requests by fetching API docs:

curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"scrapegraph","path":"/v1/smartscraper"}'
  "website_url": "https://api.example.com/docs",
  "user_prompt": "Extract all API endpoints, methods, parameters, and example responses"
}'

Step 3: Get API Documentation

Fetch and parse API docs:

curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"scrapegraph","path":"/v1/markdownify","body":{"website_url":"https://api.example.com/docs"}}'

Step 4: Validate Response Schema

Check response structure:

curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"riveter","path":"/v1/run"}'
  "url": "https://api.example.com/endpoint",
  "schema": {
    "id": "string",
    "name": "string",
    "created_at": "string"
  }
}'

Example Usage

# Extract API spec from docs
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"scrapegraph","path":"/v1/smartscraper"}'
  "website_url": "https://stripe.com/docs/api",
  "user_prompt": "Extract API authentication methods and example curl commands"
}'

# Fetch API page
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"linkup","path":"/fetch","body":{"url":"https://api.openai.com/v1/models"}}'

Tips

  • Test both happy paths and error cases
  • Verify response schemas match documentation
  • Check rate limits and authentication
  • Document any discrepancies found

Discover More

List all endpoints, or add a path for parameter details:

curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/search \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"prompt":"linkup API endpoints"}' api show riveter
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/search \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"prompt":"scrapegraph API endpoints"}'

Example: `curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/details \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"olostep","path":"/v1/scrapes`"}' for endpoint parameters.
1---
2name: api-tester
3description: Test and document API endpoints - validate responses, check status, generate examples
4source: orthogonal
5---
6 
7 
8# API Tester - Test Any API Endpoint
9 
10## Setup
11 
12Read your credentials from ~/.gooseworks/credentials.json:
13```bash
14export GOOSEWORKS_API_KEY=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json'))['api_key'])")
15export GOOSEWORKS_API_BASE=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json')).get('api_base','https://api.gooseworks.ai'))")
16```
17 
18If ~/.gooseworks/credentials.json does not exist, tell the user to run: `npx gooseworks login`
19 
20All endpoints use Bearer auth: `-H "Authorization: Bearer $GOOSEWORKS_API_KEY"`
21 
22 
23Test API endpoints, validate responses, and generate documentation examples.
24 
25## Workflow
26 
27### Step 1: Test GET Endpoints
28Make GET requests to test endpoints:
29 
30```bash
31curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
32 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
33 -H "Content-Type: application/json" \
34 -d '{"api":"linkup","path":"/fetch","body":{"url":"https://api.example.com/health"}}'
35```
36 
37### Step 2: Test POST Endpoints
38Test POST requests by fetching API docs:
39 
40```bash
41curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
42 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
43 -H "Content-Type: application/json" \
44 -d '{"api":"scrapegraph","path":"/v1/smartscraper"}'
45 "website_url": "https://api.example.com/docs",
46 "user_prompt": "Extract all API endpoints, methods, parameters, and example responses"
47}'
48```
49 
50### Step 3: Get API Documentation
51Fetch and parse API docs:
52 
53```bash
54curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
55 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
56 -H "Content-Type: application/json" \
57 -d '{"api":"scrapegraph","path":"/v1/markdownify","body":{"website_url":"https://api.example.com/docs"}}'
58```
59 
60### Step 4: Validate Response Schema
61Check response structure:
62 
63```bash
64curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
65 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
66 -H "Content-Type: application/json" \
67 -d '{"api":"riveter","path":"/v1/run"}'
68 "url": "https://api.example.com/endpoint",
69 "schema": {
70 "id": "string",
71 "name": "string",
72 "created_at": "string"
73 }
74}'
75```
76 
77## Example Usage
78 
79```bash
80# Extract API spec from docs
81curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
82 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
83 -H "Content-Type: application/json" \
84 -d '{"api":"scrapegraph","path":"/v1/smartscraper"}'
85 "website_url": "https://stripe.com/docs/api",
86 "user_prompt": "Extract API authentication methods and example curl commands"
87}'
88 
89# Fetch API page
90curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
91 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
92 -H "Content-Type: application/json" \
93 -d '{"api":"linkup","path":"/fetch","body":{"url":"https://api.openai.com/v1/models"}}'
94```
95 
96## Tips
97 
98- Test both happy paths and error cases
99- Verify response schemas match documentation
100- Check rate limits and authentication
101- Document any discrepancies found
102 
103## Discover More
104 
105List all endpoints, or add a path for parameter details:
106 
107```bash
108curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/search \
109 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
110 -H "Content-Type: application/json" \
111 -d '{"prompt":"linkup API endpoints"}' api show riveter
112curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/search \
113 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
114 -H "Content-Type: application/json" \
115 -d '{"prompt":"scrapegraph API endpoints"}'
116 
117Example: `curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/details \
118 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
119 -H "Content-Type: application/json" \
120 -d '{"api":"olostep","path":"/v1/scrapes`"}' for endpoint parameters.
121 

Discussion

Alternatives

Also in Services & APIs
Context7Pulls up-to-date, version-specific library docs and code examples into the prompt so the AI stops inventing old APIs.Coding · MITAdaptyv Bio Foundry APIHow to use the Adaptyv Bio Foundry API and Python SDK for protein experiment design, submission, and results retrieval. Use this skill whenever the user mentions Adaptyv, Foundry API, protein binding assays, protein screening experiments, BLI/SPR assays, thermostability assays, or wants to submit protein sequences for experimental characterization. Also trigger when code imports `adaptyv`, `adaptyv_sdk`, or `FoundryClient`, or references `foundry-api-public.adaptyvbio.com`.Science · MIT.NET Backend Development PatternsMaster C#/.NET backend development patterns for building robust APIs, MCP servers, and enterprise applications. Covers async/await, dependency injection, Entity Framework Core, Dapper, configuration, caching, and testing with xUnit. Use when developing .NET backends, reviewing C# code, or designing API architectures.Coding · MITAdd AI protectionProtect AI chat and completion endpoints from abuse — detect prompt injection and jailbreak attempts, block PII and sensitive info from leaking in responses, and enforce token budget rate limits to control costs. Use this skill when the user is building or securing any endpoint that processes user prompts with an LLM, even if they describe it as "preventing jailbreaks," "stopping prompt attacks," "blocking sensitive data," or "controlling AI API costs" rather than naming specific protections.Coding · CC0-1.0