Apidog Skill
Comprehensive assistance with Apidog - an all-in-one API development platform for designing, testing, mocking, and documenting APIs.
When to Use This Skill
This skill should be triggered when:
- Designing RESTful APIs or defining endpoints (OpenAPI/Swagger specs)
- Creating API test scenarios and automated testing workflows
- Setting up API mocking for frontend development or testing
- Migrating from Postman, Insomnia, or other API tools
- Working with API documentation generation and sharing
- Debugging API requests and responses
- Managing environments and variables in API workflows
- Writing pre/post processors or test scripts
- Implementing API security schemes (OAuth, API keys, JWT)
- Generating code from API specifications
- Working with schemas and data models (JSON Schema)
- Database operations in API testing (MySQL, MongoDB, Redis)
Quick Reference
Basic API Endpoint Design
{
"method": "POST",
"path": "/api/users",
"parameters": {
"body": {
"type": "object",
"properties": {
"name": { "type": "string" },
"email": { "type": "string", "format": "email" }
},
"required": ["name", "email"]
}
},
"responses": {
"201": {
"description": "User created",
"body": {
"type": "object",
"properties": {
"id": { "type": "integer" },
"name": { "type": "string" },
"email": { "type": "string" }
}
}
}
}
}
Using Variables in Requests
// Environment variables
{{base_url}}/api/users/{{user_id}}
// Dynamic values
{
"timestamp": "{{$timestamp}}",
"uuid": "{{$guid}}",
"random_email": "{{$randomEmail}}",
"random_int": "{{$randomInt}}"
}
Post-Processor Script for Extracting Data
// Extract token from response
const response = pm.response.json();
pm.environment.set("auth_token", response.data.token);
// Extract user ID
pm.environment.set("user_id", response.data.user.id);
// Assert response status
pm.test("Status is 200", function() {
pm.response.to.have.status(200);
});
Basic Assertion Examples
// Status code assertion
pm.test("Status code is 200", function() {
pm.response.to.have.status(200);
});
// Response body validation
pm.test("Response has user data", function() {
const jsonData = pm.response.json();
pm.expect(jsonData).to.have.property('user');
pm.expect(jsonData.user).to.have.property('email');
});
// Response time check
pm.test("Response time is less than 500ms", function() {
pm.expect(pm.response.responseTime).to.be.below(500);
});
Setting Up Mock Data
// Smart Mock - Automatically generates data based on field names
{
"id": "@integer(1, 1000)",
"name": "@name",
"email": "@email",
"avatar": "@image('200x200')",
"created_at": "@datetime"
}
// Custom Mock with conditions
{
"status": "@pick(['active', 'pending', 'disabled'])",
"age": "@integer(18, 65)",
"balance": "@float(0, 10000, 2, 2)"
}
Pre-Processor Script for Dynamic Headers
// Generate timestamp-based signature
const timestamp = Date.now();
const signature = CryptoJS.MD5(timestamp + "secret_key").toString();
pm.request.headers.add({
key: "X-Timestamp",
value: timestamp.toString()
});
pm.request.headers.add({
key: "X-Signature",
value: signature
});
Test Scenario with Data Passing
// Step 1: Login and save token
// POST /api/login
pm.test("Login successful", function() {
const response = pm.response.json();
pm.environment.set("token", response.access_token);
});
// Step 2: Use token in next request
// GET /api/profile
// Headers: Authorization: Bearer {{token}}
// Step 3: Extract and use profile data
pm.test("Profile fetched", function() {
const profile = pm.response.json();
pm.environment.set("user_name", profile.name);
});
Database Operation in Tests
// MySQL query in pre-processor
const db = require('db');
const result = db.query('SELECT * FROM users WHERE email = ?', [pm.environment.get('email')]);
pm.environment.set('user_id', result[0].id);
Schema Composition (oneOf, allOf, anyOf)
{
"oneOf": [
{
"type": "object",
"properties": {
"type": { "const": "credit_card" },
"card_number": { "type": "string" }
}
},
{
"type": "object",
"properties": {
"type": { "const": "bank_account" },
"account_number": { "type": "string" }
}
}
]
}
Security Scheme Configuration
{
"securitySchemes": {
"BearerAuth": {
"type": "http",
"scheme": "bearer",
"bearerFormat": "JWT"
},
"ApiKeyAuth": {
"type": "apiKey",
"in": "header",
"name": "X-API-Key"
}
}
}
Key Concepts
Design-First vs Request-First Mode
- Design-First: Define API specifications first, then implement and test
- Request-First: Send requests directly, then optionally save as endpoints
- Apidog supports both workflows seamlessly
Schemas and Components
- Schemas: Reusable data models (JSON Schema format)
- Components: Shared parameters, headers, responses across endpoints
- Enables DRY principles in API design
Smart Mock
Automatically generates realistic mock data based on:
- Field names (email, phone, address, etc.)
- Data types (string, number, boolean)
- Formats (date-time, uuid, url)
- Custom mock rules and priorities
Pre/Post Processors
- Pre-processors: Run before request (setup, auth, dynamic data)
- Post-processors: Run after response (assertions, data extraction, validation)
- Support scripts, database operations, variable extraction, assertions
Test Scenarios
- Chain multiple API requests together
- Pass data between requests using variables
- Add conditional logic and loops
- Generate comprehensive test reports
Environments & Variables
- Environment variables: Configuration per environment (dev, staging, prod)
- Global variables: Shared across all environments
- Temporary variables: Exist only during test scenario execution
- Vault secrets: Secure storage (HashiCorp, Azure, AWS integration)
Reference Files
This skill includes comprehensive documentation in references/:
- api.md - Complete Apidog documentation including:
- Getting Started: Introduction, navigation, basic concepts, quick start guides
- Migration: Import from Postman, Insomnia, Swagger/OpenAPI, cURL, HAR files
- API Design: Endpoint specifications, schemas, components, security schemes, modules
- Development & Debugging: Requests, responses, environments, variables, code generation
- Pre/Post Processors: Assertions, scripts, database operations, variable extraction
- Mock Data: Smart mock, custom mock, mock scripts, cloud vs self-hosted
- Testing: Test scenarios, automation, reports, data passing between requests
- Dynamic Values Modules: Faker.js integration for realistic test data (50+ modules)
- Collaboration: Team management, permissions, version control
- Documentation: Auto-generation, sharing, customization
- Integration: CI/CD, webhooks, CLI, API
Use the reference file when you need:
- Detailed feature explanations
- Advanced configuration options
- Migration guides and import procedures
- Comprehensive scripting examples
- Database integration patterns
- Complete dynamic values reference
Working with This Skill
For Beginners
Start with these core concepts:
- Creating your first endpoint: Define method, path, parameters, and responses
- Making requests: Use the request panel to test endpoints
- Basic assertions: Validate status codes and response bodies
- Environments: Set up dev/staging/prod configurations
- Mock data: Enable mock server for frontend development
Refer to the Quick Start section in references/api.md for step-by-step tutorials.
For Intermediate Users
Focus on:
- Schema design: Create reusable data models with JSON Schema
- Test scenarios: Chain requests and pass data between them
- Pre/Post processors: Add custom logic with scripts
- Dynamic values: Use Faker.js modules for realistic test data
- Security schemes: Implement OAuth, JWT, API key authentication
For Advanced Users
Explore:
- Database operations: Query MySQL/MongoDB/Redis in tests
- Custom scripts: Use JavaScript libraries and external languages
- Schema composition: Leverage oneOf, allOf, anyOf for complex models
- CI/CD integration: Automate testing in pipelines
- Team collaboration: Version control, branches, merge conflicts
- API documentation: Customize and publish interactive docs
For Migration
If coming from other tools:
- Postman users: Import collections, environments, and globals
- Insomnia users: Import workspaces and requests
- Swagger users: Import OpenAPI 2.0/3.0 specifications
- cURL users: Paste cURL commands directly
- Check
references/api.md Migration section for detailed guides
Navigation Tips
- Use Ctrl/Cmd+K for quick search across documentation
- Check the Table of Contents in api.md for specific topics
- Dynamic Values Modules section lists all available Faker.js functions
- Script examples section shows common patterns for assertions and data manipulation
Common Workflows
Workflow 1: Design → Mock → Test → Document
- Design API endpoints with schemas
- Enable smart mock for realistic data
- Write test scenarios with assertions
- Auto-generate and share documentation
Workflow 2: Import → Enhance → Automate
- Import from Postman/Swagger
- Add schemas and components for reusability
- Create test scenarios with data passing
- Integrate with CI/CD pipeline
Workflow 3: Request-First Development
- Send ad-hoc requests to explore APIs
- Save successful requests as endpoints
- Add schemas from response bodies
- Build test scenarios from saved requests
Resources
Official Documentation
All content is sourced from https://docs.apidog.com/
Dynamic Values Reference
Apidog includes 50+ Faker.js modules for test data:
- Person (names, emails, phones)
- Internet (URLs, IPs, domains)
- Commerce (products, prices)
- Date/Time (timestamps, future/past dates)
- Location (addresses, coordinates)
- Finance (credit cards, transactions)
- And many more - see Dynamic Values Modules in api.md
Database Support
- MySQL / PostgreSQL
- MongoDB
- Redis
- Oracle
Scripting Languages
- JavaScript (primary)
- Python, PHP, Go, Java (via external execution)
Import/Export Formats
- OpenAPI 2.0 / 3.0
- Postman Collection v1/v2
- Insomnia v4
- HAR (HTTP Archive)
- cURL
- WSDL
- Markdown
Notes
- This skill was automatically generated from official Apidog documentation
- Code examples preserve syntax from source docs with proper language detection
- Quick reference examples are extracted from real-world usage patterns
- Reference file maintains hierarchical structure of official documentation
Updating
To refresh this skill with updated documentation:
- Re-run the scraper with the same configuration
- The skill will be rebuilt with the latest information from docs.apidog.com
1---2name: apidog3description: Apidog API development platform documentation - API design, testing, mocking, and documentation4---56# Apidog Skill78Comprehensive assistance with Apidog - an all-in-one API development platform for designing, testing, mocking, and documenting APIs.910## When to Use This Skill1112This skill should be triggered when:13- Designing RESTful APIs or defining endpoints (OpenAPI/Swagger specs)14- Creating API test scenarios and automated testing workflows15- Setting up API mocking for frontend development or testing16- Migrating from Postman, Insomnia, or other API tools17- Working with API documentation generation and sharing18- Debugging API requests and responses19- Managing environments and variables in API workflows20- Writing pre/post processors or test scripts21- Implementing API security schemes (OAuth, API keys, JWT)22- Generating code from API specifications23- Working with schemas and data models (JSON Schema)24- Database operations in API testing (MySQL, MongoDB, Redis)2526## Quick Reference2728### Basic API Endpoint Design2930```json31{32 "method": "POST",33 "path": "/api/users",34 "parameters": {35 "body": {36 "type": "object",37 "properties": {38 "name": { "type": "string" },39 "email": { "type": "string", "format": "email" }40 },41 "required": ["name", "email"]42 }43 },44 "responses": {45 "201": {46 "description": "User created",47 "body": {48 "type": "object",49 "properties": {50 "id": { "type": "integer" },51 "name": { "type": "string" },52 "email": { "type": "string" }53 }54 }55 }56 }57}58```5960### Using Variables in Requests6162```javascript63// Environment variables64{{base_url}}/api/users/{{user_id}}6566// Dynamic values67{68 "timestamp": "{{$timestamp}}",69 "uuid": "{{$guid}}",70 "random_email": "{{$randomEmail}}",71 "random_int": "{{$randomInt}}"72}73```7475### Post-Processor Script for Extracting Data7677```javascript78// Extract token from response79const response = pm.response.json();80pm.environment.set("auth_token", response.data.token);8182// Extract user ID83pm.environment.set("user_id", response.data.user.id);8485// Assert response status86pm.test("Status is 200", function() {87 pm.response.to.have.status(200);88});89```9091### Basic Assertion Examples9293```javascript94// Status code assertion95pm.test("Status code is 200", function() {96 pm.response.to.have.status(200);97});9899// Response body validation100pm.test("Response has user data", function() {101 const jsonData = pm.response.json();102 pm.expect(jsonData).to.have.property('user');103 pm.expect(jsonData.user).to.have.property('email');104});105106// Response time check107pm.test("Response time is less than 500ms", function() {108 pm.expect(pm.response.responseTime).to.be.below(500);109});110```111112### Setting Up Mock Data113114```javascript115// Smart Mock - Automatically generates data based on field names116{117 "id": "@integer(1, 1000)",118 "name": "@name",119 "email": "@email",120 "avatar": "@image('200x200')",121 "created_at": "@datetime"122}123124// Custom Mock with conditions125{126 "status": "@pick(['active', 'pending', 'disabled'])",127 "age": "@integer(18, 65)",128 "balance": "@float(0, 10000, 2, 2)"129}130```131132### Pre-Processor Script for Dynamic Headers133134```javascript135// Generate timestamp-based signature136const timestamp = Date.now();137const signature = CryptoJS.MD5(timestamp + "secret_key").toString();138139pm.request.headers.add({140 key: "X-Timestamp",141 value: timestamp.toString()142});143144pm.request.headers.add({145 key: "X-Signature",146 value: signature147});148```149150### Test Scenario with Data Passing151152```javascript153// Step 1: Login and save token154// POST /api/login155pm.test("Login successful", function() {156 const response = pm.response.json();157 pm.environment.set("token", response.access_token);158});159160// Step 2: Use token in next request161// GET /api/profile162// Headers: Authorization: Bearer {{token}}163164// Step 3: Extract and use profile data165pm.test("Profile fetched", function() {166 const profile = pm.response.json();167 pm.environment.set("user_name", profile.name);168});169```170171### Database Operation in Tests172173```javascript174// MySQL query in pre-processor175const db = require('db');176const result = db.query('SELECT * FROM users WHERE email = ?', [pm.environment.get('email')]);177pm.environment.set('user_id', result[0].id);178```179180### Schema Composition (oneOf, allOf, anyOf)181182```json183{184 "oneOf": [185 {186 "type": "object",187 "properties": {188 "type": { "const": "credit_card" },189 "card_number": { "type": "string" }190 }191 },192 {193 "type": "object",194 "properties": {195 "type": { "const": "bank_account" },196 "account_number": { "type": "string" }197 }198 }199 ]200}201```202203### Security Scheme Configuration204205```json206{207 "securitySchemes": {208 "BearerAuth": {209 "type": "http",210 "scheme": "bearer",211 "bearerFormat": "JWT"212 },213 "ApiKeyAuth": {214 "type": "apiKey",215 "in": "header",216 "name": "X-API-Key"217 }218 }219}220```221222## Key Concepts223224### Design-First vs Request-First Mode225- **Design-First**: Define API specifications first, then implement and test226- **Request-First**: Send requests directly, then optionally save as endpoints227- Apidog supports both workflows seamlessly228229### Schemas and Components230- **Schemas**: Reusable data models (JSON Schema format)231- **Components**: Shared parameters, headers, responses across endpoints232- Enables DRY principles in API design233234### Smart Mock235Automatically generates realistic mock data based on:236- Field names (email, phone, address, etc.)237- Data types (string, number, boolean)238- Formats (date-time, uuid, url)239- Custom mock rules and priorities240241### Pre/Post Processors242- **Pre-processors**: Run before request (setup, auth, dynamic data)243- **Post-processors**: Run after response (assertions, data extraction, validation)244- Support scripts, database operations, variable extraction, assertions245246### Test Scenarios247- Chain multiple API requests together248- Pass data between requests using variables249- Add conditional logic and loops250- Generate comprehensive test reports251252### Environments & Variables253- **Environment variables**: Configuration per environment (dev, staging, prod)254- **Global variables**: Shared across all environments255- **Temporary variables**: Exist only during test scenario execution256- **Vault secrets**: Secure storage (HashiCorp, Azure, AWS integration)257258## Reference Files259260This skill includes comprehensive documentation in `references/`:261262- **api.md** - Complete Apidog documentation including:263 - **Getting Started**: Introduction, navigation, basic concepts, quick start guides264 - **Migration**: Import from Postman, Insomnia, Swagger/OpenAPI, cURL, HAR files265 - **API Design**: Endpoint specifications, schemas, components, security schemes, modules266 - **Development & Debugging**: Requests, responses, environments, variables, code generation267 - **Pre/Post Processors**: Assertions, scripts, database operations, variable extraction268 - **Mock Data**: Smart mock, custom mock, mock scripts, cloud vs self-hosted269 - **Testing**: Test scenarios, automation, reports, data passing between requests270 - **Dynamic Values Modules**: Faker.js integration for realistic test data (50+ modules)271 - **Collaboration**: Team management, permissions, version control272 - **Documentation**: Auto-generation, sharing, customization273 - **Integration**: CI/CD, webhooks, CLI, API274275Use the reference file when you need:276- Detailed feature explanations277- Advanced configuration options278- Migration guides and import procedures279- Comprehensive scripting examples280- Database integration patterns281- Complete dynamic values reference282283## Working with This Skill284285### For Beginners286Start with these core concepts:2871. **Creating your first endpoint**: Define method, path, parameters, and responses2882. **Making requests**: Use the request panel to test endpoints2893. **Basic assertions**: Validate status codes and response bodies2904. **Environments**: Set up dev/staging/prod configurations2915. **Mock data**: Enable mock server for frontend development292293Refer to the Quick Start section in `references/api.md` for step-by-step tutorials.294295### For Intermediate Users296Focus on:2971. **Schema design**: Create reusable data models with JSON Schema2982. **Test scenarios**: Chain requests and pass data between them2993. **Pre/Post processors**: Add custom logic with scripts3004. **Dynamic values**: Use Faker.js modules for realistic test data3015. **Security schemes**: Implement OAuth, JWT, API key authentication302303### For Advanced Users304Explore:3051. **Database operations**: Query MySQL/MongoDB/Redis in tests3062. **Custom scripts**: Use JavaScript libraries and external languages3073. **Schema composition**: Leverage oneOf, allOf, anyOf for complex models3084. **CI/CD integration**: Automate testing in pipelines3095. **Team collaboration**: Version control, branches, merge conflicts3106. **API documentation**: Customize and publish interactive docs311312### For Migration313If coming from other tools:314- **Postman users**: Import collections, environments, and globals315- **Insomnia users**: Import workspaces and requests316- **Swagger users**: Import OpenAPI 2.0/3.0 specifications317- **cURL users**: Paste cURL commands directly318- Check `references/api.md` Migration section for detailed guides319320### Navigation Tips321- Use Ctrl/Cmd+K for quick search across documentation322- Check the Table of Contents in api.md for specific topics323- Dynamic Values Modules section lists all available Faker.js functions324- Script examples section shows common patterns for assertions and data manipulation325326## Common Workflows327328### Workflow 1: Design → Mock → Test → Document3291. Design API endpoints with schemas3302. Enable smart mock for realistic data3313. Write test scenarios with assertions3324. Auto-generate and share documentation333334### Workflow 2: Import → Enhance → Automate3351. Import from Postman/Swagger3362. Add schemas and components for reusability3373. Create test scenarios with data passing3384. Integrate with CI/CD pipeline339340### Workflow 3: Request-First Development3411. Send ad-hoc requests to explore APIs3422. Save successful requests as endpoints3433. Add schemas from response bodies3444. Build test scenarios from saved requests345346## Resources347348### Official Documentation349All content is sourced from https://docs.apidog.com/350351### Dynamic Values Reference352Apidog includes 50+ Faker.js modules for test data:353- Person (names, emails, phones)354- Internet (URLs, IPs, domains)355- Commerce (products, prices)356- Date/Time (timestamps, future/past dates)357- Location (addresses, coordinates)358- Finance (credit cards, transactions)359- And many more - see Dynamic Values Modules in api.md360361### Database Support362- MySQL / PostgreSQL363- MongoDB364- Redis365- Oracle366367### Scripting Languages368- JavaScript (primary)369- Python, PHP, Go, Java (via external execution)370371### Import/Export Formats372- OpenAPI 2.0 / 3.0373- Postman Collection v1/v2374- Insomnia v4375- HAR (HTTP Archive)376- cURL377- WSDL378- Markdown379380## Notes381382- This skill was automatically generated from official Apidog documentation383- Code examples preserve syntax from source docs with proper language detection384- Quick reference examples are extracted from real-world usage patterns385- Reference file maintains hierarchical structure of official documentation386387## Updating388389To refresh this skill with updated documentation:3901. Re-run the scraper with the same configuration3912. The skill will be rebuilt with the latest information from docs.apidog.com