Collections & Folders
Organize your API requests using Collections and Folders. Keep your workflow efficient by grouping related endpoints and structuring your API testing environment.
What are Collections?
Collections are containers for organizing related API requests. Think of them as projects or workspaces where you group all requests for a specific API or feature.
Benefits of Collections
- 📁 Organization – Group related requests together
- 🔄 Reusability – Share variables across requests
- 📝 Documentation – Add descriptions and context
- 🚀 Efficiency – Find requests quickly
- 💾 Portability – Export and share with team
Creating Collections
Create a New Collection
- Click the "New Collection" button in the sidebar
- Enter a name for your collection
- Add an optional description
- Click Create
Example collections:
📁 User Management API
📁 Payment Gateway
📁 E-commerce Backend
📁 Authentication Service
Collection Properties
Each collection can have:
- Name – Descriptive title
- Description – Purpose and context
- Variables – Shared across all requests
- Requests – HTTP, GraphQL, and gRPC calls
- Folders – Sub-organization within collection
Working with Folders
Folders help you organize requests within a collection into logical groups.
Create a Folder
- Right-click on a collection
- Select "New Folder"
- Enter a folder name
- Click Create
Folder Hierarchy
📁 E-commerce API
├── 📂 Authentication
│ ├── Login
│ ├── Logout
│ └── Refresh Token
├── 📂 Users
│ ├── Get User
│ ├── Create User
│ ├── Update User
│ └── Delete User
├── 📂 Products
│ ├── List Products
│ ├── Get Product
│ ├── Create Product
│ └── Update Product
└── 📂 Orders
├── Create Order
├── Get Order Status
└── Cancel Order
Nested Folders
Create sub-folders for deeper organization:
📁 Microservices API
├── 📂 User Service
│ ├── 📂 Public Endpoints
│ │ ├── Register
│ │ └── Login
│ └── 📂 Protected Endpoints
│ ├── Get Profile
│ └── Update Profile
├── 📂 Product Service
│ ├── 📂 Catalog
│ └── 📂 Inventory
└── 📂 Order Service
├── 📂 Cart
└── 📂 Checkout
Managing Requests
Add Request to Collection
- Create or open a request
- Click the folder icon or "Save to Collection"
- Select a collection or folder
- Name your request
- Click Save
Move Requests
Drag and drop requests to reorganize:
- Move between folders
- Reorder within a folder
- Move to different collections
Duplicate Requests
Create copies of existing requests:
- Right-click on a request
- Select "Duplicate"
- Modify the copy as needed
Useful for:
- Creating similar requests
- Testing variations
- A/B testing different payloads
Collection Variables
Define variables that apply to all requests in a collection.
Setting Collection Variables
- Click on a collection
- Go to Variables tab
- Add variables for this collection
Example:
base_url: https://api.example.com
api_version: v1
auth_token: collection_specific_token
Variable Inheritance
Variables cascade from collection to request:
Global Variables (lowest priority)
↓
Collection Variables
↓
Request Variables (highest priority)
Example:
- Global:
{{timeout}}
= 30 - Collection:
{{timeout}}
= 60 - Request uses: 60 seconds
Organizing Strategies
By Feature
Group by application features:
📁 Social Media App
├── 📂 Posts
├── 📂 Comments
├── 📂 Likes
├── 📂 Followers
└── 📂 Notifications
By HTTP Method
Group by request type:
📁 REST API
├── 📂 GET Requests
├── 📂 POST Requests
├── 📂 PUT Requests
├── 📂 PATCH Requests
└── 📂 DELETE Requests
By Environment
Separate development and production:
📁 Development
├── 📂 Users API (Dev)
└── 📂 Payments API (Dev)
📁 Production
├── 📂 Users API (Prod)
└── 📂 Payments API (Prod)
By Workflow
Group by user workflows:
📁 User Registration Flow
├── 1. Check Email Availability
├── 2. Create Account
├── 3. Send Verification Email
├── 4. Verify Email
└── 5. Complete Profile
By Service
For microservices architectures:
📁 Backend Services
├── 📂 Auth Service
├── 📂 User Service
├── 📂 Product Service
├── 📂 Order Service
└── 📂 Payment Service
Collection Actions
Rename Collection
- Right-click on collection
- Select "Rename"
- Enter new name
Delete Collection
- Right-click on collection
- Select "Delete"
- Confirm deletion
Deleting a collection permanently removes all requests, folders, and variables inside it.
Duplicate Collection
- Right-click on collection
- Select "Duplicate"
- New collection is created with all contents
Useful for:
- Creating environment copies
- Backing up collections
- Testing changes safely
Search and Filter
Search in Collection
Use the search box to find:
- Requests by name
- Requests by URL
- Requests by method
- Folders by name
Filter Requests
Filter by:
- Method – Show only GET, POST, etc.
- Status – Show requests with errors
- Type – HTTP, GraphQL, or gRPC
Documenting Collections
Collection Description
Add documentation to your collection:
# E-commerce API Collection
This collection contains all endpoints for the e-commerce platform.
## Authentication
All requests require a Bearer token in the Authorization header.
## Base URL
- Dev: https://dev-api.example.com
- Prod: https://api.example.com
## Rate Limits
- 100 requests per minute
- 10,000 requests per day
Request Descriptions
Document individual requests:
## Get User by ID
Retrieves detailed information about a user.
**Parameters:**
- `id` (required) – User ID
**Returns:**
- User object with profile information
**Example Response:**
{
"id": "123",
"name": "John Doe",
"email": "john@example.com"
}
Exporting Collections
Export Format
Export collections as JSON:
{
"name": "User API",
"description": "User management endpoints",
"variables": {
"base_url": "https://api.example.com",
"auth_token": "token123"
},
"folders": [
{
"name": "Authentication",
"requests": [...]
}
],
"requests": [...]
}
Export Steps
- Right-click on collection
- Select "Export Collection"
- Choose location to save
- JSON file is created
Sharing Collections
Share with teammates:
- Export collection
- Send JSON file
- Teammate imports in their Solo
Remove sensitive data like auth tokens before sharing collections.
Importing Collections
Import from File
- Click "Import" button
- Select JSON file
- Collection is added to Solo
Import from cURL
Import multiple cURL commands:
- Click "Import" button
- Paste multiple cURL commands
- Solo creates requests in a new collection
Real-World Examples
Example 1: REST API Collection
📁 Blog API
├── 📂 Authentication
│ ├── POST /auth/login
│ ├── POST /auth/register
│ └── POST /auth/refresh
├── 📂 Posts
│ ├── GET /posts
│ ├── GET /posts/:id
│ ├── POST /posts
│ ├── PUT /posts/:id
│ └── DELETE /posts/:id
├── 📂 Comments
│ ├── GET /posts/:id/comments
│ ├── POST /posts/:id/comments
│ └── DELETE /comments/:id
└── 📂 Users
├── GET /users/:id
└── PUT /users/:id
Variables:
base_url: https://api.blog.com
api_version: v1
auth_token: {{user_token}}
Example 2: GraphQL Collection
📁 GitHub GraphQL API
├── 📂 Repositories
│ ├── Get Repository
│ ├── List Repositories
│ └── Create Repository
├── 📂 Issues
│ ├── List Issues
│ ├── Create Issue
│ └── Update Issue
└── 📂 Pull Requests
├── List PRs
└── Create PR
Variables:
endpoint: https://api.github.com/graphql
token: ghp_yourtokenhere
owner: igorvieira
repo: Solo
Example 3: gRPC Collection
📁 User gRPC Service
├── 📂 User Management
│ ├── GetUser
│ ├── CreateUser
│ ├── UpdateUser
│ └── DeleteUser
├── 📂 Authentication
│ ├── Login
│ └── Logout
└── 📂 Streaming
├── StreamUsers
└── BulkUpdate
Variables:
server: localhost:50051
auth_metadata: token:abc123
Example 4: Multi-Environment Collection
📁 Payment API - Development
Variables: base_url=https://dev-api.pay.com
📁 Payment API - Staging
Variables: base_url=https://staging-api.pay.com
📁 Payment API - Production
Variables: base_url=https://api.pay.com
Same requests, different variables.
Keyboard Shortcuts
Cmd/Ctrl + N
– New request in current collectionCmd/Ctrl + Shift + N
– New collectionCmd/Ctrl + F
– Search in collectionCmd/Ctrl + S
– Save request to collection
Best Practices
Use Meaningful Names
# Good
📁 E-commerce Backend API
├── 📂 User Authentication & Authorization
├── 📂 Product Catalog Management
└── 📂 Order Processing
# Less clear
📁 API
├── 📂 Auth
├── 📂 Products
└── 📂 Orders
Group by Workflow
Organize requests in the order they're typically called:
📁 Checkout Flow
├── 1. Get Cart
├── 2. Validate Items
├── 3. Calculate Shipping
├── 4. Process Payment
├── 5. Create Order
└── 6. Send Confirmation
Use Collection Variables
Define common values once:
Collection Variables:
base_url: https://api.example.com
api_key: your_api_key
timeout: 30
Requests:
GET {{base_url}}/users
POST {{base_url}}/orders
Document Everything
Add descriptions to:
- Collections – Overall purpose
- Folders – What's grouped here
- Requests – What it does, parameters, responses
Keep Collections Focused
# Good – Focused collections
📁 User Service API
📁 Payment Service API
📁 Inventory Service API
# Less organized
📁 All APIs
├── Users, Payments, Inventory, Orders...
Troubleshooting
Collection Not Saving
- Check available disk space
- Ensure Solo has write permissions
- Try exporting as backup
Missing Requests
- Check if moved to another folder
- Use search to find by name or URL
- Check deleted items (if available)
Variables Not Working
- Verify variable scope
- Check variable name spelling
- Ensure no circular references
Next Steps
- Variables – Manage collection variables
- HTTP Requests – Create HTTP requests
- Offline-First – How collections are stored
- cURL Integration – Import/export collections