This endpoint allows you to create various types of rules in Requestly, such as Redirect, Cancel, Replace, Headers, User-Agent, Query Param, Modify Request, Modify Response, and Delay. Each rule has a specific structure and parameters.
Endpoint
-
Method: POST
-
URL:
https://api2.requestly.io/v1/rules
Request Structure
Body Parameters
Name | Type | Required | Default | Description |
---|---|---|---|---|
name |
| Yes | Name of the rule. | |
description |
| No | Description of the rule. | |
objectType |
| Yes |
| Type of the object. For this endpoint, it is always |
ruleType |
| Yes | Type of the rule. Possible values are: | |
status |
| No |
| Status of the rule, either |
pairs |
| Yes | List of rule pairs specific to the rule type. See details below. | |
groupId |
| No | The ID of the group the rule belongs to. If omitted, the rule is ungrouped. |
cURL Request
curl --request POST \
--url https://api2.requestly.io/v1/rules \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--header 'x-api-key: your_api_key' \
--data '
{
"objectType": "rule",
"ruleType": "Redirect",
"status": "Inactive",
"pairs": [
{
"destinationType": "url",
"source": {
"value": "https://www.google.com/",
"operator": "Equals",
"key": "Url"
},
"destination": "https://www.bing.com/"
}
],
"name": "Redirect to Bing"
}
'
Response
{
"success": true,
"data": {
"id": "Redirect_wi3uj",
"creationDate": 1736060959798,
"modificationDate": 1736060959798,
"createdBy": "IUAGkRiEx6XI0B6qCc82qbwroKX2",
"lastModifiedBy": "IUAGkRiEx6XI0B6qCc82qbwroKX2",
"name": "Redirect to Bing",
"description": "",
"ruleType": "Redirect",
"objectType": "rule",
"pairs": [
{
"destinationType": "url",
"source": {
"value": "https://www.google.com/",
"operator": "Equals",
"key": "Url"
},
"destination": "https://www.bing.com/",
"id": "jnc6s"
}
],
"groupId": "",
"status": "Inactive",
"isSample": false,
"isFavourite": false,
"schemaVersion": "3.0.0",
"extensionRules": [
{
"action": {
"type": "redirect",
"redirect": {
"url": "https://www.bing.com/"
}
},
"condition": {
"urlFilter": "|https://www.google.com/|",
"isUrlFilterCaseSensitive": true,
"excludedInitiatorDomains": [
"requestly.io"
],
"excludedRequestDomains": [
"requestly.io"
]
}
}
],
"currentOwnerId": "IUAGkRiEx6XI0B6qCc82qbwroKX2"
}
}
Rule Type Details
Each rule type has a unique structure for its pairs of objects. The schemas for each rule type are detailed below:
Common Source Schema
The source object is consistent across all rule types. It has the following structure:
Property | Type | Required | Description |
---|---|---|---|
key |
| Yes | The key for the source (e.g., |
operator |
| Yes | The operator for matching ( |
value |
| Yes | The value to match against. |
filters |
| No | Optional filters for more accurate targeting. |
Redirect Rule
-
ruleType:
Redirect
-
pairs schema:
Property | Type | Required | Description |
---|---|---|---|
source |
| Yes | The source object for matching (see common source schema). |
destinationType |
| Yes | Type of the destination ( |
destination |
| Yes | The destination URL value. |
Cancel Rule
-
ruleType:
Cancel
-
pairs schema:
Property | Type | Required | Description |
---|---|---|---|
source |
| Yes | The source object for matching. |
Replace Rule
-
ruleType:
Replace
-
pairs schema:
Property | Type | Required | Description |
---|---|---|---|
source |
| Yes | The source object for matching. |
from |
| Yes | The target string to replace. |
to |
| Yes | The replacement value. |
Headers Rule
-
ruleType:
Headers
-
pairs schema:
Property | Type | Required | Description |
---|---|---|---|
source |
| Yes | The source object for matching. |
modifications |
| Yes | List of header modifications (see below). |
Header Modification Object:
Property | Type | Required | Description |
---|---|---|---|
header |
| Yes | The name of the header to modify. |
type |
| Yes | Modification type ( |
value |
| No | The value to set for the header (required for |
User-Agent Rule
-
ruleType:
UserAgent
-
pairs schema:
Property | Type | Required | Description |
---|---|---|---|
source |
| Yes | The source object for matching. |
userAgent |
| Yes | The User-Agent string to set. |
Query Param Rule
-
ruleType:
QueryParam
-
pairs schema:
Property | Type | Required | Description |
---|---|---|---|
source |
| Yes | The source object for matching. |
modifications |
| Yes | Array of query parameter modifications (see below). |
Query Param Modification Object:
Property | Type | Required | Description |
---|---|---|---|
param |
| Yes | The name of the query parameter to modify. |
type |
| Yes | Modification type ( |
value |
| No | The value to set (required for |
Modify Request Rule
-
ruleType:
Request
-
pairs schema:
Property | Type | Required | Description |
---|---|---|---|
type |
| Yes | Type of request modification ( |
value |
| Yes | The request value or code. |
Modify Response Rule
-
ruleType:
Response
-
pairs schema:
Property | Type | Required | Description |
---|---|---|---|
type |
| Yes | Type of response modification ( |
value |
| Yes | The response value or status code. |
serveWithoutRequest |
| No | Whether to serve the response directly from Requestly. |
Delay Rule
-
ruleType:
Delay
-
pairs schema:
Property | Type | Required | Description |
---|---|---|---|
source |
| Yes | The source object for matching. |
delay |
| Yes | Delay value in milliseconds. |
Responses
Status Code | Description |
---|---|
200 | Rule created successfully. |
400 | Invalid rule or payload. |
401 | Unauthorized action. |
404 | Rule or group not found. |
405 | Rule type update not allowed. |
429 | Too many requests. |