Robofy API
HomeChangelog
HomeChangelog
Visit Website
Sign In
Create an account
  1. Content
  • Start Guide
    • Overview
    • Architecture
    • Authentication
    • Changelog
  • Robofy API
    • Chat
      • Generate Client Token (Handshake)
      • Send Message (Streaming)
      • Send Message (Non Streaming)
      • Send WhatsApp Message
    • Chatbot / Agent
      • List Agents
      • Create Agent
      • Retrieve Agent
      • Update Agent
      • Delete Agent
      • Delink Asset
      • List Linked Assets
      • Delete Widget Tab
    • Account
      • Retrieve Account Details
      • Update Account Details
      • Retrieve Account Limit
    • Prompt & Persona
      • Update System Prompt
      • Retrieve Agent Settings
      • Update Persona
      • Retrieve Persona
    • Inbox
      • List Sessions
      • List Session Messages
    • Project
      • Create Project
      • List Projects
      • Update Project
      • Retreive Project
    • Leads
      • List Leads
    • Content
      • Add Website
        POST
      • Get Crawl Status
        GET
      • Add Text Content
        POST
      • Add File
        POST
    • Stats
      • Stats
    • License
      • Create License
      • List License
      • Update License
      • Retrieve License
      • Delete License
      • Update License Limit
    • Partner
      • Onboard
    • Schemas
      • Account
      • AccountDetailDto
      • Address
      • AgentCredentialInsertResponseDto
      • AgentCredentialRequestDto
      • AgentCredentialResponseDto
      • AgentDataPoint
      • AgentLeadCapture
      • AgentLeadReportDto
      • AgentLinkageDto
      • AgentMcpServerDto
      • AgentMcpServerInsertResponseDto
      • AgentMcpServerRequestDto
      • AgentMcpServerUpdateRequestDto
      • AgentPromptVersionDto
      • AgentSessionListDto
      • AgentSessionListItemDto
      • AgentStatsDto
      • AgentThemeDto
      • AgentThemeListDto
      • AgentToolLinkageInsertResponseDto
      • AgentToolLinkageRequestDto
      • AgentWhatappIntrgrationResponse
      • AgentWhatsAppLinkageDto
      • Button
      • CarouselCard
      • CategoryStats
      • ChatBotDetailsDto
      • ChatBotDetailsRequest
      • ChatBotDetailsUpdateRequest
      • ChatbotAISettingsDto
      • ChatbotAISettingsRequest
      • ChatbotAdvanceSettingsDto
      • ChatbotAdvanceSettingsRequest
      • ChatbotAppearanceSettingsDto
      • ChatbotAppearanceSettingsRequest
      • ChatbotAssetDelinkDto
      • ChatbotAssetLinkageDataDto
      • ChatbotAssetLinkageDelinkRequest
      • ChatbotAssetLinkageDetailsDto
      • ChatbotAssetLinkageDto
      • ChatbotAssetLinkageRequest
      • ChatbotTextLinkageRequest
      • ClientData
      • CommonResponse
      • Component
      • Contact
      • ContactName
      • CrawlStatusDto
      • CrawlWebsiteRequest
      • CreateOrUpdateProjectRequest
      • CreatePhoneNumberRequest
      • CreateTemplateRequest
      • CreateWebhookConfigRequest
      • DeLinkWhatsAppRequest
      • Email
      • Error
      • ErrorResponse
      • Example
      • FailureStats
      • FailureStatsDataPoint
      • FormField
      • GoogleSheetDto
      • GoogleSheetIntegrationRequest
      • InboxChatDto
      • InboxDto
      • InboxMessage
      • InboxSession
      • IntelligentMetricsDto
      • Interactive
      • InteractiveAction
      • InteractiveBody
      • InteractiveButton
      • InteractiveFooter
      • InteractiveHeader
      • InteractiveMedia
      • InteractiveProductItem
      • InteractiveProductSection
      • InteractiveReply
      • InteractiveRow
      • InteractiveSection
      • LeadCaptureForm
      • LeadData
      • LeadDataField
      • LeadFormData
      • LeadReport
      • LicenseCreateRequest
      • LicenseDto
      • LicenseLimitRequest
      • LicenseUpdateRequest
      • LimitedTimeOffer
      • LinkWhatsAppRequest
      • LinkedCredentialDto
      • LinkedMcpServerDto
      • Location
      • Media
      • MessageMetaData
      • MessageRequest
      • MessageResponse
      • MessageStats
      • MessageStatsDataPoint
      • MessageTemplate
      • NamedParameter
      • OrgLimitDto
      • Organization
      • PaginatedWebhookLogsResponse
      • Part
      • PartnerClientSession
      • PartnerClientSessionDto
      • Phone
      • PhoneNumberRequest
      • PhoneVerifyCodeRequest
      • PhoneVerifyRequest
      • PlatformStats
      • ProjectDetailDto
      • ProjectWABADetail
      • Reaction
      • ReadTypingIndicatorRequest
      • RecentInsightDto
      • Response
      • SessionInsightItemDto
      • SessionInsightsDto
      • SessionMetaDto
      • SessionMetricsDto
      • SessionSummaryDetailDto
      • StartUrl
      • SubcribedAppsRequest
      • SupportedApp
      • TemplateAction
      • TemplateButtons
      • TemplateCarousel
      • TemplateComponent
      • TemplateCurrency
      • TemplateDateTime
      • TemplateLimitedTimeOffer
      • TemplateMedia
      • TemplateParameter
      • TemplateProductItem
      • TemplateSection
      • TemplateTapTargetConfiguration
      • Text
      • ThemeMetaDto
      • TypingIndicator
      • UpdateOnboardStatusRequest
      • UpdateOnboardStatusResponseDto
      • UploadMedia
      • Url
      • WABADetail
      • WABADto
      • Webhook
      • WebhookConfigDto
      • WebhookConfiguration
      • WebhookLogDto
      • WebsiteDto
      • WhatsAppBusinessApiData
      • WhatsAppBusinessProfile
      • WidgetIntegration
  1. Content

Add Website

POST
/v1/ai-agent/crawl_website
Add Website allows you to crawl website pages and link the crawled content with a chatbot as a knowledge source.
This endpoint is used when you want to add public website content, documentation pages, help center articles, product pages, blogs, FAQs, or other web pages to an AI agent. Once the crawl starts, the website content can be processed and indexed so the chatbot can answer questions using the linked website data.
The API returns crawl run details, including the crawl run ID, current status, and start time.

Endpoint#


Request Body#

{
  "project_id": "3..",
  "chatbot_id": "DKDvwn...",
  "vector_provider": 0,
  "start_urls": [
    {
      "url": "https://example.com/docs"
    }
  ],
  "max_crawl_pages": 50,
  "max_crawl_depth": 3,
  "include_urls": [
    "https://example.com/docs/*"
  ],
  "exclude_urls": [
    "https://example.com/blog/*",
    "https://example.com/login",
    "https://example.com/pricing"
  ],
  "use_sitemap": "1",
  "is_main_website": true,
  "crawl_mode": 2
}

Request Parameters#

FieldTypeRequiredDescription
project_idstringNoProject ID associated with the chatbot.
chatbot_idstringNoUnique chatbot identifier that should be linked with the crawled website content.
vector_providerintegerNoVector provider used to process and index the crawled website content.
start_urlsarrayYesList of starting URLs from where the website crawl should begin.
start_urls[].urlstringYesWebsite URL to crawl.
max_crawl_pagesintegerNoMaximum number of pages the crawler should crawl.
max_crawl_depthintegerNoMaximum depth the crawler should follow from the starting URL.
include_urlsarray of stringsNoURL patterns or specific URLs that should be included during crawling.
exclude_urlsarray of stringsNoURL patterns or specific URLs that should be excluded during crawling.
use_sitemapstringNoIndicates whether the crawler should use the website sitemap when available. Example: 1.
is_main_websitebooleanNoIndicates whether this website should be marked as the main website source for the chatbot.
crawl_modeintegerNoCrawl mode that controls how the website should be crawled.

Success Response#

{
  "run_id": "crawl_run_12345",
  "status": "crawling",
  "started_at": "2026-02-20 14:45:00"
}

Response Fields#

FieldTypeDescription
run_idstringUnique identifier of the website crawl run.
statusstringCurrent status of the crawl run. Example values include running, completed, or failed.
started_atstringDate and time when the crawl process started.

Error Responses#

400 Bad Request#

Returned when the request body is invalid, required values are missing, or one or more URLs are not valid.
{
  "message": "Bad Request",
  "error": {
    "code": "BAD_REQUEST",
    "detail": "Invalid request body or missing required fields."
  }
}

401 Unauthorized#

Returned when the request does not include a valid bearer token.
{
  "message": "Unauthorized",
  "error": {
    "code": "UNAUTHORIZED",
    "detail": "Authentication token is missing or invalid."
  }
}

403 Forbidden#

Returned when the authenticated user does not have permission to add website content to the specified chatbot.
{
  "message": "Forbidden",
  "error": {
    "code": "FORBIDDEN",
    "detail": "You do not have permission to update this chatbot."
  }
}

404 Not Found#

Returned when the project or chatbot does not exist.
{
  "message": "Not Found",
  "error": {
    "code": "CHATBOT_NOT_FOUND",
    "detail": "Chatbot not found."
  }
}

500 Internal Server Error#

Returned when an unexpected error occurs while starting the crawl.
{
  "message": "Internal Server Error",
  "error": {
    "code": "INTERNAL_SERVER_ERROR",
    "detail": "Something went wrong. Please try again later."
  }
}

Notes#

Use this endpoint when you want to add website content as a knowledge source for a chatbot.
The API starts a crawl run and returns the crawl run details. Crawling and indexing may continue after the response is returned.
Use max_crawl_pages and max_crawl_depth to control how much website content is crawled.
Use include_urls to limit crawling to specific website sections, such as documentation or help center pages.
Use exclude_urls to prevent unnecessary pages from being crawled, such as login pages, checkout pages, pricing pages, or blog sections.
Use use_sitemap when you want the crawler to discover pages from the website sitemap.
After starting the crawl, use the Get Crawl Status API with the returned run_id to check the crawl progress.

Request

Body Params application/json

Examples

Responses

🟢200
application/json
OK
Body

🟠400
🟠401
🟠403
🟠404
🔴500
Request Request Example
Shell
JavaScript
Java
Swift
curl --location 'https://agents.robofy.ai/v1/ai-agent/crawl_website' \
--header 'Content-Type: application/json' \
--data '{
    "project_id": "3..",
    "chatbot_id": "DKDvwn...",
    "vector_provider": 0,
    "start_urls": [
        {
            "url": "https://example.com/docs"
        }
    ],
    "max_crawl_pages": 50,
    "max_crawl_depth": 3,
    "include_urls": [
        "https://example.com/docs/*"
    ],
    "exclude_urls": [
        "https://example.com/blog/*",
        "https://example.com/login",
        "https://example.com/pricing"
    ],
    "use_sitemap": "1",
    "is_main_website": true,
    "crawl_mode": 2
}'
Response Response Example
200 - Example 1
{
    "run_id": "string",
    "status": "string",
    "started_at": "string"
}
Modified at 2026-05-04 11:10:52
Previous
List Leads
Next
Get Crawl Status
Built with