Executes any valid HTTP query.
Compatibility
The macro can be used in all input document types and in Report Studio.
Usage
This macro cannot be run using Post, Put, Patch, or Delete methods unless the Schedule is locked by an Admin. Your Admin will need to set this up. This also means that in Report Studio, only Admins can use these methods.When storing the HTTP headers in a response as variables (such as with 'storeHeadersAs=headers'), and subsequently using a String macro to output the variable, it is recommended to use quotes around the variable in the String macro's value parameter, e.g. [String:value={headers}]. This is because date-related HTTP headers may contain commas (i.e. Fri, 02 Oct 2020 11:13:25 GMT), which is interpreted by the String macro as the end of the parameter (in this case you only see 'Fri' as the output), and may prevent other header values from appearing in the output. Quotes around the value can prevent this, such as: [String:value="{headers}"]. Note also that you may set the Base URL in a Web Connection (if used) to shorten HTTP calls, i.e. the 'url' parameter can then just be used to set the relative URL. See the Connections help page for more information. IMPORTANT: If you need a literal backslash in a backtick-delimited parameter value (e.g. for APIs that require \" in query strings such as Jira's JQL aqlFunction), you must double the backslash: use \\" to produce \" in the URL. This is because \" is interpreted by the macro engine as an escaped double-quote character. Doubling the backslash (\\) ensures the first backslash escapes the second, preserving it in the output.
Recent Updates
[ 2026-03-25 ]Added documentation about using double-backslash (\\) to include literal backslashes in backtick-delimited parameter values, e.g. for APIs that require \" in URLs.
Behaviour (1)8 additional
| Parameter | Type | Presence | Purpose | Options | Default |
| Int32 | Optional | The time in milliseconds for which to wait for a response. |
|
100000 |
Additional (8)
| Parameter | Type | Presence | Purpose | Options | Default |
| String | Optional | Post processing formula. Use {value} for the macro output, e.g. {value}/1024. | N/A | N/A | |
| Boolean | Optional | Should NCalc expression evaluation throw error on Overflow |
|
true | |
| Boolean | Optional | Whether to hide the macro output. |
|
false | |
| String | Optional | The condition that must be true in order for the macro to be executed/evaluated. Must either evaluate to true or false, for example: "3+5=8" or "contains('abcd', 'z'). | N/A | true | |
| MacroMode | Optional | The mode in which variables are stored. In the legacy mode (default for Schedules), the variable created is a string and formatted. In the normal mode (default for Report Studio), the output variable is stored as a strongly-typed theObject, e.g. an Int32 or a List |
|
Legacy | |
| ObfuscationType | Optional | Obfuscation type. Use obfuscation to write reports where sensitive data is hidden. When used, ReportMagic guarantees that the same input string will map to the same output string for the whole of the report (but the next time the report runs, it will most likely map to a different value). If you use obfuscation, the property in your macro will not show up and instead, you will see a fake item of the obfuscation type chosen. |
|
None | |
| Boolean | Optional | Whether substituted variables are hidden from macro results (and the word 'REDACTED' will appear in progress screens and elsewhere in the web UI). |
|
false | |
| String | Optional | If specified, adds a warning message for this macro. This is processed as an NCalc, and the warning message will ALWAYS be present and will be the value of the evaluated NCalc expression. | N/A | N/A |
Colours (3)
| Parameter | Type | Presence | Purpose | Options | Default |
| Boolean | Optional | Whether to color table cells if thresholds are breached, rather than color the text. |
|
true | |
| Color | Optional | The font background color to use. |
|
N/A | |
| Color | Optional | The font color to use. |
|
N/A |
Formatting (3)
| Parameter | Type | Presence | Purpose | Options | Default |
| Boolean | Optional | Change the font weight (true=strong, false=normal). If omitted, no change is made. |
|
N/A | |
| Double | Optional | Change the font size in points. If omitted, no change is made. |
|
N/A | |
| String | Optional | The formatting to use for numbers. You can also specify 'format=string' to force numbers to be treated as strings. | N/A | N/A |
Output (3)7 additional
| Parameter | Type | Presence | Purpose | Options | Default |
| Char | Optional | The character used to split the header names and values in the 'headers' parameter. | N/A | = | |
| String | Optional | Create a report variable in which to store the HTTP response headers. The variable will contain the headers using this format: header1=value1;header2=value2,... | N/A | N/A | |
| String | Optional | Create a report variable in which to store the HTTP status code and reason phrase (if present). The variable is stored using the format: 123:REASON PHRASE (e.g. 200:OK). If no reason phrase is provided, it will read 'NO REASON PHRASE FOUND'. | N/A | N/A |
Additional (7)
| Parameter | Type | Presence | Purpose | Options | Default |
| String | Optional | The text to display should the macro fail to execute. Note that a poorly-specified macro (e.g. omitting mandatory parameters) will still result in an error message. | N/A | N/A | |
| String | Optional | The name of a variable to create should the macro fail to execute. The variable will be a text variable, and will contain either the failure text (only if the failureText parameter is set), otherwise it will contain the exception / failure message. | N/A | N/A | |
Normal mode |
Boolean | Optional | Any macros that output lists can optionally (in Normal mode) output a jArray instead. |
|
true |
| String | Optional | The variable to store the result as. | N/A | N/A | |
| String | Optional | The variable to store the result as, while hiding the output. Equivalent to 'storeAs=ThisValue, hidden=true'. | N/A | N/A | |
| Char | Optional | The delimiter used by storeAs to split the input (Legacy mode only), when there are multiple stored variables. For example, in this macro, we indicate that the value to be stored should be split by the asterisk when being stored: [String:value=a*b*c*d, storeAs=var1;var2;var3;var4, storeAsVariableDelimiter=*] | N/A | ; | |
| String | Optional | The name of the STRING variable to store the result as and output (both will use the same format) into the report. Note that if you also use 'storeAsHidden' in the same macro, you should not expect the output to be hidden, as this parameter overrides that. | N/A | N/A |
General (7)5 additional
| Parameter | Type | Presence | Purpose | Options | Default |
| String | Optional | The HTTP body to send. It is sent as raw, but you have several sub-choices with the 'bodyFormat' parameter. | N/A | N/A | |
| HttpBodyFormat | Optional | The HTTP body format to send. |
|
Text | |
| String | Optional | The name of the Web Connection to use. This is optional because Web macros may not require a Connection at all, but it can be used to set additional options such as authorisation types and more. | N/A | N/A | |
| List<String> | Optional | The HTTP headers to send. They should be specified using this format: header1=value1;header2=value2,... You may also use any alternative to '=' to split header name and value, e.g. if the value itself might contain '=' (for example a Cookie header name with value JSESSION ID=123456789), then the input can instead be delimited by another character such as: headerValueDelimiter=^, headers=Cookie^JSESSION ID=123456789,... | N/A | N/A | |
| HttpRequestMethod | Optional | The HTTP method to use. Post, Put, Patch, and Delete require a Schedule that is locked by an Admin to run. Your Tenant Admin will need to set this up. This also means that in Report Studio, only Admins can use these methods. |
|
Get | |
| ResponseObjectType | Optional | The expected type of the HTTP response. |
|
Auto | |
| String | Optional | The URL. This is an absolute URL unless you use a Web Connection and set its BaseUrl property, in which case this acts a relative URL, and may be empty. | N/A | N/A |
Additional (5)
| Parameter | Type | Presence | Purpose | Options | Default |
| String | Optional | Add a comment to make your document template more readable. The comment is discarded in the output document. | N/A | N/A | |
| ExecutionResult | Optional | If specified, asserts the expected execution result of the macro. The macro executes normally; if the actual result matches the desired value, the result is converted to Success. If the actual result does not match, the result is converted to MacroError with a descriptive message. This is primarily used for testing and diagnostic purposes. Valid values are: Unknown, Success, MacroError, WorkerStopped, Running, Warning, NeverRun, Cancelled, Pending, Paused, SystemError, Deferred, Stopped. |
|
N/A | |
| String | Optional | If specified, asserts the expected output type of the macro result. The macro executes normally; if the actual type does not match, a macro error is generated. Requires 'storeAs', 'storeAsHidden', or 'storeFormattedValueAs' to be set for typed validation. Valid types include CLR names (e.g. Int32, Int64, Single, Double, Boolean, String, JArray, JObject) and C# keyword aliases (e.g. int, long, float, double, bool, string, uint, ulong, short, ushort, byte, sbyte, decimal, char, object). The special value 'Number' matches any numeric type. | N/A | N/A | |
| String | Optional | If specified, asserts the expected output value of the macro result. The macro executes normally; if the actual value does not match, a macro error is generated. When 'storeAs' or 'storeAsHidden' is set, the stored variable value is compared. Otherwise, the document output text is compared. | N/A | N/A | |
Normal mode |
Boolean | Optional | In Normal Mode and for macros that output JArrays only, whether to convert a JArray of single-property jObjects into a flat JArray of values. |
|
false |
Examples (4)
Example 1
This example shows how to get ReportMagic's current outgoing IP address:
[Web.Query: url="https://api.ipify.org",method=Get,storeHttpStatusAs=HttpStatus,=>MagicSuiteCurrentPublicIp]Example 2
[Web.Query:url="http://www.website.com", method=Post, headers=clientSecret=a;clientToken=b, body=<json>{ "a" : "a" }</json>, bodyFormat=Json, timeoutMs=120000, storeHeadersAs=headers, storeHttpStatusAs=httpStatus]Example 3
This example shows how to use the 'headerValueDelimiter' parameter to change the delimiter between the header names and values:
[Web.Query:url="http://api.test.testsite.net/odata/people(154)", method=Get, headerValueDelimiter=`*`, headers="Header1*value1;Header2*value2;Header3*JSESSION ID=123456", storeHttpStatusAs=HttpStatus, storeAsHidden=Content]Example 4
This example shows how to include literal backslash-quote (\\" producing \") in a backtick-delimited URL, which is required by some APIs such as Jira's JQL aqlFunction for nested quoting:
[Web.Query:url=`search/jql?jql="Internal Team" IN aqlFunction("Name = \\"My Team\\"")`, method=Get, connectionName=Jira Web, storeHttpStatusAs=HttpStatus, =>GetResult]