---
title: "Create an alert"
method: POST
path: "/v1/chat/alerts"
tags: ["alerts"]
---

# Create an alert

`POST /v1/chat/alerts`

Create an alert.

## Request body

- CreateAlertRequest
  - `query` string, nullable — The query to run for retrieving information from sources, and for checking the alert. If you have defined one or more reports, specify each report's individual query in the report prompt.
  - `sources` union[]
    - union
      - AskNewsSource
        - `identifier` 'asknews'
        - `params` FilterParams
          - `query` string — Query string that can be any phrase, keyword, question, or paragraph. If method='nl', then this will be used as a natural language query. If method='kw', then this will be used as a direct keyword query. This is not required, if it is not passed, then the search is based on the remaining filters only.
          - `n_articles` integer — Number of articles to return
          - `start_timestamp` integer, nullable — Timestamp to start search from
          - `end_timestamp` integer, nullable — Timestamp to end search at
          - `time_filter` 'crawl_date' | 'pub_date' — Control which date type to filter on. 'crawl_date' is the date the article was crawled, 'pub_date' is the date the article was published.
          - `return_type` 'string' | 'dicts' | 'both' — Type of return value. 'string' means that the return is prompt-optimized and ready to be immediately injected into any prompt. 'dicts' means that the return is a structured dictionary, containing additional metadata (like a classic news api). Can be 'string' or 'dicts', or 'both'. 'string' guarantees the lowest-latency response 'dicts' requires more I/O, therefore increases latency (very slightly, depending on your network connection).
          - `historical` boolean — Search on archive of historical news. Defaults to False, meaning that the search will only look through the most recent news (48 hours)
          - `method` 'nl' | 'kw' | 'both' — Method to use for searching. 'nl' means Natural Language, which is a string that can be any phrase, keyword, question, or paragraph that will be used for semantic search on the news. 'kw' means Keyword, which can also be any keyword(s), phrase, or paragraph, however the search is a direct keyword search on the database. 'both' means both methods will be used and results will be ranked according to IRR. 'both' may reduce latency by 10 pct in exchange for improved accuracy.
          - `similarity_score_threshold` number — Similarity score threshold to determine which articles to return. Lower means less similar results are allowed.
          - `offset` union — Offset for pagination. The n_articles is your page size, while your offset is the number of articles to skip to get to your page of interest. For example, if you want to get page 3 for n_article page size of 10, you would set offset to 20.
            - integer
            - string
          - `categories` string[] — Categories of news to filter on
          - `doc_start_delimiter` string — Document start delimiter for string return.
          - `doc_end_delimiter` string — Document end delimiter for string return.
          - `provocative` 'unknown' | 'low' | 'medium' | 'high' | 'all' — Filter articles based on how provocative they are deemed based on the use of provocative language and emotional vocabulary.
          - `reporting_voice` union — Type of reporting voice to filer by.
            - string[]
            - 'Objective' | 'Subjective' | 'Investigative' | 'Narrative' | 'Analytical' | 'Advocacy' | 'Conversational' | 'Satirical' | 'Emotive' | 'Explanatory' | 'Persuasive' | 'Sensational' | 'Unknown' | 'all'
          - `domain_url` union — filter by domain url of interest. This can be a single domain or a list of domains. For example, 'npr.org' or ['nature.com', 'npr.org']
            - string[]
            - string
          - `bad_domain_url` union — Domain blacklist.This can be a single domain or a list of domains. For example, 'npr.org' or ['nature.com', 'npr.org']
            - string[]
            - string
          - `page_rank` integer, nullable — Maximum allowed page rank for returned articles.
          - `diversify_sources` boolean — Ensure that the return set of articles are selected from diverse sources. This adds latency to the search, but attempts to balance the representation of sources by country and source origins. In summary, a net is cast around your search, then the diversity of sources is analyzed, and your final result matches the large net diversity distribution. This means that your search accuracy is reduced, but you gain more diverse perspectives.
          - `strategy` 'latest news' | 'news knowledge' | 'default' — Strategy to use for searching. 'latest news' automatically setsmethod='nl', historical=False, and looks within the past 24 hours. 'news knowledge' automatically sets method='kw', historical=True, and looks within the past 60 days. 'news knowledge' will increase latency due to the larger search space in the archive. Use 'default' if you want to control start_timestamp, end_timestamp, historical, and method.
          - `hours_back` integer — Can be set to easily control the look back on the search. This is the same as controlling the 'start_timestamp' parameter. The difference is that this is not a timestamp, it is the number of hours back to look from the current time. Defaults to 24 hours.
          - `string_guarantee` string[], nullable — If defined, the search will only occur on articles that contain strings in this list.
          - `string_guarantee_op` 'AND' | 'OR' — Operator to use for string guarantee list.
          - `reverse_string_guarantee` string[], nullable — If defined, the search will only occur on articles that do not contain strings in this list.
          - `entity_guarantee` string[], nullable — Entity guarantee to filter by. This is a list of strings, where each string includes entity type and entity value separated by a colon. The first element is the entity type and the second element is the entity value. For example ['Location:Paris', 'Person:John']
          - `reverse_entity_guarantee` string[], nullable — Reverse entity guarantee to filter by. This is a list of strings, where each string includes entity type and entity value separated by a colon. The first element is the entity type and the second element is the entity value. For example ['Location:Paris', 'Person:John']
          - `entity_guarantee_op` 'AND' | 'OR' — Operator to use for entity guarantee list.
          - `return_graphs` boolean — Return graphs for the articles. Only available to Analyst tier and above.
          - `return_geo` boolean — Return GeoCoordinates associated with locations discussed inside the articles. Only available to Analyst tier and above.
          - `languages` string[], nullable — Languages to filter by. This is the two-letter 'set 1' of the ISO 639-1 standard. For example: English is 'en'.
          - `countries` string[], nullable — Countries to filter by, this is the two-letter ISO country codeFor example: United States is 'US', France is 'FR', Sweden is 'SE'.
          - `countries_blacklist` string[], nullable — Countries to blacklist, this is the two-letter ISO country code. For example: United States is 'US', France is 'FR', Sweden is 'SE'.
          - `continents` string[], nullable — Continents to filter by.
          - `sentiment` 'negative' | 'neutral' | 'positive', nullable — Sentiment to filter articles by.
          - `premium` boolean — Include premium sources.
      - TelegramSource
        - `identifier` 'telegram'
        - `params` TelegramSourceParams, required
          - `channel_name` string, required — The channel name to use as a source
      - BlueskySource
        - `identifier` 'bluesky'
        - `params` BlueskySourceParams
          - `query` string, nullable — The search query
      - WebSource
        - `identifier` 'web'
        - `params` WebSourceParams, required
          - `queries` string[], required — The queries to use for the web search. This is a list of strings.
          - `domains` string[], nullable — The domains to restrict the web search to.
          - `strict` boolean — If true, the web search will only return results that have a known publication date and are within the lookback period.
          - `lookback` integer — The number of hours back to accept for the web search. If not provided, no lookback will be applied.
      - DeepNewsSource
        - `identifier` 'deepnews'
        - `params` DeepNewsSourceParams — Parameters for DeepNews alert source. DeepNews performs deep research using multiple tools.
          - `sources` union — Which data sources DeepNews should use. Can be a single source or a list. Available sources are: asknews, google, graph, wiki, x, reddit, charts, email, full_text_discovery, podcasts. Defaults to ['asknews', 'google', 'wiki', 'x'].
            - 'asknews' | 'google' | 'graph' | 'wiki' | 'x' | 'reddit' | 'charts' | 'email' | 'full_text_discovery' | 'podcasts'
            - string[]
          - `filter_params` MCPFilterParams
            - `query` string — Query string that can be any phrase, keyword, question, or paragraph. If method='nl', then this will be used as a natural language query. If method='kw', then this will be used as a direct keyword query. This is not required, if it is not passed, then the search is based on the remaining filters only.
            - `n_articles` integer — Number of articles to return
            - `start_timestamp` integer, nullable — Timestamp to start search from
            - `end_timestamp` integer, nullable — Timestamp to end search at
            - `time_filter` 'crawl_date' | 'pub_date' — Control which date type to filter on. 'crawl_date' is the date the article was crawled, 'pub_date' is the date the article was published.
            - `offset` union — The number of results to offset for followup queries. Use for pagination. The value to put here is returned in the response.offset from previous searches.
              - …
            - `categories` string[] — Categories of news to filter on
            - `provocative` 'unknown' | 'low' | 'medium' | 'high' | 'all' — Filter articles based on how provocative they are deemed based on the use of provocative language and emotional vocabulary.
            - `authors` string[], nullable — Authors to filter articles by.
            - `reporting_voice` union — Type of reporting voice to filer by.
              - …
            - `domain_url` union — filter by domain url of interest. This can be a single domain or a list of domains. For example, 'npr.org' or ['nature.com', 'npr.org']
              - …
            - `bad_domain_url` union — Domain blacklist.This can be a single domain or a list of domains. For example, 'npr.org' or ['nature.com', 'npr.org']
              - …
            - `page_rank` integer, nullable — Maximum allowed page rank for returned articles.
            - `hours_back` integer — Can be set to easily control the look back on the search. This is the same as controlling the 'start_timestamp' parameter. The difference is that this is not a timestamp, it is the number of hours back to look from the current time. Defaults to 24 hours.
            - `string_guarantee` string[], nullable — If defined, the search will only occur on articles that contain strings in this list.
            - `string_guarantee_op` 'AND' | 'OR' — Operator to use for string guarantee list.
            - `reverse_string_guarantee` string[], nullable — If defined, the search will only occur on articles that do not contain strings in this list.
            - `entity_guarantee` string[], nullable — Entity guarantee to filter by. This is a list of strings, where each string includes entity type and entity value separated by a colon. The first element is the entity type and the second element is the entity value. For example ['Location:Paris', 'Person:John']
            - `reverse_entity_guarantee` string[], nullable — Reverse entity guarantee to filter by. This is a list of strings, where each string includes entity type and entity value separated by a colon. The first element is the entity type and the second element is the entity value. For example ['Location:Paris', 'Person:John']
            - `entity_guarantee_op` 'AND' | 'OR' — Operator to use for entity guarantee list.
            - `languages` string[], nullable — Languages to filter by. This is the two-letter 'set 1' of the ISO 639-1 standard. For example: English is 'en'.
            - `countries` string[], nullable — Countries to filter by, this is the two-letter ISO country codeFor example: United States is 'US', France is 'FR', Sweden is 'SE'.
            - `countries_blacklist` string[], nullable — Countries to blacklist, this is the two-letter ISO country code. For example: United States is 'US', France is 'FR', Sweden is 'SE'.
            - `continents` string[], nullable — Continents to filter by.
            - `sentiment` 'negative' | 'neutral' | 'positive', nullable — Sentiment to filter articles by.
          - `include_entities` boolean — Whether to provide extracted entities to the agent. Defaults to True.
          - `include_graphs` boolean — Whether to provide knowledge graphs to the agent. Defaults to False.
          - `include_coordinates` boolean — Whether to provide geo coordinates to the agent. Defaults to False.
          - `engine` 'v1' | 'v1.5' — Legacy vs new DeepNews engine
          - `max_parallel_tool_calls` integer — The number of tool calls the agent can run in parallel.
          - `enable_source_pruning` boolean — Whether to enable source pruning, which removes sources that are deemed irrelevant to the final report. This can help reduce noise in the sources and improve the quality of the report, but may also remove some relevant sources if not used carefully.
          - `cutoff_datetime` string, date-time, nullable — The knowledge cutoff datetime for the agent prompt and all tool calls.
          - `model` 'o1-mini' | 'o1' | 'o3-mini' | 'o3' | 'gpt-4o-mini' | 'gpt-4o' | 'gpt-4.1-2025-04-14' | 'gpt-5-mini' | 'gpt-5' | 'command-nightly' | 'claude-3-5-sonnet-20240620' | 'claude-3-5-sonnet-latest' | 'claude-3-7-sonnet-latest' | 'claude-3-7-sonnet-20250219' | 'claude-3-7-sonnet-nothinking' | 'claude-sonnet-4-20250514' | 'claude-opus-4-20250514' | 'claude-sonnet-4-5-20250929' | 'claude-opus-4-5-20251101' | 'claude-sonnet-4-6' | 'claude-sonnet-5' | 'claude-opus-4-8' | 'claude-opus-5' | 'claude-opus-4-6' | 'claude-fable-5' | 'gpt-5.6-terra' | 'gpt-5.6-sol' | 'deepseek' | 'deepseek-basic' | 'deepseek-r1-0528' | 'meta-llama/Meta-Llama-3-8B-Instruct' | 'meta-llama/Meta-Llama-3.1-405B-Instruct' | 'meta-llama/Meta-Llama-3.3-70B-Instruct' | 'meta-llama/Llama-4-Maverick-17B-128E-Instruct' | 'gemini-2.5-flash' | 'gemini-2.5-pro' | 'gemini-2.5-pro-preview-03-25' | 'gemini-3-pro' | 'gemini-3.1-pro' | 'gemini-3-flash' | 'gemini-3.5-flash' | 'gemini-3.6-flash' | 'open-source-best' | 'kimi-k2p5'
          - `search_depth` integer — The search depth for deep research. Higher values mean more thorough research. Defaults to 1.
          - `max_depth` integer — The maximum research depth allowed. Defaults to 4.
  - `alert_type` 'AlwaysAlertWhen' | 'AlertOnceIf' | 'ReportAbout', nullable — The type of alert. If specified, overrides `repeat` and `always_trigger`. 'AlwaysAlertWhen': trigger alert actions any time the alert query is satisfied (`repeat=True`, `always_trigger=False`). Add Report model if you want a report when this is triggered. 'AlertOnceIf': trigger alert actions when the alert query is satisfied and then disable the alert (`repeat=False`, `always_trigger=False`). Add Report model if you want a report when this is triggered. 'ReportAbout': always trigger alert actions according to cron schedule and write a report (`repeat=True`, `always_trigger=True`). Defaults to using DeepNews for the report unless specified.
  - `model` 'meta-llama/Meta-Llama-3.1-8B-Instruct' | 'gpt-4o-mini' | 'gpt-5-mini' | 'gpt-5-nano' | 'gpt-4o' | 'o3-mini' | 'meta-llama/Meta-Llama-3.3-70B-Instruct' | 'gpt-4.1-2025-04-14' | 'gpt-4.1-nano-2025-04-14' | 'gpt-4.1-mini-2025-04-14' | 'claude-sonnet-5' — The model that is used to check if the alert conditions are satisfied by sources (this is not the same as the model used to write the report.)Defaults to gpt-4o.
  - `cron` string, required — How often or when to check sources for this alert, specified as a cron expression. Examples: '0 * * * *' (hourly), '0 9 * * *' (daily at 9am), '0 9 * * 1' (Mondays at 9am). See https://crontab.run/ for more examples.
  - `triggers` union[], required
    - union
      - WebhookAction
        - `action` 'webhook'
        - `params` WebhookParams, required
          - `url` string, uri, required — The URL to send the webhook when the alert triggers
          - `headers` object, nullable — The headers to send with the webhook.
          - `payload` object, nullable — The payload to send with the webhook.
      - EmailAction
        - `action` 'email'
        - `params` EmailParams, required
          - `to` string, email, required — The email to send the alert to when it triggers
          - `subject` string, nullable — The subject of the email. If not provided, the default subject will be used.
          - `asknews_watermark` boolean — Append 'Generated by AskNews AI' watermark
      - ResendBroadcastAction
        - `action` 'resend_broadcast'
        - `params` ResendBroadcastParams, required
          - `sender` string, required — The sender email address, use the format: Your Name <sender@domain.com>
          - `reply_to` union — The reply to email address. For multiple addresses, send as a list of strings
            - string
            - string[]
          - `subject` string, nullable — The subject of the email. If not provided, the default subject will be used.
          - `audience_id` string, required — The audience id that the broadcast will be sent to
          - `resend_api_key` string, required — Resend API key to use
          - `asknews_watermark` boolean — Append 'Generated by AskNews AI' watermark
      - GoogleDocsAction
        - `action` 'google_docs'
        - `params` GoogleDocsParams, required
          - `client_json` object, required — The google service account json. This should be a dict. You can get this from the google cloud console. The document will be created in the service account's google drive and shared with the user.
          - `emails` string[], nullable — The emails to share the doc with
          - `asknews_watermark` boolean — Append 'Generated by AskNews AI' watermark
  - `always_trigger` boolean — Whether to always trigger the actions when sources are scanned. This skips the check for if the alert conditions are satisfied and run triggers immediately. Defaults to False.
  - `repeat` boolean — Whether to repeat the alert. Default is True. If False, the alert will be disabled after it triggers once.
  - `active` boolean — Whether the alert is active or not. Default is True.
  - `expires_at` string, date-time, nullable — The expiration date for the alert. Default is None. If set, the alert will be disabled after this date.
  - `report` union — Configuration for generating a written report when the alert triggers. If report is a list, the individual reports will be concatenated into one report in the order they are defined. If not specified, no report is generated. Use ReportRequest(identifier='deepnews', ...) for DeepNews reports.Use ReportRequest(...) or ReportRequest(identifier='legacy', ...) for legacy reports (DEPRECATED). Requests without identifier default to 'deepnews'. Only DeepNews reports can be used in list.
    - union
      - LegacyReportRequest — DEPRECATED - Use DeepNewsReportRequest instead. Legacy report configuration (original format). This is the original ReportRequest format that uses a simple model field for report generation without DeepNews capabilities.
        - `logo_url` string, uri, nullable — The logo URL to use for the report
        - `include_appendix` boolean, nullable — Whether to append thinking and search traces as an appendix to the report.
        - `asknews_watermark` boolean — Append 'Generated by AskNews AI' watermark
        - `identifier` 'legacy'
        - `model` 'gpt-5' | 'gpt-4o' | 'gpt-4.1-2025-04-14' | 'gpt-4.1-mini-2025-04-14' | 'gpt-4o-mini' | 'o3-mini' | 'claude-3-5-sonnet-latest' | 'claude-sonnet-4-20250514' | 'claude-sonnet-4-5-20250929' | 'claude-opus-4-5-20251101' | 'claude-opus-4-6' | 'claude-fable-5' | 'claude-sonnet-4-6' | 'claude-sonnet-5' | 'claude-opus-4-8' | 'claude-opus-5' | 'gpt-5.6-terra' | 'gpt-5.6-sol' | 'meta-llama/Meta-Llama-3.1-405B-Instruct' | 'meta-llama/Meta-Llama-3.3-70B-Instruct' — The model to use for the report. Defaults to claude-sonnet-5.
      - DeepNewsReportRequest — DeepNews report configuration. Uses DeepNews deep research capabilities for information retrieval and report generation.
        - `logo_url` string, uri, nullable — The logo URL to use for the report
        - `include_appendix` boolean, nullable — Whether to append thinking and search traces as an appendix to the report.
        - `asknews_watermark` boolean — Append 'Generated by AskNews AI' watermark
        - `identifier` 'deepnews'
        - `params` DeepNewsReportParams — Parameters for DeepNews alert report. DeepNews performs deep research using multiple tools.
          - `sources` union — Which data sources DeepNews should use. Can be a single source or a list. Available sources are: asknews, google, graph, wiki, x, reddit, charts, email, full_text_discovery, podcasts. Defaults to ['asknews', 'google', 'wiki', 'x'].
            - 'asknews' | 'google' | 'graph' | 'wiki' | 'x' | 'reddit' | 'charts' | 'email' | 'full_text_discovery' | 'podcasts'
            - string[]
          - `filter_params` MCPFilterParams
            - `query` string — Query string that can be any phrase, keyword, question, or paragraph. If method='nl', then this will be used as a natural language query. If method='kw', then this will be used as a direct keyword query. This is not required, if it is not passed, then the search is based on the remaining filters only.
            - `n_articles` integer — Number of articles to return
            - `start_timestamp` integer, nullable — Timestamp to start search from
            - `end_timestamp` integer, nullable — Timestamp to end search at
            - `time_filter` 'crawl_date' | 'pub_date' — Control which date type to filter on. 'crawl_date' is the date the article was crawled, 'pub_date' is the date the article was published.
            - `offset` union — The number of results to offset for followup queries. Use for pagination. The value to put here is returned in the response.offset from previous searches.
              - …
            - `categories` string[] — Categories of news to filter on
            - `provocative` 'unknown' | 'low' | 'medium' | 'high' | 'all' — Filter articles based on how provocative they are deemed based on the use of provocative language and emotional vocabulary.
            - `authors` string[], nullable — Authors to filter articles by.
            - `reporting_voice` union — Type of reporting voice to filer by.
              - …
            - `domain_url` union — filter by domain url of interest. This can be a single domain or a list of domains. For example, 'npr.org' or ['nature.com', 'npr.org']
              - …
            - `bad_domain_url` union — Domain blacklist.This can be a single domain or a list of domains. For example, 'npr.org' or ['nature.com', 'npr.org']
              - …
            - `page_rank` integer, nullable — Maximum allowed page rank for returned articles.
            - `hours_back` integer — Can be set to easily control the look back on the search. This is the same as controlling the 'start_timestamp' parameter. The difference is that this is not a timestamp, it is the number of hours back to look from the current time. Defaults to 24 hours.
            - `string_guarantee` string[], nullable — If defined, the search will only occur on articles that contain strings in this list.
            - `string_guarantee_op` 'AND' | 'OR' — Operator to use for string guarantee list.
            - `reverse_string_guarantee` string[], nullable — If defined, the search will only occur on articles that do not contain strings in this list.
            - `entity_guarantee` string[], nullable — Entity guarantee to filter by. This is a list of strings, where each string includes entity type and entity value separated by a colon. The first element is the entity type and the second element is the entity value. For example ['Location:Paris', 'Person:John']
            - `reverse_entity_guarantee` string[], nullable — Reverse entity guarantee to filter by. This is a list of strings, where each string includes entity type and entity value separated by a colon. The first element is the entity type and the second element is the entity value. For example ['Location:Paris', 'Person:John']
            - `entity_guarantee_op` 'AND' | 'OR' — Operator to use for entity guarantee list.
            - `languages` string[], nullable — Languages to filter by. This is the two-letter 'set 1' of the ISO 639-1 standard. For example: English is 'en'.
            - `countries` string[], nullable — Countries to filter by, this is the two-letter ISO country codeFor example: United States is 'US', France is 'FR', Sweden is 'SE'.
            - `countries_blacklist` string[], nullable — Countries to blacklist, this is the two-letter ISO country code. For example: United States is 'US', France is 'FR', Sweden is 'SE'.
            - `continents` string[], nullable — Continents to filter by.
            - `sentiment` 'negative' | 'neutral' | 'positive', nullable — Sentiment to filter articles by.
          - `include_entities` boolean — Whether to provide extracted entities to the agent. Defaults to True.
          - `include_graphs` boolean — Whether to provide knowledge graphs to the agent. Defaults to False.
          - `include_coordinates` boolean — Whether to provide geo coordinates to the agent. Defaults to False.
          - `engine` 'v1' | 'v1.5' — Legacy vs new DeepNews engine
          - `max_parallel_tool_calls` integer — The number of tool calls the agent can run in parallel.
          - `enable_source_pruning` boolean — Whether to enable source pruning, which removes sources that are deemed irrelevant to the final report. This can help reduce noise in the sources and improve the quality of the report, but may also remove some relevant sources if not used carefully.
          - `cutoff_datetime` string, date-time, nullable — The knowledge cutoff datetime for the agent prompt and all tool calls.
          - `model` 'o1-mini' | 'o1' | 'o3-mini' | 'o3' | 'gpt-4o-mini' | 'gpt-4o' | 'gpt-4.1-2025-04-14' | 'gpt-5-mini' | 'gpt-5' | 'command-nightly' | 'claude-3-5-sonnet-20240620' | 'claude-3-5-sonnet-latest' | 'claude-3-7-sonnet-latest' | 'claude-3-7-sonnet-20250219' | 'claude-3-7-sonnet-nothinking' | 'claude-sonnet-4-20250514' | 'claude-opus-4-20250514' | 'claude-sonnet-4-5-20250929' | 'claude-opus-4-5-20251101' | 'claude-sonnet-4-6' | 'claude-sonnet-5' | 'claude-opus-4-8' | 'claude-opus-5' | 'claude-opus-4-6' | 'claude-fable-5' | 'gpt-5.6-terra' | 'gpt-5.6-sol' | 'deepseek' | 'deepseek-basic' | 'deepseek-r1-0528' | 'meta-llama/Meta-Llama-3-8B-Instruct' | 'meta-llama/Meta-Llama-3.1-405B-Instruct' | 'meta-llama/Meta-Llama-3.3-70B-Instruct' | 'meta-llama/Llama-4-Maverick-17B-128E-Instruct' | 'gemini-2.5-flash' | 'gemini-2.5-pro' | 'gemini-2.5-pro-preview-03-25' | 'gemini-3-pro' | 'gemini-3.1-pro' | 'gemini-3-flash' | 'gemini-3.5-flash' | 'gemini-3.6-flash' | 'open-source-best' | 'kimi-k2p5'
          - `search_depth` integer — The search depth for deep research. Higher values mean more thorough research. Defaults to 2.
          - `max_depth` integer — The maximum research depth allowed. Defaults to 4.
          - `start_citation_number` integer — Starting number for inline citations. Offsets fetched source citation keys. Useful if you are providing the agent outside sources with numbered citation keys. Defaults to 1.
          - `journalist_mode` boolean — Whether to use journalist mode for more factual reporting. Defaults to True.
        - `prompt` string, required — The prompt to use for report generation instructions. This is similar to the alert query but can contain additional instructions on how to format the report.
    - union[]
      - union
        - LegacyReportRequest — DEPRECATED - Use DeepNewsReportRequest instead. Legacy report configuration (original format). This is the original ReportRequest format that uses a simple model field for report generation without DeepNews capabilities.
          - `logo_url` string, uri, nullable — The logo URL to use for the report
          - `include_appendix` boolean, nullable — Whether to append thinking and search traces as an appendix to the report.
          - `asknews_watermark` boolean — Append 'Generated by AskNews AI' watermark
          - `identifier` 'legacy'
          - `model` 'gpt-5' | 'gpt-4o' | 'gpt-4.1-2025-04-14' | 'gpt-4.1-mini-2025-04-14' | 'gpt-4o-mini' | 'o3-mini' | 'claude-3-5-sonnet-latest' | 'claude-sonnet-4-20250514' | 'claude-sonnet-4-5-20250929' | 'claude-opus-4-5-20251101' | 'claude-opus-4-6' | 'claude-fable-5' | 'claude-sonnet-4-6' | 'claude-sonnet-5' | 'claude-opus-4-8' | 'claude-opus-5' | 'gpt-5.6-terra' | 'gpt-5.6-sol' | 'meta-llama/Meta-Llama-3.1-405B-Instruct' | 'meta-llama/Meta-Llama-3.3-70B-Instruct' — The model to use for the report. Defaults to claude-sonnet-5.
        - DeepNewsReportRequest — DeepNews report configuration. Uses DeepNews deep research capabilities for information retrieval and report generation.
          - `logo_url` string, uri, nullable — The logo URL to use for the report
          - `include_appendix` boolean, nullable — Whether to append thinking and search traces as an appendix to the report.
          - `asknews_watermark` boolean — Append 'Generated by AskNews AI' watermark
          - `identifier` 'deepnews'
          - `params` DeepNewsReportParams — Parameters for DeepNews alert report. DeepNews performs deep research using multiple tools.
            - `sources` union — Which data sources DeepNews should use. Can be a single source or a list. Available sources are: asknews, google, graph, wiki, x, reddit, charts, email, full_text_discovery, podcasts. Defaults to ['asknews', 'google', 'wiki', 'x'].
              - …
            - `filter_params` MCPFilterParams
              - …
            - `include_entities` boolean — Whether to provide extracted entities to the agent. Defaults to True.
            - `include_graphs` boolean — Whether to provide knowledge graphs to the agent. Defaults to False.
            - `include_coordinates` boolean — Whether to provide geo coordinates to the agent. Defaults to False.
            - `engine` 'v1' | 'v1.5' — Legacy vs new DeepNews engine
            - `max_parallel_tool_calls` integer — The number of tool calls the agent can run in parallel.
            - `enable_source_pruning` boolean — Whether to enable source pruning, which removes sources that are deemed irrelevant to the final report. This can help reduce noise in the sources and improve the quality of the report, but may also remove some relevant sources if not used carefully.
            - `cutoff_datetime` string, date-time, nullable — The knowledge cutoff datetime for the agent prompt and all tool calls.
            - `model` 'o1-mini' | 'o1' | 'o3-mini' | 'o3' | 'gpt-4o-mini' | 'gpt-4o' | 'gpt-4.1-2025-04-14' | 'gpt-5-mini' | 'gpt-5' | 'command-nightly' | 'claude-3-5-sonnet-20240620' | 'claude-3-5-sonnet-latest' | 'claude-3-7-sonnet-latest' | 'claude-3-7-sonnet-20250219' | 'claude-3-7-sonnet-nothinking' | 'claude-sonnet-4-20250514' | 'claude-opus-4-20250514' | 'claude-sonnet-4-5-20250929' | 'claude-opus-4-5-20251101' | 'claude-sonnet-4-6' | 'claude-sonnet-5' | 'claude-opus-4-8' | 'claude-opus-5' | 'claude-opus-4-6' | 'claude-fable-5' | 'gpt-5.6-terra' | 'gpt-5.6-sol' | 'deepseek' | 'deepseek-basic' | 'deepseek-r1-0528' | 'meta-llama/Meta-Llama-3-8B-Instruct' | 'meta-llama/Meta-Llama-3.1-405B-Instruct' | 'meta-llama/Meta-Llama-3.3-70B-Instruct' | 'meta-llama/Llama-4-Maverick-17B-128E-Instruct' | 'gemini-2.5-flash' | 'gemini-2.5-pro' | 'gemini-2.5-pro-preview-03-25' | 'gemini-3-pro' | 'gemini-3.1-pro' | 'gemini-3-flash' | 'gemini-3.5-flash' | 'gemini-3.6-flash' | 'open-source-best' | 'kimi-k2p5'
            - `search_depth` integer — The search depth for deep research. Higher values mean more thorough research. Defaults to 2.
            - `max_depth` integer — The maximum research depth allowed. Defaults to 4.
            - `start_citation_number` integer — Starting number for inline citations. Offsets fetched source citation keys. Useful if you are providing the agent outside sources with numbered citation keys. Defaults to 1.
            - `journalist_mode` boolean — Whether to use journalist mode for more factual reporting. Defaults to True.
          - `prompt` string, required — The prompt to use for report generation instructions. This is similar to the alert query but can contain additional instructions on how to format the report.
  - `title` string, nullable — The title of the alert. If not provided, no title will be used.
  - `share_link` string, uri, nullable — The newsplunker share link to update when the alert triggers.

## Response `201`

Created alert.

- AlertResponse
  - `id` string, uuid, required
  - `created_at` string, date-time, nullable
  - `updated_at` string, date-time, nullable
  - `expires_at` string, date-time, nullable
  - `user_id` string, uuid, required
  - `query` string, nullable
  - `cron` string, required
  - `model` string, nullable, required
  - `share_link` string, nullable
  - `sources` object[], nullable
  - `report` union
    - object
    - object[]
  - `triggers` object[], required
  - `always_trigger` boolean
  - `repeat` boolean
  - `active` boolean
  - `alert_type` 'AlwaysAlertWhen' | 'AlertOnceIf' | 'ReportAbout', nullable
  - `title` string, nullable
  - `seat_id` string, uuid, nullable
  - `api_key_id` string, nullable

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/asknews/apis/asknews-api.md) · [All operations](https://skmtc.dev/asknews/apis/asknews-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/asknews/asknews-api/revisions/dd4286769887/schema)
