Home · Skills · Development
API Tester - Test Any API Endpoint
Test and document API endpoints - validate responses, check status, generate examples
How to use it
- Hit Copy the whole skill.
- 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. - 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-testerFor 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.
Paste into Claude, ChatGPT or Cursor.
Show the full text121 lines
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 | |
| 2 | name api-tester |
| 3 | description Test and document API endpoints - validate responses, check status, generate examples |
| 4 | source orthogonal |
| 5 | |
| 6 | |
| 7 | |
| 8 | # API Tester - Test Any API Endpoint |
| 9 | |
| 10 | ## Setup |
| 11 | |
| 12 | Read your credentials from ~/.gooseworks/credentials.json: |
| 13 | |
| 14 | export GOOSEWORKS_API_KEY=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json'))['api_key'])") |
| 15 | export GOOSEWORKS_API_BASE=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json')).get('api_base','https://api.gooseworks.ai'))") |
| 16 | |
| 17 | |
| 18 | If ~/.gooseworks/credentials.json does not exist, tell the user to run: `npx gooseworks login` |
| 19 | |
| 20 | All endpoints use Bearer auth: `-H "Authorization: Bearer $GOOSEWORKS_API_KEY"` |
| 21 | |
| 22 | |
| 23 | Test API endpoints, validate responses, and generate documentation examples. |
| 24 | |
| 25 | ## Workflow |
| 26 | |
| 27 | ### Step 1: Test GET Endpoints |
| 28 | Make GET requests to test endpoints: |
| 29 | |
| 30 | |
| 31 | curl -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 |
| 38 | Test POST requests by fetching API docs: |
| 39 | |
| 40 | |
| 41 | curl -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 |
| 51 | Fetch and parse API docs: |
| 52 | |
| 53 | |
| 54 | curl -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 |
| 61 | Check response structure: |
| 62 | |
| 63 | |
| 64 | curl -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 | |
| 80 | # Extract API spec from docs |
| 81 | curl -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 |
| 90 | curl -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 | |
| 105 | List all endpoints, or add a path for parameter details: |
| 106 | |
| 107 | |
| 108 | curl -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 |
| 112 | curl -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 | |
| 117 | Example: `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 & APIsContext7Pulls up-to-date, version-specific library docs and code examples into the prompt so the AI stops inventing old APIs.Adaptyv 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`..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.Add 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.