# Baidu organic SERP

Baidu SERP API provides top 10 search engine results. Takes keyword, priority, depth and more, all optional. Served by DataForSEO.

Baidu SERP API provides top 10 search engine results. These results are specific to the selected location (see the List of Locations) and other settings. Submit once with action=submit. Reuse this same tool with action=result and its id to read status/output at no additional cost. Queued is not finished.

- Tool ID: `dataforseo/serp-baidu-organic`
- Name in the catalog: Serp Baidu Organic
- Provider: [DataForSEO](/providers/dataforseo.md)
- Capability: [Bing, Yahoo, Baidu, Naver, Seznam SERPs](/tools/seo/other-engines.md)
- Price: usage based, the maximum is shown before a run
- Authentication: an authorised Agentik workspace is required for execution, including zero-price tools.

## Pricing contract

Billed at the cost the provider reports for the call, never above $100. Your agent sees the maximum before running.


```json
{
  "model": "reported",
  "costPath": "cost",
  "maxUsdDefault": 0.0006,
  "maxUsdCap": 100,
  "multipliers": [
    {
      "when": {
        "field": "priority",
        "equals": 2
      },
      "factor": 2
    },
    {
      "when": {
        "field": "keyword",
        "regex": "\\b([aA][lL][lL][iI][nN][aA][nN][cC][hH][oO][rR]|[aA][lL][lL][iI][nN][tT][eE][xX][tT]|[aA][lL][lL][iI][nN][tT][iI][tT][lL][eE]|[aA][lL][lL][iI][nN][uU][rR][lL]|[cC][aA][cC][hH][eE]|[dD][eE][fF][iI][nN][eE]|[dD][eE][fF][iI][nN][iI][tT][iI][oO][nN]|[fF][iI][lL][eE][tT][yY][pP][eE]|[iI][dD]|[iI][nN][aA][nN][cC][hH][oO][rR]|[iI][nN][fF][oO]|[iI][nN][tT][eE][xX][tT]|[iI][nN][tT][iI][tT][lL][eE]|[iI][nN][uU][rR][lL]|[lL][iI][nN][kK]|[rR][eE][lL][aA][tT][eE][dD]|[sS][iI][tT][eE]):"
      },
      "totalFactor": 5
    }
  ],
  "requireCost": true
}
```

### Action-specific pricing


```json
[
  {
    "field": "action",
    "equals": "result",
    "pricing": {
      "model": "per_call",
      "amountUsd": 0
    }
  }
]
```

Pricing source: [https://docs.dataforseo.com/v3/appendix/user_data/](https://docs.dataforseo.com/v3/appendix/user_data/). Account tariff serp/task_post; bounds applied to inputs; actual cost from provider response..

Price verification date: 2026-10-10.

## Complete input schema


```json
{
  "type": "object",
  "properties": {
    "keyword": {
      "type": "string",
      "description": "keyword required field you can specify up to 700 characters in the keyword field all %## will be decoded (plus character ‘+’ will be decoded to a space character) if you need to use the “%” character for your keyword, please specify it as “",
      "maxLength": 700,
      "minLength": 1
    },
    "priority": {
      "type": "integer",
      "description": "task priority optional field can take the following values: 1 – normal execution priority (set by default) 2 – high execution priority You will be additionally charged for the tasks with high execution priority. The cost can be calculated o",
      "enum": [
        1,
        2
      ]
    },
    "depth": {
      "type": "integer",
      "description": "parsing depth optional field number of results in SERP default value: 10 max value: 700 Your account will be billed per each SERP containing up to 10 results; Setting depth above 10 may result in additional charges if the search engine retu",
      "maximum": 10,
      "minimum": 1
    },
    "language_name": {
      "type": "string",
      "description": "full name of search engine language required field if you don't specify language_code you can receive the list of available languages of the search engine with their language_name by making a separate request to the https://api.dataforseo.c",
      "maxLength": 2000,
      "minLength": 1
    },
    "language_code": {
      "type": "string",
      "description": "search engine language code required field if you don't specify language_name you can receive the list of available languages of the search engine with their language_code by making a separate request to the https://api.dataforseo.com/v3/se",
      "maxLength": 10,
      "minLength": 1
    },
    "location_name": {
      "type": "string",
      "description": "full name of search engine location required field if you don't specify location_code or location_coordinate if you use this field, you don't need to specify location_code or location_coordinate you can receive the list of available locatio",
      "maxLength": 2000,
      "minLength": 1
    },
    "location_code": {
      "type": "integer",
      "description": "search engine location code required field if you don't specify location_name or location_coordinate if you use this field, you don't need to specify location_name or location_coordinate you can receive the list of available locations of th"
    },
    "location_coordinate": {
      "type": "string",
      "description": "GPS coordinates of a location required field if you don't specify location_name or location_code if you use this field, you don't need to specify location_name or location_code location_coordinate parameter should be specified in the \"latit",
      "maxLength": 2000,
      "minLength": 1
    },
    "device": {
      "type": "string",
      "description": "device type optional field return results for a specific device type can take the values: desktop, mobile, tablet default value: desktop",
      "maxLength": 2000,
      "minLength": 1
    },
    "os": {
      "type": "string",
      "description": "device operating system optional field if you specify desktop in the device field, choose from the following values: windows, macos default value: windows if you specify mobile in the device field, choose from the following values: android,",
      "maxLength": 2000,
      "minLength": 1
    },
    "get_website_url": {
      "type": "boolean",
      "description": "include direct URL for each ranked result optional field if set to true, the returned results will contain direct URLs of the ranked websites by default, the URLs in Baidu results are encoded by the search engine, for example: http://www.ba"
    },
    "stop_crawl_on_match": {
      "type": "array",
      "description": "array of targets to stop crawling optional field if specified, the response will contain SERP results up to and including the specified match_value; you can specify up to 10 target values in this array example: \"stop_crawl_on_match\":[{\"matc",
      "items": {
        "type": "object",
        "properties": {
          "match_value": {
            "type": "string",
            "description": "arget domain or wildcard value required field if stop_crawl_on_match is specified; specify a target domain or wildcard value; Note: domain name must be specified without a request protocol; example: dataforseo.com",
            "maxLength": 2000,
            "minLength": 1
          },
          "match_type": {
            "type": "string",
            "description": "target match type required field if stop_crawl_on_match is specified; type of match for the match_value possible values: domain, with_subdomains, wildcard",
            "maxLength": 2000,
            "minLength": 1
          }
        },
        "additionalProperties": false
      },
      "maxItems": 10,
      "minItems": 1
    },
    "tag": {
      "type": "string",
      "description": "user-defined task identifier optional field the character limit is 255 you can use this parameter to identify the task and match it with the result you will find the specified tag value in the data object of the response",
      "maxLength": 255
    },
    "action": {
      "type": "string",
      "enum": [
        "submit",
        "result"
      ],
      "default": "submit"
    },
    "id": {
      "type": "string",
      "minLength": 8,
      "maxLength": 80,
      "pattern": "^[A-Za-z0-9-]+$"
    }
  },
  "allOf": [
    {
      "if": {
        "properties": {
          "action": {
            "const": "result"
          }
        },
        "required": [
          "action"
        ]
      },
      "then": {
        "type": "object",
        "properties": {
          "action": {
            "const": "result"
          },
          "id": {
            "type": "string",
            "minLength": 8,
            "maxLength": 80,
            "pattern": "^[A-Za-z0-9-]+$"
          }
        },
        "required": [
          "action",
          "id"
        ],
        "additionalProperties": false
      },
      "else": {
        "type": "object",
        "properties": {
          "keyword": {
            "type": "string",
            "description": "keyword required field you can specify up to 700 characters in the keyword field all %## will be decoded (plus character ‘+’ will be decoded to a space character) if you need to use the “%” character for your keyword, please specify it as “",
            "maxLength": 700,
            "minLength": 1
          },
          "priority": {
            "type": "integer",
            "description": "task priority optional field can take the following values: 1 – normal execution priority (set by default) 2 – high execution priority You will be additionally charged for the tasks with high execution priority. The cost can be calculated o",
            "enum": [
              1,
              2
            ],
            "default": 1
          },
          "depth": {
            "type": "integer",
            "description": "parsing depth optional field number of results in SERP default value: 10 max value: 700 Your account will be billed per each SERP containing up to 10 results; Setting depth above 10 may result in additional charges if the search engine retu",
            "maximum": 10,
            "minimum": 1,
            "default": 10
          },
          "language_name": {
            "type": "string",
            "description": "full name of search engine language required field if you don't specify language_code you can receive the list of available languages of the search engine with their language_name by making a separate request to the https://api.dataforseo.c",
            "maxLength": 2000,
            "minLength": 1
          },
          "language_code": {
            "type": "string",
            "description": "search engine language code required field if you don't specify language_name you can receive the list of available languages of the search engine with their language_code by making a separate request to the https://api.dataforseo.com/v3/se",
            "maxLength": 10,
            "minLength": 1
          },
          "location_name": {
            "type": "string",
            "description": "full name of search engine location required field if you don't specify location_code or location_coordinate if you use this field, you don't need to specify location_code or location_coordinate you can receive the list of available locatio",
            "maxLength": 2000,
            "minLength": 1
          },
          "location_code": {
            "type": "integer",
            "description": "search engine location code required field if you don't specify location_name or location_coordinate if you use this field, you don't need to specify location_name or location_coordinate you can receive the list of available locations of th"
          },
          "location_coordinate": {
            "type": "string",
            "description": "GPS coordinates of a location required field if you don't specify location_name or location_code if you use this field, you don't need to specify location_name or location_code location_coordinate parameter should be specified in the \"latit",
            "maxLength": 2000,
            "minLength": 1
          },
          "device": {
            "type": "string",
            "description": "device type optional field return results for a specific device type can take the values: desktop, mobile, tablet default value: desktop",
            "maxLength": 2000,
            "minLength": 1
          },
          "os": {
            "type": "string",
            "description": "device operating system optional field if you specify desktop in the device field, choose from the following values: windows, macos default value: windows if you specify mobile in the device field, choose from the following values: android,",
            "maxLength": 2000,
            "minLength": 1
          },
          "get_website_url": {
            "type": "boolean",
            "description": "include direct URL for each ranked result optional field if set to true, the returned results will contain direct URLs of the ranked websites by default, the URLs in Baidu results are encoded by the search engine, for example: http://www.ba"
          },
          "stop_crawl_on_match": {
            "type": "array",
            "description": "array of targets to stop crawling optional field if specified, the response will contain SERP results up to and including the specified match_value; you can specify up to 10 target values in this array example: \"stop_crawl_on_match\":[{\"matc",
            "items": {
              "type": "object",
              "properties": {
                "match_value": {
                  "type": "string",
                  "description": "arget domain or wildcard value required field if stop_crawl_on_match is specified; specify a target domain or wildcard value; Note: domain name must be specified without a request protocol; example: dataforseo.com",
                  "maxLength": 2000,
                  "minLength": 1
                },
                "match_type": {
                  "type": "string",
                  "description": "target match type required field if stop_crawl_on_match is specified; type of match for the match_value possible values: domain, with_subdomains, wildcard",
                  "maxLength": 2000,
                  "minLength": 1
                }
              },
              "additionalProperties": false
            },
            "maxItems": 10,
            "minItems": 1
          },
          "tag": {
            "type": "string",
            "description": "user-defined task identifier optional field the character limit is 255 you can use this parameter to identify the task and match it with the result you will find the specified tag value in the data object of the response",
            "maxLength": 255
          },
          "action": {
            "const": "submit"
          }
        },
        "required": [
          "keyword"
        ],
        "additionalProperties": false,
        "allOf": [
          {
            "anyOf": [
              {
                "required": [
                  "location_code"
                ]
              },
              {
                "required": [
                  "location_name"
                ]
              },
              {
                "required": [
                  "location_coordinate"
                ]
              }
            ]
          },
          {
            "anyOf": [
              {
                "required": [
                  "language_code"
                ]
              },
              {
                "required": [
                  "language_name"
                ]
              }
            ]
          },
          {
            "not": {
              "properties": {
                "keyword": {
                  "pattern": "\\b([aA][lL][lL][iI][nN][aA][nN][cC][hH][oO][rR]|[aA][lL][lL][iI][nN][tT][eE][xX][tT]|[aA][lL][lL][iI][nN][tT][iI][tT][lL][eE]|[aA][lL][lL][iI][nN][uU][rR][lL]|[cC][aA][cC][hH][eE]|[dD][eE][fF][iI][nN][eE]|[dD][eE][fF][iI][nN][iI][tT][iI][oO][nN]|[fF][iI][lL][eE][tT][yY][pP][eE]|[iI][dD]|[iI][nN][aA][nN][cC][hH][oO][rR]|[iI][nN][fF][oO]|[iI][nN][tT][eE][xX][tT]|[iI][nN][tT][iI][tT][lL][eE]|[iI][nN][uU][rR][lL]|[lL][iI][nN][kK]|[rR][eE][lL][aA][tT][eE][dD]|[sS][iI][tT][eE]):[\\s\\S]*\\b([aA][lL][lL][iI][nN][aA][nN][cC][hH][oO][rR]|[aA][lL][lL][iI][nN][tT][eE][xX][tT]|[aA][lL][lL][iI][nN][tT][iI][tT][lL][eE]|[aA][lL][lL][iI][nN][uU][rR][lL]|[cC][aA][cC][hH][eE]|[dD][eE][fF][iI][nN][eE]|[dD][eE][fF][iI][nN][iI][tT][iI][oO][nN]|[fF][iI][lL][eE][tT][yY][pP][eE]|[iI][dD]|[iI][nN][aA][nN][cC][hH][oO][rR]|[iI][nN][fF][oO]|[iI][nN][tT][eE][xX][tT]|[iI][nN][tT][iI][tT][lL][eE]|[iI][nN][uU][rR][lL]|[lL][iI][nN][kK]|[rR][eE][lL][aA][tT][eE][dD]|[sS][iI][tT][eE]):"
                }
              },
              "required": [
                "keyword"
              ]
            }
          },
          {
            "not": {
              "properties": {
                "keyword": {
                  "pattern": "%[0-9a-fA-F]{2}"
                }
              },
              "required": [
                "keyword"
              ]
            }
          }
        ]
      }
    }
  ]
}
```

## Published example

This is the provider tool’s published example. Replace example values with the user’s requested inputs, respecting the schema; do not execute an example merely to test a connection.


```json
{
  "tool_id": "dataforseo/serp-baidu-organic",
  "input": {
    "location_code": 2156,
    "keyword": "best iphone ever",
    "tag": "some_string_123",
    "priority": 1,
    "depth": 10,
    "language_code": "zh_CN",
    "action": "submit"
  }
}
```

## Execute and retrieve

Inspect again before execution, explain the price and obtain the required authority. Use MCP run_tool or POST /v1/run with this tool ID, valid input and an idempotency key. Save the returned run ID and follow the actual state. If Agentik answers that the tool is temporarily unavailable, do not retry it blindly; use discovery to propose an alternative.

A partial or uncertain result can still have consumed provider resources. Consult [billing](/docs/billing.md), [idempotency](/docs/idempotency.md) and [asynchronous results](/docs/async.md).

[Provider documentation](https://docs.dataforseo.com/v3/serp/baidu/organic/task_post/)

[REST inspection](https://api.agentik.cc/v1/tools/dataforseo/serp-baidu-organic) · [OpenAPI](/openapi.json) · [Connection guide](/connect.md)

---

[HTML page](/providers/dataforseo/serp-baidu-organic) · [Agent index](/llms.txt)
