API Testing: API Sources
Overview
Use this page to add and manage the API sources that API Testing flows are generated and validated against. An API source is a registered OpenAPI (Swagger) specification, fetched from a URL or uploaded as a file, that describes an API's endpoints and request/response contracts. Without a source, there is nothing for LoadGen to import endpoints from, and nothing to compare a running API against when its contract changes.
A source sits upstream of everything else in API Testing: before you can build anything in API Testing: Flows, at least one source must exist and have imported a spec version. Once you approve a version here, LoadGen tracks which flows depend on it, flagging those affected by a contract change so you can jump straight into editing or migrating them.
On this page you register new sources, trigger manual refreshes or spec uploads, turn on auto-refresh so a source polls its URL on a schedule, and inspect each imported version's coverage, conformance, and diff against the previous version before approving it for use.
Key concepts
- API source - A registered OpenAPI specification, fetched from a URL or uploaded as a file, that describes an API's endpoints and contracts. (related: API Testing: Flows)
- Version - A snapshot of a source's OpenAPI spec captured at import time; each refresh or upload can add a new version for review and approval. (related: API Testing: Flows)
- Auto-Refresh - A setting that polls a source's Spec URL on a schedule and imports changes automatically, instead of relying on a manual refresh click.
- Impacted Flows - The count of API Testing flows built against this source that may need review after its spec changes. (related: API Testing: Flows)
- Diff Summary - A condensed description of what changed in the spec between the previous imported version and the most recent one.
When to use it
- When you need to register an OpenAPI/Swagger specification so API Testing flows can be generated or validated against it.
- When a backend team has published a new API version and you want to pull in and review the changes before flows break.
- When you need to check whether a spec update impacts existing flows before running them.
- When you want a source to stay current automatically instead of remembering to refresh it by hand.
- When a credential used by one of your tested APIs is expiring and you want to see which source it is tied to.
Before you begin
- Have the Spec URL (OpenAPI/Swagger JSON or YAML endpoint) for the API you want to test, or have the spec file (.json, .yaml, or .yml, max 10 MB) ready to upload.
- If the API requires an authenticated request to reach it, set up or confirm the relevant token in Configuration: Credential Profiles beforehand.
- Confirm your account role has write access to API sources; without it, Add, Refresh, Upload, Edit, and Delete appear disabled with a reason in their tooltip.
Common workflows
Register a new API source from a live spec URL
Persona: API test engineer
- Click Add Source and enter a Name and the Spec URL for the API.
- Expect: A dialog opens with Name, Spec URL, Description, and Auto-refresh fields ready to fill in.
- Click Save.
- Expect: A new row appears in the table in Pending status with Versions at 0.
- Click the row's Refresh icon.
- Expect: The source polls the Spec URL and imports the spec; the row updates with an incremented Versions count, a Latest Version value, and a Last Refresh timestamp.
Verify: The source's Status is no longer Pending or Failed and its Versions count is at least 1, meaning flows can now be built against it.
Review and approve a new spec version
Persona: Load-test operator
- Click the row's chevron to expand it.
- Expect: The row opens to show imported versions with Coverage, Diff, and Approve controls, plus any impacted flows.
- Click Diff for the newest version.
- Expect: A comparison opens showing what changed since the previous version.
- Click Approve once the change looks safe.
- Expect: The version is marked approved for use.
Verify: The version shows as approved in the expanded row, and any impacted flows listed there are ready to review with Edit or update with Migrate.
Steps
Step 1
Open API Sources from the API Testing section.
Expected result: The table lists the registered API sources, LoadGen Public API and LoadGen Demo - Api Swagger, both showing Status Pending, Versions 0, and Auto-Refresh Off, since neither has completed an import yet.
This is where you register and track the OpenAPI specs that API Testing flows are generated and validated against.
- A Credentials expiring banner can appear above the table when a credential profile used by one of your tested APIs is about to expire.
- Each row has a chevron to expand its version history and impacted flows.
- Row-action icons for upload, refresh, edit, and delete sit at the right edge of each row.
Field reference
| Field | Purpose | Format / Validation | Required | Default |
|---|---|---|---|---|
| Name | Identifies the source throughout API Testing, including when you pick a source while building a flow; required so every row in the table is distinguishable. | free text | Yes | - |
| Spec URL | The address LoadGen polls to fetch or refresh the OpenAPI document; leave it blank and upload a spec file instead for an API that LoadGen cannot reach directly, since a manual source has no URL to poll. | URL | No | - |
| Description | Optional free-text notes, for example which team owns the API or what it covers, to help others identify the source later. | free text | No | - |
| Auto-refresh | Turns on scheduled polling of the Spec URL so new spec versions import on their own; turn it on for APIs that change often so flows stay validated against the latest contract without a manual refresh, leave it off for stable APIs you'd rather refresh deliberately. | toggle (On/Off) | No | Off |
| Spec file | Uploads a spec document directly instead of polling a URL; use this for a manual source or to push a one-off update by hand. | file upload (.json, .yaml, or .yml, max 10 MB) | No | - |
Column reference
| Column | What it shows | How to read it |
|---|---|---|
| Name | Shows the source's identifying name in the table. | Use this to tell multiple registered sources apart at a glance. |
| Spec URL | Shows the endpoint this source polls for its spec. | A long address is truncated in the table; open Edit or View to read the full URL. |
| Versions | Counts how many spec versions have been imported for this source. | 0 means no import has completed yet; the count rises by one each time a refresh or upload brings in a changed spec. |
| Latest Version | Identifies the most recently imported spec version. | Shows a dash until at least one version has been imported. |
| Status | Reports the current import state of the source. | Pending means no import has completed yet; Failed means the most recent refresh could not reach or parse the spec. Check this after you click refresh or upload to confirm the import succeeded. |
| Diff Summary | Shows a condensed summary of what changed in the spec since the previous version. | Shows a dash until two versions exist to compare; once populated, open Diff on that version for the full comparison. |
| Impacted Flows | Counts the API Testing flows built against this source that a spec change may affect. | A non-zero count means those flows are worth reviewing before you rely on them again; the count reflects the state when the list was last loaded, so reload the page after migrating a flow to see it update. |
| Last Refresh | Shows when the source last attempted or completed an import. | Shows a dash until the first refresh runs; a date here alongside a Failed status means the last attempt needs attention. |
| Auto-Refresh | Shows whether this source polls its Spec URL automatically on a schedule. | Off means the source updates only when you click refresh or upload; On means a schedule keeps it current without manual action. |
Controls reference
Add Source
Opens a dialog to register a new API source by entering a name and either a Spec URL or an uploaded spec file.
When to use: When an API you want to test does not yet have a registered source.
Side effects: Mutating: saving creates a new row in Pending status; no spec is imported until you also refresh or upload. May not appear if your role cannot create sources.
Retry
Re-requests the list of API sources after a failed load.
When to use: When the page shows a load error instead of the table.
Side effects: Read-only: reloads the list without changing any data.
Expand row
Expands a row to show its imported versions, their Coverage/Diff/Approve controls, and any impacted flows.
When to use: To inspect a source's version history or jump to an impacted flow.
Side effects: Read-only: a display toggle only.
Upload spec
Opens a dialog to upload a new spec file for this source.
Side effects: Mutating: a successful upload adds a new version and updates Versions, Latest Version, Status, and Diff Summary. Disabled with a tooltip for roles without write access.
Refresh
Re-polls the source's Spec URL immediately and imports any changes as a new version.
When to use: To pull in a spec change right away instead of waiting on auto-refresh.
Side effects: Mutating: updates Versions, Latest Version, Status, Diff Summary, Impacted Flows, and Last Refresh. A source with no Spec URL has no page to poll, so use Upload spec there instead; only one refresh runs per row at a time.
Edit
Opens the source's Name, Spec URL, Description, and Auto-refresh settings for editing.
When to use: To rename a source, change its polling URL, add notes, or change its auto-refresh setting.
Side effects: Mutating once you click Save. For a role with read-only access, the same dialog opens as View, with changes disabled.
Delete
Opens a confirmation dialog to remove the source.
When to use: When a source is no longer used by any flow and should be cleaned up.
Side effects: Mutating and destructive: confirming removes the source and its version history from the table. Disabled with a tooltip for roles without delete access.
Approve
Marks an imported spec version as approved for use.
When to use: After reviewing a version's Diff and Coverage, to confirm flows can be generated or validated against it.
Side effects: Mutating: updates the version's approval state. Disabled with a tooltip for roles without write access.
Coverage
Opens the spec coverage and response-conformance report for a version.
When to use: To check how much of the spec is exercised and whether live responses still match it before approving a version.
Side effects: Read-only.
Diff
Opens a comparison between a version and the one before it.
When to use: To see what changed, such as added, removed, or altered endpoints, before approving a version or migrating flows.
Side effects: Read-only; disabled when no diff was recorded for that pair of versions.
Edit (flow)
Navigates to the flow editor for an impacted flow.
When to use: To inspect or adjust a flow by hand after a spec change.
Side effects: Navigation only; nothing on this page changes.
Migrate
Starts the migration wizard for an impacted flow.
When to use: When a flow needs to be brought in line with a newer approved spec version.
Side effects: Navigation only from this page; the wizard itself updates the flow on its own page.
Save
Commits the Name, Spec URL, Description, and Auto-refresh values entered in the Add or Edit dialog.
When to use: After filling in or changing a source's details.
Side effects: Mutating: creates the source (Add) or updates it (Edit); the table row reflects the change immediately.
Delete Source
Finalizes removal of the source from the confirmation dialog.
When to use: When you are certain the source is no longer needed.
Side effects: Mutating and destructive: permanently removes the row.
Dismiss
Closes the Credentials expiring banner.
When to use: Once you have acted on or acknowledged the warning.
Side effects: Read-only: hides the banner only, does not reissue the credential.
Verify the result
After you add a source and run a refresh or upload, its row shows a Status other than Pending (or Failed if the import did not succeed), a Versions count of at least 1, a populated Latest Version, and a Last Refresh timestamp. If Status stays Pending with Versions at 0, no import has completed yet, check the Spec URL or upload a spec file. Expanding the row should then show at least one version with Coverage and Diff available to review before you approve it.
Troubleshooting
- Symptom: A source stays at Status Pending with Versions 0 no matter how often you click Refresh. Fix: Confirm the Spec URL is reachable and returns a valid OpenAPI document; for a source with no Spec URL, use Upload spec instead of Refresh.
- Symptom: Refresh, Upload spec, Edit, or Delete appear grayed out. Fix: Your role lacks write access to sources; hover the control for the exact reason, or ask an admin for source-edit permission.
- Symptom: Diff shows nothing for a version pair. Fix: No diff was recorded for that specific pair; compare against an adjacent pair that does have one recorded.
- Symptom: Impacted Flows still shows the old count after migrating a flow. Fix: The count reflects when the source list was last loaded; reload API Sources to see the updated number.
- Symptom: The Credentials expiring banner keeps appearing. Fix: Reissue the referenced token under Configuration: Credential Profiles; this warning is about a credential profile, not the API source itself.
- Symptom: The table shows a load error instead of your sources. Fix: Click Retry; if it fails again, your account may not have permission to read API sources.
Related articles
- Next step: API Testing: Flows - flows are generated and validated against the sources registered here
- See also: API Testing: Environments - environments supply runtime values flows use alongside a source's spec
- See also: API Testing: Auth Profiles - auth profiles authenticate requests that flows built from this source will send
- See also: Configuration: Credential Profiles - the expiring-credentials alert on this page points here to reissue the token
- Next step: API Testing: Schedules - scheduled runs execute flows that depend on an approved source version