{
  "service": "jigsawstack",
  "displayName": "JigsawStack",
  "categories": [
    "AI",
    "Developer Tools",
    "Data"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "Secret API Key",
      "placeholder": "JIGSAWSTACK_API_KEY",
      "description": "JigsawStack secret API key sent in the x-api-key header. Create or manage keys from the Keys tab in the official dashboard: https://jigsawstack.com/dashboard."
    }
  ],
  "homepageUrl": "https://jigsawstack.com",
  "actions": [
    {
      "id": "jigsawstack.check_profanity",
      "service": "jigsawstack",
      "name": "check_profanity",
      "description": "Check text for profanity with JigsawStack and return detected occurrences.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "minLength": 1,
            "description": "The text to check for profanity."
          },
          "censorReplacement": {
            "type": "string",
            "minLength": 1,
            "description": "The character or string to replace profanity with."
          }
        },
        "additionalProperties": false,
        "required": [
          "text"
        ],
        "description": "The input payload for checking text for profanity."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether JigsawStack marked the request as successful."
          },
          "logId": {
            "anyOf": [
              {
                "type": "string",
                "description": "The JigsawStack request log identifier when returned."
              },
              {
                "type": "null"
              }
            ]
          },
          "usage": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "input_tokens": {
                    "type": "number",
                    "description": "The number of input tokens processed."
                  },
                  "output_tokens": {
                    "type": "number",
                    "description": "The number of output tokens generated."
                  },
                  "inference_time_tokens": {
                    "type": "number",
                    "description": "The number of tokens processed during inference time."
                  },
                  "total_tokens": {
                    "type": "number",
                    "description": "The total number of tokens used by the request."
                  }
                },
                "additionalProperties": true,
                "description": "JigsawStack usage information for the API call."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw JigsawStack response object."
          },
          "message": {
            "anyOf": [
              {
                "type": "string",
                "description": "The message returned by JigsawStack."
              },
              {
                "type": "null"
              }
            ]
          },
          "cleanText": {
            "anyOf": [
              {
                "type": "string",
                "description": "The text with profanity replaced."
              },
              {
                "type": "null"
              }
            ]
          },
          "profanities": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "profanity": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The profane word that was detected."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "startIndex": {
                  "type": "number",
                  "description": "The starting position of the profanity in the original text."
                },
                "endIndex": {
                  "type": "number",
                  "description": "The ending position of the profanity in the original text."
                }
              },
              "additionalProperties": true,
              "description": "One profanity occurrence returned by JigsawStack."
            },
            "description": "Profanities found in the text."
          },
          "profanitiesFound": {
            "anyOf": [
              {
                "type": "boolean",
                "description": "Whether profanity was found in the text."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "description": "The normalized JigsawStack profanity check response."
      }
    },
    {
      "id": "jigsawstack.check_spam",
      "service": "jigsawstack",
      "name": "check_spam",
      "description": "Check whether one string or an array of strings is spam with JigsawStack.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "text": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "One text string."
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1,
                  "description": "One text string."
                },
                "description": "Multiple text strings.",
                "minItems": 1
              }
            ],
            "description": "The text to check for spam."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for checking text for spam."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether JigsawStack marked the request as successful."
          },
          "logId": {
            "anyOf": [
              {
                "type": "string",
                "description": "The JigsawStack request log identifier when returned."
              },
              {
                "type": "null"
              }
            ]
          },
          "usage": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "input_tokens": {
                    "type": "number",
                    "description": "The number of input tokens processed."
                  },
                  "output_tokens": {
                    "type": "number",
                    "description": "The number of output tokens generated."
                  },
                  "inference_time_tokens": {
                    "type": "number",
                    "description": "The number of tokens processed during inference time."
                  },
                  "total_tokens": {
                    "type": "number",
                    "description": "The total number of tokens used by the request."
                  }
                },
                "additionalProperties": true,
                "description": "JigsawStack usage information for the API call."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw JigsawStack response object."
          },
          "check": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "is_spam": {
                    "type": "boolean",
                    "description": "Whether the text is spam."
                  },
                  "score": {
                    "type": "number",
                    "description": "The spam score returned by JigsawStack."
                  }
                },
                "additionalProperties": true,
                "description": "One JigsawStack spam check result."
              },
              {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "is_spam": {
                      "type": "boolean",
                      "description": "Whether the text is spam."
                    },
                    "score": {
                      "type": "number",
                      "description": "The spam score returned by JigsawStack."
                    }
                  },
                  "additionalProperties": true,
                  "description": "One JigsawStack spam check result."
                },
                "description": "Spam check results for multiple input texts."
              }
            ],
            "description": "The spam check result for one or more input texts."
          }
        },
        "additionalProperties": false,
        "description": "The normalized JigsawStack spam check response."
      }
    },
    {
      "id": "jigsawstack.get_search_suggestions",
      "service": "jigsawstack",
      "name": "get_search_suggestions",
      "description": "Get JigsawStack search suggestions for a query prefix.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200,
            "description": "The query prefix to get suggestions for, up to 200 characters."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for retrieving JigsawStack search suggestions."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether JigsawStack marked the request as successful."
          },
          "logId": {
            "anyOf": [
              {
                "type": "string",
                "description": "The JigsawStack request log identifier when returned."
              },
              {
                "type": "null"
              }
            ]
          },
          "usage": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "input_tokens": {
                    "type": "number",
                    "description": "The number of input tokens processed."
                  },
                  "output_tokens": {
                    "type": "number",
                    "description": "The number of output tokens generated."
                  },
                  "inference_time_tokens": {
                    "type": "number",
                    "description": "The number of tokens processed during inference time."
                  },
                  "total_tokens": {
                    "type": "number",
                    "description": "The total number of tokens used by the request."
                  }
                },
                "additionalProperties": true,
                "description": "JigsawStack usage information for the API call."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw JigsawStack response object."
          },
          "suggestions": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "One search suggestion."
            },
            "description": "Search suggestions returned by JigsawStack."
          }
        },
        "additionalProperties": false,
        "description": "The normalized JigsawStack search suggestions response."
      }
    },
    {
      "id": "jigsawstack.search_web",
      "service": "jigsawstack",
      "name": "search_web",
      "description": "Search the web with JigsawStack AI Search and return normalized result data.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "minLength": 1,
            "maxLength": 400,
            "description": "The search query. JigsawStack accepts up to 400 characters."
          },
          "aiOverview": {
            "type": "boolean",
            "description": "Whether to include an AI-generated overview in the search results."
          },
          "safeSearch": {
            "type": "string",
            "enum": [
              "moderate",
              "strict",
              "off"
            ],
            "description": "The safe-search level to apply."
          },
          "spellCheck": {
            "type": "boolean",
            "description": "Whether JigsawStack should spell-check the query."
          },
          "byoUrls": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "One URL to include in the search scope.",
              "format": "uri"
            },
            "description": "URLs to restrict the search results to.",
            "minItems": 1
          },
          "countryCode": {
            "type": "string",
            "minLength": 1,
            "description": "The ISO country code for geo-aware search."
          },
          "autoScrape": {
            "type": "boolean",
            "description": "Whether JigsawStack should automatically scrape result URLs."
          },
          "maxResults": {
            "type": "integer",
            "minimum": 1,
            "description": "The maximum number of search results to return."
          }
        },
        "additionalProperties": false,
        "required": [
          "query"
        ],
        "description": "The input payload for JigsawStack AI web search."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether JigsawStack marked the request as successful."
          },
          "logId": {
            "anyOf": [
              {
                "type": "string",
                "description": "The JigsawStack request log identifier when returned."
              },
              {
                "type": "null"
              }
            ]
          },
          "usage": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "input_tokens": {
                    "type": "number",
                    "description": "The number of input tokens processed."
                  },
                  "output_tokens": {
                    "type": "number",
                    "description": "The number of output tokens generated."
                  },
                  "inference_time_tokens": {
                    "type": "number",
                    "description": "The number of tokens processed during inference time."
                  },
                  "total_tokens": {
                    "type": "number",
                    "description": "The total number of tokens used by the request."
                  }
                },
                "additionalProperties": true,
                "description": "JigsawStack usage information for the API call."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw JigsawStack response object."
          },
          "query": {
            "anyOf": [
              {
                "type": "string",
                "description": "The processed search query returned by JigsawStack."
              },
              {
                "type": "null"
              }
            ]
          },
          "aiOverview": {
            "anyOf": [
              {
                "type": "string",
                "description": "The AI-generated overview when requested."
              },
              {
                "type": "null"
              }
            ]
          },
          "spellFixed": {
            "anyOf": [
              {
                "type": "boolean",
                "description": "Whether JigsawStack spell-corrected the query."
              },
              {
                "type": "null"
              }
            ]
          },
          "isSafe": {
            "anyOf": [
              {
                "type": "boolean",
                "description": "Whether the search results passed the safe-search setting."
              },
              {
                "type": "null"
              }
            ]
          },
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "One web search result returned by JigsawStack."
            },
            "description": "The web search results returned by JigsawStack."
          },
          "links": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "One extracted link."
            },
            "description": "Links extracted from the search results."
          },
          "imageUrls": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "One image URL.",
              "format": "uri"
            },
            "description": "Image URLs found in the search results."
          },
          "geoResults": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "One geographic result returned by JigsawStack."
            },
            "description": "Geographic search results returned by JigsawStack."
          }
        },
        "additionalProperties": false,
        "description": "The normalized JigsawStack web search response."
      }
    },
    {
      "id": "jigsawstack.summarize_text",
      "service": "jigsawstack",
      "name": "summarize_text",
      "description": "Summarize text or a provider-accessible PDF document with JigsawStack.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "minLength": 1,
            "maxLength": 300000,
            "description": "The text content to summarize, up to 300000 characters."
          },
          "url": {
            "type": "string",
            "description": "A provider-accessible PDF document URL for JigsawStack to summarize.",
            "format": "uri"
          },
          "fileStoreKey": {
            "type": "string",
            "minLength": 1,
            "description": "A JigsawStack file-store key for a stored PDF document."
          },
          "type": {
            "type": "string",
            "enum": [
              "text",
              "points"
            ],
            "description": "The summary format to return."
          },
          "maxPoints": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The maximum number of bullet points to generate."
          },
          "maxCharacters": {
            "type": "integer",
            "minimum": 1,
            "description": "The maximum number of characters in the summary."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for summarizing text or a provider-accessible document with JigsawStack. One of text, url, or fileStoreKey is required.",
        "anyOf": [
          {
            "required": [
              "text"
            ]
          },
          {
            "required": [
              "url"
            ]
          },
          {
            "required": [
              "fileStoreKey"
            ]
          }
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether JigsawStack marked the request as successful."
          },
          "logId": {
            "anyOf": [
              {
                "type": "string",
                "description": "The JigsawStack request log identifier when returned."
              },
              {
                "type": "null"
              }
            ]
          },
          "usage": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "input_tokens": {
                    "type": "number",
                    "description": "The number of input tokens processed."
                  },
                  "output_tokens": {
                    "type": "number",
                    "description": "The number of output tokens generated."
                  },
                  "inference_time_tokens": {
                    "type": "number",
                    "description": "The number of tokens processed during inference time."
                  },
                  "total_tokens": {
                    "type": "number",
                    "description": "The total number of tokens used by the request."
                  }
                },
                "additionalProperties": true,
                "description": "JigsawStack usage information for the API call."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw JigsawStack response object."
          },
          "summary": {
            "anyOf": [
              {
                "type": "string",
                "description": "A paragraph summary."
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "One summary point."
                },
                "description": "Bullet-point summary strings."
              }
            ],
            "description": "The summary returned by JigsawStack."
          }
        },
        "additionalProperties": false,
        "description": "The normalized JigsawStack summary response."
      }
    },
    {
      "id": "jigsawstack.translate_text",
      "service": "jigsawstack",
      "name": "translate_text",
      "description": "Translate one string or an array of strings with JigsawStack.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "text": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "maxLength": 5000,
                "description": "One text string."
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 5000,
                  "description": "One text string."
                },
                "description": "Multiple text strings.",
                "minItems": 1
              }
            ],
            "description": "One text string or an array of text strings."
          },
          "targetLanguage": {
            "type": "string",
            "minLength": 1,
            "description": "The target language code."
          },
          "currentLanguage": {
            "type": "string",
            "minLength": 1,
            "description": "The source language code. Omit this to let JigsawStack auto-detect it."
          }
        },
        "additionalProperties": false,
        "required": [
          "text",
          "targetLanguage"
        ],
        "description": "The input payload for translating text with JigsawStack."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether JigsawStack marked the request as successful."
          },
          "logId": {
            "anyOf": [
              {
                "type": "string",
                "description": "The JigsawStack request log identifier when returned."
              },
              {
                "type": "null"
              }
            ]
          },
          "usage": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "input_tokens": {
                    "type": "number",
                    "description": "The number of input tokens processed."
                  },
                  "output_tokens": {
                    "type": "number",
                    "description": "The number of output tokens generated."
                  },
                  "inference_time_tokens": {
                    "type": "number",
                    "description": "The number of tokens processed during inference time."
                  },
                  "total_tokens": {
                    "type": "number",
                    "description": "The total number of tokens used by the request."
                  }
                },
                "additionalProperties": true,
                "description": "JigsawStack usage information for the API call."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw JigsawStack response object."
          },
          "translatedText": {
            "anyOf": [
              {
                "type": "string",
                "description": "A translated text string."
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "One translated text string."
                },
                "description": "Translated text strings."
              }
            ],
            "description": "The translated text. The shape matches the input text shape."
          }
        },
        "additionalProperties": false,
        "description": "The normalized JigsawStack translation response."
      }
    }
  ]
}
