{
  "service": "serphouse",
  "displayName": "SERPHouse",
  "categories": [
    "Data",
    "Location"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "SERPHOUSE_API_KEY",
      "description": "SERPHouse API key used as a Bearer token. Find it in the SERPHouse account dashboard after signing in at https://app.serphouse.com/login."
    }
  ],
  "homepageUrl": "https://www.serphouse.com",
  "actions": [
    {
      "id": "serphouse.account_info",
      "service": "serphouse",
      "name": "account_info",
      "description": "Retrieve account and credit usage information for the connected SERPHouse key.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "No input is required."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "description": "SERPHouse response status."
          },
          "msg": {
            "type": "string",
            "description": "SERPHouse response message."
          },
          "account": {
            "type": "object",
            "properties": {
              "email": {
                "type": "string",
                "description": "Account email address returned by SERPHouse."
              },
              "name": {
                "type": "string",
                "description": "Account name returned by SERPHouse."
              },
              "plan": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "One SERPHouse plan object."
                },
                "description": "Plans returned by SERPHouse."
              }
            },
            "additionalProperties": true,
            "description": "SERPHouse account object with the API key field omitted when present."
          }
        },
        "additionalProperties": false,
        "description": "SERPHouse account information response."
      }
    },
    {
      "id": "serphouse.list_domains",
      "service": "serphouse",
      "name": "list_domains",
      "description": "List search engine domains supported by SERPHouse SERP requests.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "No input is required."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "description": "SERPHouse response status."
          },
          "msg": {
            "type": "string",
            "description": "SERPHouse response message."
          },
          "domains": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "One supported search engine domain."
            },
            "description": "Search engine domains supported by SERPHouse."
          }
        },
        "additionalProperties": false,
        "description": "SERPHouse supported domain list response."
      }
    },
    {
      "id": "serphouse.list_languages",
      "service": "serphouse",
      "name": "list_languages",
      "description": "List SERPHouse language codes for one supported search engine type.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "google",
              "bing",
              "yahoo"
            ],
            "description": "Search engine type accepted by SERPHouse lookup endpoints."
          }
        },
        "additionalProperties": false,
        "required": [
          "type"
        ],
        "description": "Input parameters for listing SERPHouse languages."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "description": "SERPHouse response status."
          },
          "msg": {
            "type": "string",
            "description": "SERPHouse response message."
          },
          "languages": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "description": "Language display name."
            },
            "description": "Language names keyed by SERPHouse language code."
          }
        },
        "additionalProperties": false,
        "description": "SERPHouse language list response."
      }
    },
    {
      "id": "serphouse.search_locations",
      "service": "serphouse",
      "name": "search_locations",
      "description": "Search SERPHouse locations for geo-targeted SERP requests.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "q": {
            "type": "string",
            "minLength": 1,
            "description": "Location search text."
          },
          "type": {
            "type": "string",
            "enum": [
              "google",
              "bing"
            ],
            "description": "Search engine type for the location database."
          }
        },
        "additionalProperties": false,
        "required": [
          "q",
          "type"
        ],
        "description": "Input parameters for searching SERPHouse locations."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "description": "SERPHouse response status."
          },
          "msg": {
            "type": "string",
            "description": "SERPHouse response message."
          },
          "locations": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "SERPHouse location identifier."
                },
                "name": {
                  "type": "string",
                  "description": "Location display name."
                },
                "loc": {
                  "type": "string",
                  "description": "Location string accepted by SERPHouse SERP requests."
                },
                "type": {
                  "type": "string",
                  "description": "Location type returned by SERPHouse."
                },
                "country_code": {
                  "type": "string",
                  "description": "Country code returned by SERPHouse."
                }
              },
              "additionalProperties": false,
              "description": "One SERPHouse location match."
            },
            "description": "SERPHouse location matches."
          }
        },
        "additionalProperties": false,
        "description": "SERPHouse location search response."
      }
    },
    {
      "id": "serphouse.search_web",
      "service": "serphouse",
      "name": "search_web",
      "description": "Run a synchronous SERPHouse web SERP request and return structured JSON results.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "q": {
            "type": "string",
            "minLength": 1,
            "description": "Search phrase to send to SERPHouse."
          },
          "domain": {
            "type": "string",
            "minLength": 1,
            "description": "Search engine domain such as google.com, bing.com, or yahoo.com."
          },
          "lang": {
            "type": "string",
            "minLength": 1,
            "description": "Language code such as en or fr."
          },
          "device": {
            "type": "string",
            "enum": [
              "desktop",
              "mobile"
            ],
            "description": "Device type used for the SERP request."
          },
          "loc": {
            "type": "string",
            "minLength": 1,
            "description": "SERPHouse location string to target."
          },
          "loc_id": {
            "type": "integer",
            "description": "SERPHouse location identifier to target."
          },
          "verbatim": {
            "type": "integer",
            "minimum": 0,
            "maximum": 1,
            "description": "Google verbatim mode where 0 disables and 1 enables it."
          },
          "gfilter": {
            "type": "integer",
            "minimum": 0,
            "maximum": 1,
            "description": "Search filter mode where 1 enables similar and omitted result filtering and 0 disables it."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Result page number to request."
          },
          "num_result": {
            "type": "integer",
            "minimum": 1,
            "maximum": 10,
            "description": "Number of results to request per page."
          },
          "date_range": {
            "type": "string",
            "minLength": 1,
            "description": "Date filter accepted by SERPHouse, such as h, d, w, m, y, or YYYY-MM-DD,YYYY-MM-DD."
          }
        },
        "additionalProperties": false,
        "required": [
          "q",
          "domain",
          "lang",
          "device"
        ],
        "description": "Input parameters for a synchronous SERPHouse web SERP request.",
        "not": {
          "required": [
            "loc",
            "loc_id"
          ]
        }
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "description": "SERPHouse response status."
          },
          "msg": {
            "type": "string",
            "description": "SERPHouse response message."
          },
          "search_metadata": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Search metadata returned by SERPHouse."
          },
          "search_parameters": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Search parameters returned by SERPHouse."
          },
          "results": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Structured web SERP result sections returned by SERPHouse."
          }
        },
        "additionalProperties": false,
        "description": "SERPHouse synchronous web SERP response."
      }
    }
  ]
}
