Bing Webmaster CLI

Command reference

Every bwt command with its flags, examples, and the Bing methods it calls, generated from the command tree.

Generated from the bwt command tree on main. The command guides explain when to use each group.

Global flags apply to every command.

      --access-token string   Bearer token override (prefer BWT_ACCESS_TOKEN)
      --api-key string        API key override (prefer BWT_API_KEY or auth login)
      --dry-run               For writes: print the requests and send nothing
      --no-input              Never prompt or open a browser
  -o, --output string         Output format: table, json, yaml, csv (default "table")
      --profile string        Named profile (or BWT_PROFILE)
  -q, --quiet                 Suppress informational stderr output
      --raw                   Print Bing's wire JSON without date conversion
      --read-only             Block remote writes, local credential changes, and self-update
  -s, --site string           Site URL exactly as in sites list, or a bare host (or BWT_SITE)
      --timeout duration      HTTP request timeout (default 30s)
  -v, --verbose               Log method, redacted URL, and status to stderr
  -y, --yes                   Confirm destructive commands and updates without a prompt

bwt

Bing Webmaster Tools from your terminal

Read and manage Bing Webmaster Tools data: search performance, crawl health, URL and sitemap submission, IndexNow, keyword research, and site settings. Data goes to stdout and diagnostics to stderr. --read-only blocks every state change.

bwt

bwt api

Call any Bing Webmaster API method directly

Sends an authenticated request to https://ssl.bing.com/webmaster/api.svc/json/METHOD with the same redaction, fault handling, and date conversion as other commands. Known methods use their documented HTTP verb and effect; unknown methods need --http and count as writes, so --read-only refuses them. Writes ask for confirmation (or --yes): a raw call can remove sites, sitemaps, or users. --param values are sent as strings; use --data for typed JSON values (POST only).

bwt api METHOD [flags]
  bwt api GetUserSites
  bwt api GetQueryStats --param siteUrl=https://example.com/
  bwt api SubmitUrlBatch --data '{"siteUrl":"https://example.com/","urlList":["https://example.com/a"]}'
      --data string         JSON object of parameters (POST)
      --http string         HTTP method for methods not in the registry: GET or POST
      --param stringArray   Parameter as name=value (repeatable)

bwt api methods

List every Bing method: HTTP verb, read/write effect, status, and the command that calls it

bwt api methods
  bwt api methods -o json

bwt auth

Log in, inspect credentials, and manage profiles

bwt auth

bwt auth list

List saved profiles without secrets

bwt auth list

bwt auth login

Save your Bing Webmaster API key and pick a default site

Logs in with your Bing Webmaster Tools API key, which covers every site in your account. In a terminal it opens Bing Webmaster Tools, shows where the key is (Settings > API Access > API Key), and reads it from a hidden prompt; piped input is read from stdin. The key is checked with one GetUserSites call before anything is saved, then stored in the OS keychain, and a default site is chosen. Without an OS keychain, login stops unless you pass --insecure-storage (a 0600 plaintext file). Bing's OAuth registration rejects loopback redirect URIs, so there is no browser OAuth login.

changes local configuration.

bwt auth login [flags]
  bwt auth login
  bwt auth login --profile client-b
  printf '%s' "$KEY" | bwt auth login --no-input --profile ci
  BWT_API_KEY=... bwt sites list    # use a key without saving it
      --insecure-storage   Store the key in a 0600 plaintext file instead of the OS keychain
      --no-verify          Save without checking the key with Bing (for a key that is not active yet)

bwt auth logout

Delete the profile's saved API key (keeps its site and IndexNow keys)

Deletes the saved API key from the keychain or secrets file. Logging out removes the key from this machine only. To invalidate it, regenerate it in Bing Webmaster Tools > Settings > API Access.

changes local configuration.

bwt auth logout

bwt auth status

Show the active credential source without revealing secrets

Local only unless --verify, which makes one GetUserSites call.

bwt auth status [flags]
      --verify   Check access with one GetUserSites call

bwt auth use

Set the default profile

changes local configuration.

bwt auth use NAME

bwt block

Block URLs from Bing results (Block URLs tool)

bwt block

bwt block add

Block a page or directory from Bing results

--request cache-only removes the cached copy; full-removal removes the URL from Bing results until it expires. There is no default for --request, and full removal asks for confirmation.

changes Bing state (blocked by --read-only); Bing methods: AddBlockedUrl.

bwt block add URL [flags]
      --request string   cache-only or full-removal (required)
      --type string      page or directory (default "page")

bwt block list

List blocked URLs

Bing methods: GetBlockedUrls.

bwt block list

bwt block remove

Unblock a URL

Looks up the block with GetBlockedUrls and removes exactly that entry.

changes Bing state (blocked by --read-only); Bing methods: GetBlockedUrls, RemoveBlockedUrl.

bwt block remove URL

bwt completion

Generate shell completion script

bwt completion [bash|zsh|fish|powershell]

bwt config

Inspect configuration and select profiles

bwt config

bwt config list-profiles

List saved profiles without secrets

bwt config list-profiles

bwt config show

Show the active credential source without revealing secrets

Local only unless --verify, which makes one GetUserSites call.

bwt config show [flags]
      --verify   Check access with one GetUserSites call

bwt config use-profile

Set the default profile

changes local configuration.

bwt config use-profile NAME

bwt connected-pages

Pages (such as social profiles) connected to your site

bwt connected-pages

bwt connected-pages add

Connect a page to your site

changes Bing state (blocked by --read-only); Bing methods: AddConnectedPage.

bwt connected-pages add URL

bwt connected-pages list

List connected pages

Bing methods: GetConnectedPages.

bwt connected-pages list

bwt crawl

Crawl statistics, crawl issues, and crawl settings

bwt crawl

bwt crawl issues

URLs with crawl issues, with the issue bitmask decoded

Lists URLs Bing had trouble crawling. issue_labels is decoded locally from the Issues bitmask. Fixed issues can stay listed for several days, and an empty list does not prove the site has none.

Bing methods: GetCrawlIssues.

bwt crawl issues

bwt crawl set-settings

Change hourly crawl rate or crawl boost

Reads the current crawl settings, applies your changes, and saves the full object. --rate takes 24 comma-separated hourly values (Bing does not document the valid range or timezone).

changes Bing state (blocked by --read-only); Bing methods: GetCrawlSettings, SaveCrawlSettings.

bwt crawl set-settings [flags]
  bwt crawl set-settings --rate 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,5,4,3,3,4
  bwt crawl set-settings --boost on
      --boost string   Crawl boost: on or off
      --rate string    24 comma-separated hourly crawl-rate values

bwt crawl settings

Show crawl rate and crawl boost settings

CrawlRate has 24 hourly values. Bing does not document their valid range or the timezone of the hours.

Bing methods: GetCrawlSettings.

bwt crawl settings

bwt crawl stats

Daily crawl statistics

Daily counts of crawled pages, pages in the index, crawl errors, and HTTP status classes. Bing updates this daily.

Bing methods: GetCrawlStats.

bwt crawl stats

Block deep links (sitelinks) shown under a result

bwt deeplink-blocks

Block a deep link

changes Bing state (blocked by --read-only); Bing methods: AddDeepLinkBlock.

bwt deeplink-blocks add [flags]
      --deep-link-url string   Deep link URL to block (required)
      --market string          Market, such as en-US (required)
      --search-url string      Result URL the deep link appears under (required)

List deep-link blocks

Bing methods: GetDeepLinkBlocks.

bwt deeplink-blocks list

Remove a deep-link block

changes Bing state (blocked by --read-only); Bing methods: RemoveDeepLinkBlock.

bwt deeplink-blocks remove [flags]
      --deep-link-url string   Deep link URL to block (required)
      --market string          Market, such as en-US (required)
      --search-url string      Result URL the deep link appears under (required)

bwt doctor

Check configuration, credentials, site selection, and PATH

Runs local checks without network access; --verify adds one GetUserSites call. Exits nonzero when a check fails.

bwt doctor [flags]
      --verify   Also check access with one GetUserSites call

bwt experimental

Documented Bing methods that did not work in live checks

These methods are still in Bing's documentation, but a live check on 2026-10-04 failed (GetSiteMoves returned HTTP 404). Each run prints a notice. Confirm results in the Bing Webmaster Tools dashboard.

bwt experimental

bwt experimental site-move

Site moves (Bing's site move tool)

bwt experimental site-move

bwt experimental site-move list

List submitted site moves

experimental; Bing methods: GetSiteMoves.

bwt experimental site-move list

bwt experimental site-move submit

Tell Bing that content moved to a new location

changes Bing state (blocked by --read-only); experimental; Bing methods: SubmitSiteMove.

bwt experimental site-move submit [flags]
      --from string    Source URL (required)
      --scope string   domain, host, or directory (required)
      --to string      Target URL (required)
      --type string    local or global (required)

bwt fetch

Fetch as Bingbot: request a fetch and read the results

bwt fetch

bwt fetch get

Show a fetched URL's status, headers, and document

The table shows the status. --save writes what Bingbot fetched (its crawl record and the response) to a file; -o json includes it too.

Bing methods: GetFetchedUrlDetails.

bwt fetch get URL [flags]
  bwt fetch get https://www.example.com/ --save fetched.txt
      --save string   Write the fetched document to this file

bwt fetch list

List fetch requests and whether they completed

Bing methods: GetFetchedUrls.

bwt fetch list

bwt fetch request

Ask Bingbot to fetch a URL

Schedules a Bingbot fetch. Check the result later with bwt fetch list and bwt fetch get.

changes Bing state (blocked by --read-only); Bing methods: FetchUrl.

bwt fetch request URL

bwt geo

Country or region targeting for pages, directories, or hosts

bwt geo

bwt geo add

Target a URL to a country or region

changes Bing state (blocked by --read-only); Bing methods: AddCountryRegionSettings.

bwt geo add [flags]
      --country string   Two-letter ISO country code (required)
      --type string      page, directory, domain, or subdomain (default "page")
      --url string       Page, directory, or host URL (required)

bwt geo list

List targeting settings

Bing methods: GetCountryRegionSettings.

bwt geo list

bwt geo remove

Remove a targeting setting

changes Bing state (blocked by --read-only); Bing methods: RemoveCountryRegionSettings.

bwt geo remove [flags]
      --country string   Two-letter ISO country code (required)
      --type string      page, directory, domain, or subdomain (default "page")
      --url string       Page, directory, or host URL (required)

bwt indexnow

Notify Bing and other engines of new or changed URLs with IndexNow

IndexNow needs no Bing login: you host a key file on your site and submit URLs with the key. A submission to one participating endpoint is shared with the other IndexNow engines. Keys are public by design (served at https://host/KEY.txt), so the CLI keeps them in the config file.

bwt indexnow

bwt indexnow key

Create and check the IndexNow key for a host

bwt indexnow key

bwt indexnow key check

Fetch the key file and confirm it matches

bwt indexnow key check [flags]
      --host string           Host to check (default: the selected site's host)
      --key string            Key to check (default: the saved key)
      --key-location string   Key file URL (default: https://host/KEY.txt)

bwt indexnow key generate

Create a new key and save it for a host

Creates a 32-character hexadecimal key and shows where to host it. The key is saved in the selected profile unless --no-save. Upload a text file named KEY.txt containing only the key to the site root, then run bwt indexnow key check.

changes local configuration.

bwt indexnow key generate [flags]
      --host string   Host the key is for (default: the selected site's host)
      --no-save       Print the key without saving it

bwt indexnow submit

Submit new, changed, or deleted URLs with IndexNow

Groups URLs by host and sends up to 10,000 per request, one request at a time. Stops at the first rejected batch. 200 and 202 mean received (202: key validation pending); neither means indexed.

changes Bing state (blocked by --read-only).

bwt indexnow submit [URL...] [flags]
  bwt indexnow submit https://example.com/new-post
  bwt indexnow submit --sitemap https://example.com/sitemap.xml --changed-since 2026-10-01
  bwt indexnow submit --file changed.txt --endpoint bing
      --changed-since string   With --sitemap: only URLs whose lastmod is on or after YYYY-MM-DD
      --endpoint string        indexnow (api.indexnow.org), bing, or an https URL (default "indexnow")
      --file string            Read URLs from a file, one per line (- for stdin)
      --key string             IndexNow key for every host (default: saved key per host, or BWT_INDEXNOW_KEY)
      --key-location string    Key file URL (single host only)
      --sitemap string         Read URLs from a sitemap or sitemap index

bwt keywords

Bing keyword research (market data, not your site's performance)

Keyword research reports Bing search demand for a query in a market. It is not filtered to your site. Bing does not document the accepted date syntax for these methods; the CLI sends YYYY-MM-DD.

bwt keywords

bwt keywords get

Impressions for one query over a date range

Bing methods: GetKeyword.

bwt keywords get QUERY [flags]
      --country string    Market country code, such as us or gb (default "us")
      --end string        End date YYYY-MM-DD (default: today, UTC)
      --language string   Market language, such as en-US (default "en-US")
      --start string      Start date YYYY-MM-DD (default: 30 days before --end)

Related queries with impressions over a date range

Bing methods: GetRelatedKeywords.

bwt keywords related QUERY [flags]
      --country string    Market country code, such as us or gb (default "us")
      --end string        End date YYYY-MM-DD (default: today, UTC)
      --language string   Market language, such as en-US (default "en-US")
      --start string      Start date YYYY-MM-DD (default: 30 days before --end)

bwt keywords stats

Weekly impression history for one query

Bing methods: GetKeywordStats.

bwt keywords stats QUERY [flags]
      --country string    Market country code, such as us or gb (default "us")
      --language string   Market language, such as en-US (default "en-US")

Inbound links Bing has found

Bing's legacy link methods can return empty results for sites that have links; empty is not proof of none.

bwt links

Pages on your site with inbound link counts

Pages start at 0. --all follows Bing's TotalPages (bounded by --max-pages).

Bing methods: GetLinkCounts.

bwt links counts [flags]
      --all             Fetch pages until the end (bounded by --max-pages)
      --max-pages int   Upper bound on pages fetched with --all (default 100)
      --page int        Page to fetch, starting at 0

Inbound links to one page, with anchor text

Pages start at 0. --all follows Bing's TotalPages (bounded by --max-pages).

Bing methods: GetUrlLinks.

bwt links list URL [flags]
      --all             Fetch pages until the end (bounded by --max-pages)
      --max-pages int   Upper bound on pages fetched with --all (default 100)
      --page int        Page to fetch, starting at 0

bwt login

Alias for auth login

Logs in with your Bing Webmaster Tools API key, which covers every site in your account. In a terminal it opens Bing Webmaster Tools, shows where the key is (Settings > API Access > API Key), and reads it from a hidden prompt; piped input is read from stdin. The key is checked with one GetUserSites call before anything is saved, then stored in the OS keychain, and a default site is chosen. Without an OS keychain, login stops unless you pass --insecure-storage (a 0600 plaintext file). Bing's OAuth registration rejects loopback redirect URIs, so there is no browser OAuth login.

changes local configuration.

bwt login [flags]
  bwt auth login
  bwt auth login --profile client-b
  printf '%s' "$KEY" | bwt auth login --no-input --profile ci
  BWT_API_KEY=... bwt sites list    # use a key without saving it
      --insecure-storage   Store the key in a 0600 plaintext file instead of the OS keychain
      --no-verify          Save without checking the key with Bing (for a key that is not active yet)

bwt params

URL query parameters Bing should ignore when normalizing URLs

bwt params

bwt params add

Add a parameter to ignore

changes Bing state (blocked by --read-only); Bing methods: AddQueryParameter.

bwt params add NAME

bwt params disable

Disable a parameter

changes Bing state (blocked by --read-only); Bing methods: EnableDisableQueryParameter.

bwt params disable NAME

bwt params enable

Enable a parameter

changes Bing state (blocked by --read-only); Bing methods: EnableDisableQueryParameter.

bwt params enable NAME

bwt params list

List normalization parameters

Bing methods: GetQueryParameters.

bwt params list

bwt params remove

Remove a parameter

changes Bing state (blocked by --read-only); Bing methods: RemoveQueryParameter.

bwt params remove NAME

bwt preview-blocks

Block or allow page previews (snippets) in Bing results

bwt preview-blocks

bwt preview-blocks add

Block the preview for a URL

--reason is Bing's BlockReason number. Microsoft does not publish the enum values; existing blocks in preview-blocks list show the values in use.

changes Bing state (blocked by --read-only); Bing methods: AddPagePreviewBlock.

bwt preview-blocks add URL [flags]
      --reason string   BlockReason number (required)

bwt preview-blocks list

List active page preview blocks

Bing methods: GetActivePagePreviewBlocks.

bwt preview-blocks list

bwt preview-blocks remove

Remove a preview block

changes Bing state (blocked by --read-only); Bing methods: RemovePagePreviewBlock.

bwt preview-blocks remove URL

bwt quota

Remaining URL and content submission quota

Shows Bing's daily and monthly counters exactly as returned. Quotas are site-specific; nothing is assumed.

Bing methods: GetUrlSubmissionQuota, GetContentSubmissionQuota.

bwt quota

bwt sitemaps

Sitemaps and feeds submitted to Bing

bwt sitemaps

bwt sitemaps get

Show the sitemaps inside a sitemap index

Bing methods: GetFeedDetails.

bwt sitemaps get URL

bwt sitemaps list

List submitted sitemaps and feeds

Bing methods: GetFeeds.

bwt sitemaps list

bwt sitemaps remove

Remove a sitemap or feed

changes Bing state (blocked by --read-only); Bing methods: RemoveFeed.

bwt sitemaps remove URL

bwt sitemaps submit

Submit a sitemap or feed URL

Supports XML sitemaps, sitemap indexes, RSS 2.0, Atom 0.3/1.0, and text feeds.

changes Bing state (blocked by --read-only); Bing methods: SubmitFeed.

bwt sitemaps submit URL

bwt sites

List, add, verify, remove, and select sites

bwt sites

bwt sites add

Add a site to your account (it still needs verification)

Adds the site to your account. Adding is harmless if the site is already there. Verify ownership afterwards with an XML file, meta tag, or DNS record, then run bwt sites verify.

changes Bing state (blocked by --read-only); Bing methods: AddSite.

bwt sites add SITE

bwt sites list

List the sites in your Bing Webmaster account

Lists your sites. Use these URLs exactly (scheme and trailing slash) in other commands. JSON also includes AuthenticationCode and DnsVerificationCode for verification.

Bing methods: GetUserSites.

bwt sites list

bwt sites remove

Remove a site from your account

changes Bing state (blocked by --read-only); Bing methods: RemoveSite.

bwt sites remove SITE

bwt sites use

Set the profile's default site (local)

Saves SITE as the default for the selected profile. A bare host is matched against your sites.

changes local configuration.

bwt sites use SITE

bwt sites verify

Ask Bing to verify ownership of a site

Asks Bing to check the site's verification file, meta tag, or DNS record. Prints verified: false when Bing could not confirm ownership.

changes Bing state (blocked by --read-only); Bing methods: VerifySite.

bwt sites verify SITE

bwt stats

Search performance: Bing's top queries, pages, and traffic

Bing returns its own top rows with no date range, row limit, or paging on the server. --since, --until, --limit, and --sort filter and sort locally; JSON records filtered_locally. Positions are shown as Bing returns them (their scale is undocumented).

bwt stats

bwt stats detail

Position detail for one query and page

Bing returns its own top rows with no date range, row limit, or paging on the server. --since, --until, --limit, and --sort filter and sort locally; JSON records filtered_locally. Positions are shown as Bing returns them (their scale is undocumented). Bing updates this data weekly.

Bing methods: GetQueryPageDetailStats.

bwt stats detail QUERY URL [flags]
      --asc            Sort ascending
      --limit int      Keep at most N rows after sorting (local)
      --since string   Keep rows on or after this day (YYYY-MM-DD, local filter)
      --sort string    Sort locally by date, clicks, impressions, ctr, query, position, avg-click-position, or avg-impression-position (descending)
      --until string   Keep rows on or before this day (YYYY-MM-DD, local filter)

bwt stats page-queries

Queries that lead to a page

Bing returns its own top rows with no date range, row limit, or paging on the server. --since, --until, --limit, and --sort filter and sort locally; JSON records filtered_locally. Positions are shown as Bing returns them (their scale is undocumented). Bing updates this data weekly.

Bing methods: GetPageQueryStats.

bwt stats page-queries URL [flags]
      --asc            Sort ascending
      --limit int      Keep at most N rows after sorting (local)
      --since string   Keep rows on or after this day (YYYY-MM-DD, local filter)
      --sort string    Sort locally by date, clicks, impressions, ctr, query, position, avg-click-position, or avg-impression-position (descending)
      --until string   Keep rows on or before this day (YYYY-MM-DD, local filter)

bwt stats pages

Top pages

Bing returns its own top rows with no date range, row limit, or paging on the server. --since, --until, --limit, and --sort filter and sort locally; JSON records filtered_locally. Positions are shown as Bing returns them (their scale is undocumented). Bing updates this data weekly.

Bing methods: GetPageStats.

bwt stats pages [flags]
      --asc            Sort ascending
      --limit int      Keep at most N rows after sorting (local)
      --since string   Keep rows on or after this day (YYYY-MM-DD, local filter)
      --sort string    Sort locally by date, clicks, impressions, ctr, query, position, avg-click-position, or avg-impression-position (descending)
      --until string   Keep rows on or before this day (YYYY-MM-DD, local filter)

bwt stats queries

Top queries

Bing returns its own top rows with no date range, row limit, or paging on the server. --since, --until, --limit, and --sort filter and sort locally; JSON records filtered_locally. Positions are shown as Bing returns them (their scale is undocumented). Bing updates this data weekly.

Bing methods: GetQueryStats.

bwt stats queries [flags]
      --asc            Sort ascending
      --limit int      Keep at most N rows after sorting (local)
      --since string   Keep rows on or after this day (YYYY-MM-DD, local filter)
      --sort string    Sort locally by date, clicks, impressions, ctr, query, position, avg-click-position, or avg-impression-position (descending)
      --until string   Keep rows on or before this day (YYYY-MM-DD, local filter)

bwt stats query-pages

Pages that rank for a query

Bing returns its own top rows with no date range, row limit, or paging on the server. --since, --until, --limit, and --sort filter and sort locally; JSON records filtered_locally. Positions are shown as Bing returns them (their scale is undocumented). Bing updates this data weekly.

Bing methods: GetQueryPageStats.

bwt stats query-pages QUERY [flags]
      --asc            Sort ascending
      --limit int      Keep at most N rows after sorting (local)
      --since string   Keep rows on or after this day (YYYY-MM-DD, local filter)
      --sort string    Sort locally by date, clicks, impressions, ctr, query, position, avg-click-position, or avg-impression-position (descending)
      --until string   Keep rows on or before this day (YYYY-MM-DD, local filter)

bwt stats query-traffic

Traffic history for one query (top queries only)

Bing returns its own top rows with no date range, row limit, or paging on the server. --since, --until, --limit, and --sort filter and sort locally; JSON records filtered_locally. Positions are shown as Bing returns them (their scale is undocumented). Bing updates this data daily.

Bing methods: GetQueryTrafficStats.

bwt stats query-traffic QUERY [flags]
      --asc            Sort ascending
      --limit int      Keep at most N rows after sorting (local)
      --since string   Keep rows on or after this day (YYYY-MM-DD, local filter)
      --sort string    Sort locally by date, clicks, impressions, ctr, query, position, avg-click-position, or avg-impression-position (descending)
      --until string   Keep rows on or before this day (YYYY-MM-DD, local filter)

bwt stats summary

Totals over the latest N days of site traffic, computed locally

Sums GetRankAndTrafficStats over the N calendar days ending at the latest day Bing returned. CTR is recomputed from the sums. --compare previous adds the preceding N days; percentage changes are null when the earlier value is zero, and the CTR change is in percentage points.

Bing methods: GetRankAndTrafficStats.

bwt stats summary [flags]
      --compare string   Compare with: previous
      --days int         Window length in days (default 28)

bwt stats traffic

Site clicks and impressions by day

Bing returns its own top rows with no date range, row limit, or paging on the server. --since, --until, --limit, and --sort filter and sort locally; JSON records filtered_locally. Positions are shown as Bing returns them (their scale is undocumented). Bing updates this data daily.

Bing methods: GetRankAndTrafficStats.

bwt stats traffic [flags]
      --asc            Sort ascending
      --limit int      Keep at most N rows after sorting (local)
      --since string   Keep rows on or after this day (YYYY-MM-DD, local filter)
      --sort string    Sort locally by date, clicks, impressions, ctr, query, position, avg-click-position, or avg-impression-position (descending)
      --until string   Keep rows on or before this day (YYYY-MM-DD, local filter)

bwt status

Alias for auth status

Local only unless --verify, which makes one GetUserSites call.

bwt status [flags]
      --verify   Check access with one GetUserSites call

bwt submit

Submit URLs to Bing (prefer indexnow submit for new or changed URLs)

bwt submit

bwt submit content

Push a page's full HTTP response to Bing (content submission)

Sends a complete HTTP response (status line, headers, blank line, body) for URL, base64-encoded, up to 10 MB. Works with an API key. Submitted content may be indexed even if robots.txt disallows it (NOINDEX is honored). Capture a response with: curl -s --http1.1 -i https://example.com/page -o page.http

changes Bing state (blocked by --read-only); Bing methods: SubmitContent.

bwt submit content URL [flags]
  curl -s --http1.1 -i https://www.example.com/ -o home.http
  bwt submit content https://www.example.com/ --file home.http
      --dynamic-serving string   none, pc, mobile, amp, tablet, or nonvisual (default "none")
      --file string              File with the full HTTP response (required)
      --structured-data string   File with structured data, normally JSON-LD

bwt submit urls

Submit URLs with Bing's URL Submission API

Submits URLs for crawling. One URL uses SubmitUrl; more are sent in batches of up to 500 with SubmitUrlBatch, one after another. On a failure the command reports the batches Bing accepted and stops; it never resubmits automatically because repeated submissions spend quota. Accepted means Bing received the URLs; it does not mean they are indexed.

changes Bing state (blocked by --read-only); Bing methods: SubmitUrl, SubmitUrlBatch, GetUrlSubmissionQuota.

bwt submit urls [URL...] [flags]
  bwt submit urls https://example.com/new-page
  bwt submit urls --file urls.txt --check-quota
      --batch-size int   URLs per batch (1-500) (default 500)
      --check-quota      Read the URL submission quota first
      --file string      Read URLs from a file, one per line (- for stdin)

bwt update

Update bwt to the latest release (SHA-256 verified)

Downloads the latest GitHub release for this OS and architecture, verifies it against the release's checksums.txt, and replaces the running bwt executable. Works on macOS, Linux, and Windows; on Windows the old executable is renamed to bwt.exe.old and deleted on a later run.

Asks "Update now? [Y/n]" when stdin is a terminal; --yes skips the question, and --no-input requires --yes. --check only reports the current and latest versions. A bwt in a Go bin directory ($GOBIN, $GOPATH/bin, or ~/go/bin) is not replaced: rebuild it from your checkout instead. --read-only blocks installing but allows --check.

Update notice: in an interactive terminal, bwt checks the github.com releases page (not the GitHub API, so its rate limit never applies) for a new release at most once a day and, after a command's output, prints a notice on stderr. The command that runs the day's check waits up to 1 second after its output for the answer; other commands never wait. bwt update and update --check store their result in the same cache. It never checks when stderr is not a terminal, when CI is set, with --quiet, or when BWT_NO_UPDATE_NOTIFIER or NO_UPDATE_NOTIFIER is set (to anything).

bwt update [flags]
  bwt update --check
  bwt update
  bwt update --yes --no-input
      --check   Only report the current and latest versions (always checks the github.com releases page)

bwt url

What Bing knows about a URL and the URLs under it

Bing's URL data has no explicit indexed verdict. IsPage and HttpStatus describe crawling, not indexing.

bwt url

bwt url children

URLs under a URL, with crawl details and filters

Lists URLs below URL. Pages start at 0; --all continues until Bing returns an empty page. This is a read even though Bing implements it with POST.

Bing methods: GetChildrenUrlInfo.

bwt url children URL [flags]
      --all                 Fetch pages until the end (bounded by --max-pages)
      --crawl-date string   Crawled within: any, last-week, last-two-weeks, last-three-weeks (default "any")
      --discovered string   Discovered within: any, last-week, last-month (default "any")
      --doc-flags string    Comma list: blocked-by-robots, malware
      --http string         Comma list: 2xx, 3xx, 301, 302, 4xx, 5xx, other
      --max-pages int       Upper bound on pages fetched with --all (default 100)
      --page int            Page to fetch, starting at 0

bwt url children-traffic

Clicks and impressions for URLs under a URL

Bing methods: GetChildrenUrlTrafficInfo.

bwt url children-traffic URL [flags]
      --all             Fetch pages until the end (bounded by --max-pages)
      --max-pages int   Upper bound on pages fetched with --all (default 100)
      --page int        Page to fetch, starting at 0

bwt url info

Crawl details for one URL

Shows last crawl, discovery date, HTTP status, size, anchors, and child count. A zero status or IsPage=false is not an indexing verdict.

Bing methods: GetUrlInfo.

bwt url info URL

bwt url traffic

Clicks and impressions for one URL (window undocumented)

Bing methods: GetUrlTrafficInfo.

bwt url traffic URL

bwt users

Users and roles delegated on a site

bwt users

bwt users add

Delegate access to a user

Grants EMAIL a role on the site (or on --delegated-url, a host under it). --auth-code defaults to the delegated site's AuthenticationCode from your site list.

changes Bing state (blocked by --read-only); Bing methods: AddSiteRoles, GetUserSites.

bwt users add EMAIL [flags]
      --auth-code string       Authentication code of the delegated site (default: looked up)
      --delegated-url string   Site or host to delegate (default: the selected site)
      --role string            Role: admin, read-only, or read-write (required)

bwt users list

List users with access to the site

Bing methods: GetSiteRoles.

bwt users list [flags]
      --all-subdomains   Include users of all subdomains

bwt users remove

Remove a user's delegated access

Looks up the user's role with GetSiteRoles and removes exactly that role. Several matches are an error; narrow them with --delegated-url.

changes Bing state (blocked by --read-only); Bing methods: GetSiteRoles, RemoveSiteRole.

bwt users remove EMAIL [flags]
      --delegated-url string   Only the role on this site or host

bwt version

Print build information

Prints the version, commit, and build date. latest and update_available come from the last release check (see bwt update --help) and appear only when one is cached; version never uses the network.

bwt version

On this page

bwtbwt apibwt api methodsbwt authbwt auth listbwt auth loginbwt auth logoutbwt auth statusbwt auth usebwt blockbwt block addbwt block listbwt block removebwt completionbwt configbwt config list-profilesbwt config showbwt config use-profilebwt connected-pagesbwt connected-pages addbwt connected-pages listbwt crawlbwt crawl issuesbwt crawl set-settingsbwt crawl settingsbwt crawl statsbwt deeplink-blocksbwt deeplink-blocks addbwt deeplink-blocks listbwt deeplink-blocks removebwt doctorbwt experimentalbwt experimental site-movebwt experimental site-move listbwt experimental site-move submitbwt fetchbwt fetch getbwt fetch listbwt fetch requestbwt geobwt geo addbwt geo listbwt geo removebwt indexnowbwt indexnow keybwt indexnow key checkbwt indexnow key generatebwt indexnow submitbwt keywordsbwt keywords getbwt keywords relatedbwt keywords statsbwt linksbwt links countsbwt links listbwt loginbwt paramsbwt params addbwt params disablebwt params enablebwt params listbwt params removebwt preview-blocksbwt preview-blocks addbwt preview-blocks listbwt preview-blocks removebwt quotabwt sitemapsbwt sitemaps getbwt sitemaps listbwt sitemaps removebwt sitemaps submitbwt sitesbwt sites addbwt sites listbwt sites removebwt sites usebwt sites verifybwt statsbwt stats detailbwt stats page-queriesbwt stats pagesbwt stats queriesbwt stats query-pagesbwt stats query-trafficbwt stats summarybwt stats trafficbwt statusbwt submitbwt submit contentbwt submit urlsbwt updatebwt urlbwt url childrenbwt url children-trafficbwt url infobwt url trafficbwt usersbwt users addbwt users listbwt users removebwt version