Testing Connectors
Always test connectors before use in production collections.
Adding Test Credentials
Test credentials are managed as slots in the Test tab of the connector editor (or in Test & Configure for a draft). Each slot is one set of credentials; the active slot is the one used when you fire test requests.
- Open the connector and go to the Test tab
- Add a New credential slot
- Fill in the form for your connector's auth type (see below)
- Optionally mark the slot persistent to keep it beyond the default expiry
- Save the slot, then make it the active slot
Credentials are encrypted and stored in Doppler. They are never exposed in the UI after saving.
Non-persistent test credential slots expire (default ~24 hours). Persistent slots are kept until you delete them.
By Auth Type
Bearer / API Key / Basic Auth
Enter your token, API key, or username and password directly. The form matches the connector's configured auth type.
OAuth2
Enter the access token provided by the platform's OAuth flow.
Token Exchange
The token exchange form has two options:
Option 1 — Authorization Code Flow (shown when the connector has OAuth flow configured):
- Click Authorize with [Platform] — a browser window opens to the platform's authorization URL
- Log in and grant permissions
- After redirect, an authorization code appears — paste it into the Authorization code field
- Traces will exchange this code for an access token automatically when tests run
Option 2 — Direct token (shown as "I already have an access token"):
If you already have a valid access token (e.g. from a previous OAuth step or a long-lived token), paste it here. Traces will use it as-is, bypassing the token endpoint entirely. This is useful for initial testing before the full OAuth flow is configured.
When the connector has static body fields configured (e.g. client_id, client_secret), those are stored at the connector level and do not need to be entered per analyst.
Testing Individual Endpoints
Running a Test
- Click Test on any endpoint
- Review the request that will be sent:
- URL with resolved parameters
- Headers
- Query parameters
- Click Send Request
- Examine the response:
- Status code
- Response headers
- Response body (interactive JSON viewer)
- Response time
Using the JSON Viewer
The interactive JSON viewer lets you:
- Expand/collapse nested objects
- Click paths to select for dependencies
- Copy values
- Search within response
- Save selections as variables directly from the viewer (click a value, then "Save as Variable")
Interpreting Results
| Status | Meaning | Action |
|---|---|---|
| 200 | Success | Verify data is correct |
| 401 | Unauthorized | Check credentials |
| 403 | Forbidden | Check permissions/scopes |
| 404 | Not Found | Verify endpoint path |
| 429 | Rate Limited | Reduce request rate or configure rate limiting |
| 500+ | Server Error | Platform issue, retry later |
Pasting Sample Responses
If you can't make live requests:
- Click Paste Sample Response
- Paste JSON from the API documentation
- Use for:
- Configuring pagination paths
- Setting up dependencies
- Verifying data extraction
Sample data helps configure but doesn't validate the connector works with real API.
Sample History
Test responses are automatically saved for later use:
- Auto-save: Successful (2xx) tests save automatically
- Limit: Up to 10 samples per endpoint
- Persistence: Samples survive browser refresh and sessions
Using Sample History
- Click the History button (clock icon) in the response toolbar to open the history popout
- See the list of saved samples with timestamps
- Click any sample to view/activate it
- Active sample data is used for dependency mapping
Sample history lets you:
- Work offline with cached responses
- Compare responses over time
- Restore good test data if new tests fail
See Sample History for the full guide.
Query Parameters
Add query parameters for testing in the parameters panel below the URL bar:
- Expand the Query Parameters section under the URL bar
- Click + to add a new parameter
- Enter the parameter name and value
Parameter Sources
Query parameters can come from:
- Manual entry: Type values directly
- Dependency mappings: Link to other endpoint responses
- Variables: Apply saved variable extractions
See Query Parameters for details.
Test Modes
Testing is driven from the toolbar at the top of the endpoint editor:
| Control | Appears | Purpose |
|---|---|---|
| Test button (Play icon) | Always | Runs the endpoint once |
| Full collection toggle | When pagination or recursion is enabled | When on, the Test button follows all pages/recursion; when off, it fetches a single page (max 3 pages) |
| Iterate button | When the endpoint has an iterate-mode dependency mapping | Runs the endpoint once per source value |
Full-collection and Iterate runs use SSE streaming with real-time progress counters, pause/resume, and stop-and-preserve behavior.
When to Use Each
- Test (single): Initial testing, debugging, quick checks
- Test with Full collection on: Complete pagination test, comprehensive samples
- Iterate: Test dependent endpoints with multiple source values
See Test Modes for the full guide.
Testing Pagination
- Configure pagination settings
- Test the endpoint
- Verify response includes:
- Cursor/next token
- Has_more flag (if applicable)
- Data array at expected path
- Check that second request would be made
- Monitor for correct stop condition
Verifying Complete Pagination
For thorough testing:
- Run multiple test requests
- Follow cursor manually
- Verify you can reach last page
- Confirm stop condition triggers
Running Test Collections
For comprehensive testing after finalizing:
- Finalize the connector
- Create a test collection
- Configure minimal scope:
- Recent date range (last 7 days)
- Limited filters if available
- Run and monitor in real-time
- Review collected files and logs
- Check for:
- Complete pagination
- All dependencies resolved
- No unexpected errors
Testing Checklist
Before publishing a connector:
- Authentication works correctly
- All enabled endpoints return data
- Pagination retrieves multiple pages
- Pagination stops correctly (not infinite)
- Dependencies resolve to correct values
- Rate limits are respected
- Error handling works as expected
- Data extraction paths are correct
- Conditional execution conditions evaluate correctly
- Response transformations produce expected output
- Recursive endpoints traverse to expected depth
Common Testing Issues
"Test succeeds but collection fails"
Causes:
- Different credential scopes in production
- Test used sample data not real API
- Rate limits hit during full collection
Solutions:
- Use same credentials for test and collection
- Always test with live API calls
- Configure appropriate rate limits
"Pagination stops early"
Causes:
- Wrong cursor path
- Stop condition triggered incorrectly
- Cursor not updating
Solutions:
- Verify cursor path matches response
- Check stop condition logic
- Test multiple pages manually
"Dependencies work in test, fail in collection"
Causes:
- Test used limited data
- Full collection has edge cases
- Order issues in parallel execution
Solutions:
- Test with larger data sets
- Handle empty results
- Verify dependency order is correct
Best Practices
- Always test with real credentials - Don't rely on sample data
- Test edge cases - Empty results, single items, large volumes
- Verify pagination completely - Don't just test first page
- Document test results - Note any quirks discovered
- Re-test after changes - Any config change needs re-testing