Yutori Scouting API
The Scouting API from Yutori — 16 operation(s) for scouting.
The Scouting API from Yutori — 16 operation(s) for scouting.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/yutori-scouting-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Fast Browsing Scouting API
version: 0.1.0
servers:
- url: https://api.yutori.com
description: Production
security:
- ApiKeyAuth: []
tags:
- name: Scouting
paths:
/v1/scouting/updates:
get:
summary: Get All Updates Api
description: Get all updates across the user's scouts within a time range.
operationId: get_all_updates_api_v1_scouting_updates_get
parameters:
- name: start_time
in: query
required: true
schema:
type: string
title: Start Time
- name: end_time
in: query
required: true
schema:
type: string
title: End Time
- name: page_size
in: query
required: false
schema:
type: integer
maximum: 100
minimum: 1
default: 50
title: Page Size
- name: cursor
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Cursor
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/GetAllUpdatesPublicResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
tags:
- Scouting
/v1/scouting/tasks/{scout_id}/updates:
get:
summary: Get Updates Api
operationId: get_updates_api_v1_scouting_tasks__scout_id__updates_get
parameters:
- name: scout_id
in: path
required: true
schema:
type: string
format: uuid
title: Scout Id
- name: page_size
in: query
required: false
schema:
anyOf:
- type: integer
- type: 'null'
title: Page Size
- name: cursor
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Cursor
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/GetScoutUpdatesPublicResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
tags:
- Scouting
/v1/usage:
get:
tags:
- Scouting
summary: Get Usage
description: Get usage statistics over different time periods, active scouts, and rate limits.
operationId: get_usage_v1_usage_get
parameters:
- name: period
in: query
required: false
schema:
$ref: '#/components/schemas/TimeRange'
default: 24h
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/UsageResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/scouting/tasks:
post:
tags:
- Scouting
summary: Create Scout Task
operationId: create_scout_task_v1_scouting_tasks_post
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateScoutRequestAPI'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/CreateScoutResponsePublic'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
get:
tags:
- Scouting
summary: Get Scouts
description: List scouting tasks for this user.
operationId: get_scouts_v1_scouting_tasks_get
parameters:
- name: status
in: query
required: false
schema:
anyOf:
- enum:
- active
- paused
- done
type: string
- type: 'null'
description: Filter by scout status
title: Status
description: Filter by scout status
- name: page_size
in: query
required: false
schema:
anyOf:
- type: integer
- type: 'null'
title: Page Size
- name: cursor
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Cursor
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ScoutListResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/scouting/tasks/{scout_id}:
put:
tags:
- Scouting
summary: Edit Scout
operationId: edit_scout_v1_scouting_tasks__scout_id__put
parameters:
- name: scout_id
in: path
required: true
schema:
type: string
format: uuid
title: Scout Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/EditScoutRequest'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/Scout'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
patch:
tags:
- Scouting
summary: Partially update a Scout
description: Update specific fields of an existing Scout. Only provided fields will be updated; omitted fields remain unchanged.
operationId: patch_scout_v1_scouting_tasks__scout_id__patch
parameters:
- name: scout_id
in: path
required: true
schema:
type: string
format: uuid
title: Scout Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PatchScoutRequestAPI'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/CreateScoutResponsePublic'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
get:
tags:
- Scouting
summary: Get Scout Detail
description: Get detailed information about a specific scout owned by this user.
operationId: get_scout_detail_v1_scouting_tasks__scout_id__get
parameters:
- name: scout_id
in: path
required: true
schema:
type: string
format: uuid
title: Scout Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ScoutDetailResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
delete:
tags:
- Scouting
summary: Delete Scout
operationId: delete_scout_v1_scouting_tasks__scout_id__delete
parameters:
- name: scout_id
in: path
required: true
schema:
type: string
format: uuid
title: Scout Id
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/scouting/tasks/{scout_id}/done:
post:
tags:
- Scouting
summary: Mark Scout As Done
description: Mark a scout as done. The scout will be archived and stop running.
operationId: mark_scout_as_done_v1_scouting_tasks__scout_id__done_post
parameters:
- name: scout_id
in: path
required: true
schema:
type: string
format: uuid
title: Scout Id
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/scouting/tasks/{scout_id}/complete:
post:
tags:
- Scouting
summary: Mark Scout As Complete
description: '⚠️ DEPRECATED: Use POST /scouting/tasks/{scout_id}/done instead.'
operationId: mark_scout_as_complete_v1_scouting_tasks__scout_id__complete_post
deprecated: true
parameters:
- name: scout_id
in: path
required: true
schema:
type: string
format: uuid
title: Scout Id
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/scouting/tasks/{scout_id}/subscribe:
post:
tags:
- Scouting
summary: Subscribe
description: '⚠️ DEPRECATED: Use PUT /scouting/tasks/{scout_id}/email-settings with subscribers_to_add instead'
operationId: subscribe_v1_scouting_tasks__scout_id__subscribe_post
deprecated: true
parameters:
- name: scout_id
in: path
required: true
schema:
type: string
format: uuid
title: Scout Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateSubscriptionRequest'
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/scouting/tasks/{scout_id}/unsubscribe:
post:
tags:
- Scouting
summary: Unsubscribe
description: '⚠️ DEPRECATED: Use PUT /scouting/tasks/{scout_id}/email-settings with subscribers_to_remove instead'
operationId: unsubscribe_v1_scouting_tasks__scout_id__unsubscribe_post
deprecated: true
parameters:
- name: scout_id
in: path
required: true
schema:
type: string
format: uuid
title: Scout Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DeleteSubscriptionRequest'
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/scouting/tasks/{scout_id}/subscriptions:
get:
tags:
- Scouting
summary: Get Subscriptions
operationId: get_subscriptions_v1_scouting_tasks__scout_id__subscriptions_get
parameters:
- name: scout_id
in: path
required: true
schema:
type: string
format: uuid
title: Scout Id
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/scouting/tasks/{scout_id}/subscribe/bulk:
post:
tags:
- Scouting
summary: Bulk Subscribe
description: '⚠️ DEPRECATED: Use PUT /scouting/tasks/{scout_id}/email-settings with subscribers_to_add instead'
operationId: bulk_subscribe_v1_scouting_tasks__scout_id__subscribe_bulk_post
deprecated: true
parameters:
- name: scout_id
in: path
required: true
schema:
type: string
format: uuid
title: Scout Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BulkAddSubscribersRequest'
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/scouting/tasks/{scout_id}/pause:
post:
tags:
- Scouting
summary: Pause Scout Endpoint
operationId: pause_scout_endpoint_v1_scouting_tasks__scout_id__pause_post
parameters:
- name: scout_id
in: path
required: true
schema:
type: string
format: uuid
title: Scout Id
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/scouting/tasks/{scout_id}/resume:
post:
tags:
- Scouting
summary: Resume Scout Endpoint
operationId: resume_scout_endpoint_v1_scouting_tasks__scout_id__resume_post
parameters:
- name: scout_id
in: path
required: true
schema:
type: string
format: uuid
title: Scout Id
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/scouting/tasks/{scout_id}/restart:
post:
tags:
- Scouting
summary: Restart Scout Endpoint
operationId: restart_scout_endpoint_v1_scouting_tasks__scout_id__restart_post
parameters:
- name: scout_id
in: path
required: true
schema:
type: string
format: uuid
title: Scout Id
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/scouting/tasks/{scout_id}/email-settings:
put:
tags:
- Scouting
summary: Update Email Settings
description: Update email notification settings and manage subscribers for a scout.
operationId: update_email_settings_v1_scouting_tasks__scout_id__email_settings_put
parameters:
- name: scout_id
in: path
required: true
schema:
type: string
format: uuid
title: Scout Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateEmailSettingsRequest'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateEmailSettingsResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/scouting/webhooks/test:
post:
tags:
- Scouting
summary: Test Webhook
operationId: test_webhook_v1_scouting_webhooks_test_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TestWebhookFormatRequest'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
components:
schemas:
PatchScoutRequestAPI:
properties:
query:
anyOf:
- type: string
- type: 'null'
title: Query
description: String describing what to monitor in natural language
output_interval:
anyOf:
- type: integer
minimum: 1800
- type: 'null'
title: Output Interval
description: Interval in seconds between outputs (must be >= 1800)
user_timezone:
anyOf:
- type: string
- type: 'null'
title: User Timezone
description: User's timezone (e.g. 'America/Los_Angeles')
user_location:
anyOf:
- type: string
- type: 'null'
title: User Location
description: User's coarse location (e.g. 'San Francisco, CA, US')
is_public:
anyOf:
- type: boolean
- type: 'null'
title: Is Public
description: Whether the scout is publicly accessible
skip_email:
anyOf:
- type: boolean
- type: 'null'
title: Skip Email
description: If true, email notifications will be skipped
output_schema:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Output Schema
description: JSON Schema for structured output (replaces the scout's existing output schema)
examples:
- items:
properties:
headline:
description: News headline
type: string
summary:
description: Brief summary
type: string
source_url:
description: URL for more details
type: string
type: object
type: array
webhook_url:
anyOf:
- type: string
- type: 'null'
title: Webhook Url
description: Webhook URL to receive updates (set to empty string to remove)
webhook_format:
anyOf:
- type: string
enum:
- scout
- slack
- zapier
- type: 'null'
title: Webhook Format
description: Webhook payload format to use when updating webhook_url. Defaults to 'scout' when omitted. Slack incoming webhook URLs require 'slack'. Only takes effect when webhook_url is also provided in the same request.
examples:
- scout
type: object
title: PatchScoutRequestAPI
description: 'Experimental: Partial update for a Scout via the Developer API.
Only provided fields will be updated; omitted fields remain unchanged.'
CreateScoutRequestAPI:
properties:
output_schema:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Output Schema
description: JSON Schema for structured output. Takes precedence over task_spec if both provided.
examples:
- items:
properties:
headline:
description: News headline
type: string
summary:
description: Brief summary
type: string
source_url:
description: URL for more details
type: string
type: object
type: array
task_spec:
anyOf:
- $ref: '#/components/schemas/TaskSpec'
- type: 'null'
description: Deprecated but still supported. Use output_schema instead.
deprecated: true
used_deprecated_task_spec:
type: boolean
title: Used Deprecated Task Spec
default: false
hidden: true
query:
type: string
title: Query
description: "\n String describing what to monitor in natural language.\n This is typically what a user types into the Scouts web UI (without any frequency preferences).\n "
examples:
- Tell me about the latest news, product updates, press releases, social media announcements, investments into, or other relevant information about Yutori, the AI company.
output_interval:
type: integer
title: Output Interval
description: "\n Interval in seconds of how often to run the task. This must be >= 1800 (= 30 minutes).\n On the web UI, this is inferred from what the user types into the new scout input (e.g. \"daily at 9am\").\n Recommended: 86400 (daily) or 3600 (hourly).\n "
default: 86400
examples:
- 3600
start_timestamp:
type: integer
title: Start Timestamp
description: "\n Unix timestamp (past, present, or future) of when the scout should start running.\n If past, present, or up to 30 min in the future, the scout will start running immediately.\n Else, the scout will start running at the specified timestamp.\n "
default: 0
examples:
- 0
user_timezone:
type: string
title: User Timezone
description: "\n String indicating the user's timezone (e.g. \"America/Los_Angeles\")\n On the web UI, this is inferred from the browser's timezone.\n Default: \"America/Los_Angeles\".\n "
default: America/Los_Angeles
examples:
- America/Los_Angeles
user_location:
anyOf:
- type: string
- type: 'null'
title: User Location
description: "\n String indicating the user's coarse location in the format: city, region_code, country_name.\n On the web UI, this is inferred from the browser's location.\n Default: \"San Francisco, CA, US\".\n "
default: San Francisco, CA, US
examples:
- San Francisco, CA, US
skip_email:
type: boolean
title: Skip Email
description: "\n If true, email notifications will be skipped and only webhook notifications will be sent.\n Email subscriptions will still be stored but no emails will be sent.\n Default: true (sends webhooks only).\n "
default: true
examples:
- true
webhook_url:
anyOf:
- type: string
- type: 'null'
title: Webhook Url
description: Optional webhook URL to receive updates for this scout. Creates a webhook subscription for the calling user using webhook_format.
examples:
- null
webhook_format:
type: string
enum:
- scout
- slack
- zapier
title: Webhook Format
description: Webhook payload format to use when webhook_url is provided. Slack incoming webhook URLs require 'slack'.
default: scout
examples:
- scout
is_public:
type: boolean
title: Is Public
description: "\n Whether the scout is publicly accessible (true) or private (false).\n Public scouts can be accessed by anyone via the UUID link.\n Private scouts can only be accessed by the creator.\n Default: false (private).\n "
default: false
type: object
required:
- query
title: CreateScoutRequestAPI
SubscriberResult:
properties:
email:
type: string
title: Email
description: The email address
status:
type: string
enum:
- added
- removed
- already_subscribed
- not_found
- invalid
- permission_denied
title: Status
description: Result status for this email operation
message:
anyOf:
- type: string
- type: 'null'
title: Message
description: Additional details about the result
type: object
required:
- email
- status
title: SubscriberResult
JsonSchemaSpec:
properties:
type:
type: string
const: json
title: Type
default: json
json_schema:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Json Schema
description: A JSON Schema object defining the structure
type: object
title: JsonSchemaSpec
CreateScoutResponsePublic:
properties:
id:
type: string
format: uuid
title: Id
query:
type: string
title: Query
query_object:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Query Object
display_name:
type: string
title: Display Name
next_run_timestamp:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Next Run Timestamp
user_timezone:
type: string
title: User Timezone
next_output_timestamp:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Next Output Timestamp
created_at:
type: string
format: date-time
title: Created At
completed_at:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Completed At
paused_at:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Paused At
rejection_reason:
anyOf:
- $ref: '#/components/schemas/RejectionReason'
- type: 'null'
is_public:
type: boolean
title: Is Public
default: false
view_url:
anyOf:
- type: string
- type: 'null'
title: View Url
description: URL to view this scout's details in the API platform dashboard.
webhook_url:
anyOf:
- type: string
- type: 'null'
title: Webhook Url
description: Optional webhook URL configured for this scout, if provided at creation time.
output_schema:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Output Schema
description: JSON Schema for structured output, if configured
readOnly: true
type: object
required:
- id
- query
- display_name
- next_run_timestamp
- user_timezone
- next_output_timestamp
- created_at
- completed_at
- paused_at
- output_schema
title: CreateScoutResponsePublic
description: Public API response for scout creation. Excludes internal fields like llm_output.
ConnectorsConfigPayload:
properties:
enabled:
type: boolean
title: Enabled
description: Whether connectors are enabled for this scout
type: object
required:
- enabled
title: ConnectorsConfigPayload
BulkAddSubscribersRequest:
properties:
emails:
items:
type: string
type: array
title: Emails
description: List of user emails to subscribe to the scout
type: object
required:
- emails
title: BulkAddSubscribersRequest
Scout:
properties:
id:
type: string
format: uuid
title: Id
query:
type: string
title: Query
query_object:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Query Object
display_name:
type: string
title: Display Name
next_run_timestamp:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Next Run Timestamp
user_timezone:
type: string
title: User Timezone
next_output_timestamp:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Next Output Timestamp
created_at:
type: string
format: date-time
title: Created At
completed_at:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Completed At
paused_at:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Paused At
rejection_reason:
anyOf:
- $ref: '#/components/schemas/RejectionReason'
- type: 'null'
llm_output:
additionalProperties: true
type: object
title: Llm Output
is_public:
type: boolean
title: Is Public
default: true
connectors_config:
anyOf:
- $ref: '#/components/schemas/ConnectorsConfig'
- type: 'null'
last_update_timestamp:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Last Update Timestamp
update_count:
anyOf:
- type: integer
- type: 'null'
title: Update Count
is_subscribed:
anyOf:
- type: boolean
- type: 'null'
title: Is Subscribed
is_creator:
anyOf:
- type: boolean
- type: 'null'
title: Is Creator
creator_id:
anyOf:
- type: string
format: uuid
- type: 'null'
title: Creator Id
creator_username:
anyOf:
- type: string
- type: 'null'
title: Creator Username
description: Display name of the scout creator (first name from Clerk)
creator_image_url:
anyOf:
- type: string
- type: 'null'
title: Creator Image Url
description: Profile picture URL of the scout creator (from Clerk payload)
unread_update_count:
type: integer
title: Unread Update Count
description: Number of unread updates with findings for this user
default: 0
has_unread_updates:
type:
# --- truncated at 32 KB (57 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/yutori/refs/heads/main/openapi/yutori-scouting-api-openapi.yml