The Request Composer is Xolo’s central workspace. Every time you open a new tab you get a blank canvas: pick your HTTP method, type (or paste) a URL, configure headers, auth, and body, then hit Send. The response appears immediately in the Response tab — status code, duration, size, and a fully interactive JSON viewer. The composer supports multiple open tabs simultaneously, an incognito mode that suppresses history recording, and a command palette (Documentation Index
Fetch the complete documentation index at: https://mintlify.com/JonathanHerSa/xolo-api-hub/llms.txt
Use this file to discover all available pages before exploring further.
Ctrl/Cmd + K) for fast navigation.
HTTP Methods
Xolo supports the seven standard HTTP verbs. Each method is rendered in a distinct colour so the active selection is recognisable at a glance:| Method | Typical use |
|---|---|
GET | Retrieve a resource |
POST | Create a new resource or submit data |
PUT | Replace a resource entirely |
PATCH | Partially update a resource |
DELETE | Remove a resource |
HEAD | Fetch response headers only (no body) |
OPTIONS | Discover allowed methods on a resource |
URL Bar
The URL bar is the primary input surface of the composer. It combines method selection, the URL field, and the Send button in a single compact row.{{variable}} substitution — wrap any environment or global variable name in double curly braces and the bar resolves it in real time. As you type {{, an autocomplete overlay drops down listing all variables in the active environment; selecting one inserts variableName}} and positions the cursor after the closing braces. The resolved value is shown as a preview chip directly in the bar.
baseUrl prefix — when a baseUrl variable is defined in the active environment, it is displayed as a collapsible pill on the left of the text field. You only type the path (e.g. /users/42); Xolo prepends {{baseUrl}} automatically at send time. Tapping the pill expands it to show the full resolved URL.
{:param} dynamic path parameters — type a segment like {:userId} in the URL and Xolo automatically adds userId as an editable row in the Params tab. Fill in the value there and the variable is substituted before the request is sent.
Request Tabs
Once a URL is entered, seven tabs below the URL bar let you configure every dimension of the outgoing request:Params
Params
A key-value table for query string parameters. Toggle the checkbox on each row to include or exclude it without deleting the entry. Rows auto-populate when
{:param} placeholders are detected in the URL.Auth
Auth
Choose an authentication strategy for this specific request. Setting auth here overrides anything inherited from a parent collection. Supported strategies include Bearer token, Basic auth, API key, and OAuth 2.0. Set the type to Inherit to walk up the collection hierarchy automatically.
Headers
Headers
A key-value table for HTTP request headers. All
{{variable}} references are resolved at send time, including in both the key and value fields.Body
Body
A multiline editor for the raw request body. See Body Types below for formatting options.
Scripts
Scripts
Pre-request rules execute before the request is dispatched and can inject or override variable values. Post-request rules use JSONPath expressions to extract values from the response and store them as environment variables automatically.
Assertions
Assertions
Define pass/fail conditions that are evaluated against the response status code or JSON fields. Assertion results are surfaced per-step during a Collection Run.
Response
Response
Displays the full response once the request completes. See Sending & Response for details.
Auth configured directly on a request overrides any auth inherited from the parent collection. To re-enable inheritance, set the request’s auth type back to Inherit.
Body Types
The Body tab editor supports working with raw JSON — the most common format for REST APIs:Write or paste JSON
Type directly into the monospace editor.
{{variable}} tokens are highlighted and resolved at send time.Beautify
Tap Beautify (Format icon) to pretty-print the JSON with two-space indentation. Xolo will show a snackbar error if the content is not valid JSON.
Sending & Response
Tap Send (or press Enter/Return inside the URL field) to dispatch the request. While the request is in-flight a linear progress indicator appears at the top of the tab content area and the Send button displays a spinner. Once the response arrives the composer switches to the Response tab automatically and shows:- Status code badge — green for 2xx, red for any other code.
- Duration — round-trip time in milliseconds, recorded from before the request leaves the device to after the full response body is received.
- Formatted JSON viewer — a collapsible, syntax-highlighted tree for JSON responses. Non-JSON bodies are rendered as selectable plain text.
- Error panel — if the request fails at the network layer (timeout, TLS error, etc.) the error message is shown in the response area in red monospace text.
Saving Requests
Tap the bookmark icon (☆) in the composer toolbar to open the Save Request dialog. Enter a name and optionally choose a destination collection or subfolder from the hierarchical dropdown. Leaving the folder selector empty saves the request to the Unclassified bucket, which is always accessible from the Saved Requests screen. Saving callscreateRequest(name, method, url, body, collectionId) on XoloRepository and persists the full request definition — headers, params, body, auth, scripts, and assertions — to local SQLite storage.
Multi-Tab Browsing
Xolo uses a browser-style tab bar at the top of the composer area. Each tab maintains its own independent session state: URL, method, headers, body, and the last response. Tabs persist until you close them manually.Open a new tab
Tap the + button at the right end of the tab bar. A fresh blank session opens and becomes active immediately.
Switch tabs
Tap any tab chip to bring that session to the front. The URL bar and all configuration panels update to reflect the selected tab.
Incognito Mode
When Incognito Mode is enabled no history entry is written after a request completes — the request is sent and the response is shown normally, butwatchRecentHistory will not include it.
Incognito state is managed by isIncognitoProvider, a NotifierProvider<BooleanNotifier, bool> that defaults to false. The RequestController checks ref.read(isIncognitoProvider) immediately after a successful send; if the value is true, it skips the addHistoryItem call entirely.
Toggle incognito from the toolbar eye icon. The icon changes appearance while the mode is active so the current state is always visible.