Stopbot help and frequently asked questions

Search 81 answers covering products, panel configuration, API integration, WordPress, security, and troubleshooting.

Browse frequently asked questions

81 answers shown

Overview

General

Start with the platform, products, and how Stopbot fits into an application.

6 answers
What is STOPBOT.NET?

STOPBOT.NET is an API-driven visitor intelligence and traffic-decision platform for websites and applications. It analyzes request context and returns JSON signals that an application, SmartURLs client, or WordPress integration can use to allow, block, redirect, or otherwise handle a request.

Which products does Stopbot provide?

Stopbot currently provides six focused services:

Who can use Stopbot?

Any website, application, backend, redirect service, or server-side integration that can make HTTPS requests and process JSON can use the API. WordPress users can use the official plugin without writing the request-handling integration from scratch.

Does creating an account automatically protect my website?

No. You must configure the required service in the panel and integrate the corresponding API response into your application. The WordPress plugin and SmartURLs clients provide ready-made enforcement for their specific use cases.

What is the difference between Blocker and Blocker V2?

Blocker provides a general visitor decision with detection, threat, network, and access fields. Blocker V2 uses a named configuration, accepts additional request context such as JSON parameters and headers, and can return a configured page action through pageResponseType and pageResponseContents.

Does Stopbot guarantee that every bot or threat will be detected?

No detection system is perfect. Stopbot combines multiple signals to support a better access decision, but it cannot guarantee that every bot, threat, false positive, service interruption, or data-quality limitation will be eliminated. Integrations should use sensible fallback behavior and be tested against their own traffic.

Access and usage

Account, subscription, and API key

Manage access, quota, expiration, and billing expectations.

6 answers
Do I need a Stopbot account?

Yes. Create and verify an account, then use panel.stopbot.net to manage the API key, services, configurations, lists, usage, and subscription information associated with that account.

Where do I find my API key, and what format does it use?

Your API key is available from the Stopbot panel. The current API validates a 32-character alphanumeric key. Treat the full value as a secret; the Account endpoint masks it in successful responses.

How is the API key sent to the current API?

Send it in the apikey query parameter on each /services/... request. Do not assume header authentication works unless the current documentation explicitly adds that capability.

What does the Account endpoint return?

A successful Account response includes the masked API key, package name, quota, current usage, expiration date, response timing, and success status. Use it to inspect account-level API access without exposing the complete key in the response.

What happens when the quota is exhausted or the subscription expires?

The request can return HTTP 402 Payment Required with a failed status and a message asking you to increase the quota or extend the API-key duration. Review usage and expiration in the panel before retrying repeatedly.

Is there a trial, and can subscription payments be refunded?

Stopbot provides limited trial access after registration and email verification. Paid plans are prepaid subscriptions with a fixed duration and request quota. Under the current Terms of Service, payments are non-refundable except where applicable law requires otherwise, and unused requests do not carry over after expiration.

Configuration

Panel and service management

Create configurations, maintain lists, and inspect service activity from one account.

7 answers
What can I manage from the Stopbot panel?

The panel provides account and subscription information, service configurations, SmartURLs, Blocker V2 configurations, Bot Redirect destinations, client allowlists and blocklists, visitor logs, statistics, settings, and related account features.

How do I create a Blocker V2 configuration?

Open Blocker V2 in panel.stopbot.net, create a configuration, assign a unique configuration name, choose the required traffic rules and page response, then save it. Copy the exact name into the API request or WordPress plugin.

What is Bot Redirect in the panel?

Bot Redirect is a reusable, named redirect destination consisting of a label and a valid URL. It can be selected where a Blocker V2 or SmartURLs configuration needs a custom redirect target, so the same destination does not have to be entered repeatedly.

Which allowlists and blocklists can I configure?

The settings area supports IP and hostname allowlists, plus IP, hostname, and user-agent blocklists. Enter only the value type requested by the page, review broad patterns carefully, and verify the result with controlled traffic after saving.

Where can I view visitor logs and statistics?

Open the relevant service or configuration in the panel. Blocker, Blocker V2, and SmartURLs provide service-specific visitor data and statistics so you can inspect detection reasons, access results, visitor context, and traffic trends.

Why does a panel service page appear locked?

Some service operations are restricted when the account is on limited trial access or the subscription has expired. Review package, quota, and expiration information, then renew or update the account before attempting the restricted operation again.

Can the same API key be used across Stopbot services?

The API key authenticates the account across services included by its active package. Service-specific resources such as a Blocker V2 configuration name or SmartURLs key name must still belong to that same account and be active.

Integration

API basics

Understand the current endpoint family, parameters, methods, and error behavior.

7 answers
What is the current API base URL and which methods are accepted?

The current public API is served from https://api.stopbot.net/services/. Service endpoints accept HTTPS GET requests and OPTIONS preflight requests. Other methods return HTTP 405. Responses use JSON and are marked as non-cacheable.

Which current API endpoints are available?
  • /services/account
  • /services/blocker
  • /services/blockerv2
  • /services/shorterlink
  • /services/iplookup
  • /services/email-validation
  • /services/phonenumber

Use the current API documentation for endpoint-specific examples.

Which parameters are required?

Every current service requires apikey. Traffic services require an IP address; Blocker V2 additionally requires confname; SmartURLs requires keyname; Email Validation requires email; and Phone Number Identify requires number. Optional fields vary by endpoint.

Do query parameters need to be URL encoded?

Yes. Use the URL/query builder in your programming language so spaces, ampersands, user agents, URLs, and other reserved characters are percent-encoded correctly. For Blocker V2, encode the complete JSON value supplied in params or headers as one query-parameter value.

Which HTTP status codes should an integration handle?

Common responses include 200 for a processed result, 400 for malformed or missing input, 401 for an unknown API key, 402 for quota or expiration restrictions, 405 for an unsupported method, and 503 when a required service dependency is unavailable. Always inspect both the HTTP code and JSON body.

Can I call the API directly from frontend JavaScript?

The API supports browser CORS requests, but placing an API key in public frontend JavaScript exposes it to every visitor. Make normal service calls from your server, trusted worker, plugin, or backend integration instead.

Can I reuse a legacy V1 integration with the current API?

Not without adapting it. Legacy integrations use https://stopbot.net/api/... and may return different field names, nesting, status behavior, and SmartURLs verification semantics. Current integrations use https://api.stopbot.net/services/.... Keep the client and documentation version aligned with the endpoint family.

Traffic decisions

Blocker

Interpret the general detection and access fields correctly.

6 answers
What does Blocker evaluate?

Blocker combines available IP and network context, user-agent analysis, URL threat checks, search-engine handling, configured country and device rules, and applicable allowlists or blocklists. The resulting fields describe both the visitor context and the access decision.

What is the difference between isBot and blockAccess?

isBot describes the bot classification result. blockAccess describes whether the configured policy denies access. They are intentionally separate: a visitor can have isBot: 0 and blockAccess: 1 when another rule, such as country, network type, threat URL, or a client list, requires blocking.

What does threatURL mean?

threatURL reports the URL-threat result for the URL supplied with the request. Treat it as a dedicated signal; do not replace the final access decision with this field alone.

What is detectActivity used for?

detectActivity is the human-readable reason associated with the detection or policy result. It is useful in visitor logs and diagnostics. Use blockAccess for enforcement rather than matching application behavior to a single reason string.

Which visitor and network fields can Blocker return?

The flat response can include IP, hostname, ASN, userType, connectionType, company, ISP, location fields, coordinates, timezone, anycast status, detected device, user agent, bot status, access status, threat status, and the detection reason. Availability depends on the submitted data and the IP record.

How should my application enforce a Blocker response?

Apply the decision on the server before returning protected content. Continue normal processing when blockAccess is 0. When it is 1, apply the denial behavior chosen by your integration. Log detectActivity for diagnosis, but do not block solely because isBot is nonzero unless that is your explicit policy.

Configured enforcement

Blocker V2

Use named policies and the flat page-response fields safely.

7 answers
Why does Blocker V2 use a configuration name?

The confname parameter selects a Blocker V2 configuration owned by the authenticated account. Named configurations let one account apply different rules and page responses to different websites, applications, campaigns, or request flows.

Which Blocker V2 parameters are required or optional?

apikey, ip, and confname are required for a normal check. ua, url, params, and headers provide additional context when available. The latter two are URL-encoded JSON values.

Is the current Blocker V2 response nested?

No. The current response is flat. Visitor, network, decision, and page-response values are top-level fields, including isBot, blockAccess, threatURL, detectActivity, pageResponseType, and pageResponseContents.

What do the Blocker V2 page-response fields mean?

pageResponseType identifies the configured action and pageResponseContents contains its value. RedirectURL supplies a redirect target, HTTPStatusCode supplies the configured HTTP status, and None means the visitor should remain on the current page.

Can Blocker V2 return isBot: 0 and blockAccess: 1?

Yes. Bot classification and policy enforcement are separate. A country restriction, hosting or network rule, threat result, list match, or another configuration decision can block a visitor that is not classified as a bot.

What happens when confname is missing or not registered?

The API rejects the request with a client error instead of silently choosing another policy. Copy the exact configuration name from the panel, preserve its spelling, and confirm that it belongs to the same account as the API key.

Should I forward every query parameter and HTTP header?

No. Send only the context your policy needs. Remove passwords, API keys, authorization values, session cookies, tokens, nonces, payment data, and other secrets before creating the params or headers JSON. Keep values within the documented input limits.

Detection-aware redirects

SmartURLs

Connect a panel key name to the correct redirect and JavaScript-verification flow.

7 answers
What is SmartURLs?

SmartURLs is a redirect service that combines visitor detection with a SmartURL configuration. Your client sends the visitor context and keyname, then follows the returned redirect behavior instead of hard-coding one destination for every visitor.

What is a SmartURLs keyname?

keyname identifies a SmartURL created in the Stopbot panel. It is tied to the owning account, so it must be active and belong to the same account as the API key used in the request.

What does redirectTo contain?

redirectTo contains the destination selected by the SmartURLs configuration and detection result. A client should validate that the response is successful and the destination is usable before sending the browser there; otherwise it should display its local error response.

How do jsResponse and uniqueCode work?

When the current API returns jsResponse: 1, the current SmartURLs client uses the returned uniqueCode in its browser verification request, such as /rsc/rjs.json?uniqueCode=.... That verification endpoint returns the code to the API. Do not substitute the original keyname for the current verification token.

What happens when the SmartURLs key name is invalid?

The API can return a processed response whose detection reason indicates an invalid key name and whose access decision blocks the request. Confirm key ownership, spelling, status, and API-key ownership before treating the problem as a network failure.

Can I use the legacy SmartURLs client with the current API?

Use a client built for the same API generation. The legacy PHP client expects V1 response fields and a different JavaScript-tracking flow. The current PHP and Go clients handle the current flat response and uniqueCode verification behavior.

Where can the SmartURLs clients be deployed?

The PHP client can be served by a supported PHP web stack, including Apache or Nginx with PHP-FPM. The Go client builds into a standalone server and can run behind Nginx, Apache, Microsoft IIS, Caddy, or another trusted reverse proxy. Trust proxy headers only when direct origin access is prevented.

Lookup and validation

IP, email, and phone data services

Understand what each data service can confirm and where metadata can be unavailable.

7 answers
What information does IP Lookup return?

IP Lookup can return the normalized IP, hostname, ASN, user and connection classifications, company, ISP, city, district, region, postcode, country, coordinates, timezone, anycast status, and a success status. Some fields can be empty when the corresponding record has no value.

What is the difference between userType, connectionType, and isAnycast?

userType describes the classified type of IP user or network, connectionType describes the available connection classification, and isAnycast reports whether the IP record is identified as anycast. These are intelligence fields, not proof of a specific individual or physical device.

What does Email Validation check?

For a syntactically valid address, Email Validation separates the user and domain, checks disposable-domain status, and returns MX, SPF, and DMARC lookup results. The response exposes these as domain-level signals for your own acceptance policy.

Does Email Validation prove that a mailbox exists?

No. It does not perform mailbox-level verification and does not guarantee that a specific inbox exists, belongs to the submitter, can receive a message, or will accept delivery.

Why can an invalid email format return a successful API status?

The API request itself was processed successfully, so the response can have status: success while isEmail is false. Use isEmail for the email-format result rather than interpreting transport success as a valid address.

What does Phone Number Identify return?

For a valid international number, the service can return a normalized phone number, line type, carrier, location, country code, validity result, and success status. Supply the number in an international format, including its country calling code.

Why can carrier or location information be unavailable?

Carrier and geocoding metadata depend on the numbering plan and available reference data. A valid number can therefore return an undetected carrier or an empty location. The result also does not prove current ownership, SIM activity, reachability, or identity.

Ready-made integration

WordPress plugin

Install, test, enforce, log, and troubleshoot Blocker V2 on WordPress.

12 answers
What does the Stopbot WordPress plugin protect?

The plugin checks public WordPress frontend page requests with the Blocker V2 API before WordPress renders the page. It applies the returned access and page-response decision to that request.

Which WordPress requests are not protected by the plugin?

The plugin does not protect WordPress administration, login, AJAX, cron, REST, XML-RPC, or static asset requests. Images, CSS, JavaScript, fonts, media, favicon requests, and similar assets are skipped so they do not create visitor checks.

How do I install and configure the WordPress plugin?

Install the plugin ZIP from the official download or the GitHub repository. Activate it, open Stopbot settings, enter the API key and exact Blocker V2 configuration name, run Save & Test Connection, then enable protection after the test succeeds.

Who can access the plugin settings?

The settings area is intended for WordPress administrators with the manage_options capability. Frontend visitors and ordinary user roles cannot manage the API key or protection settings.

Why are logged-in WordPress users bypassed by default?

The default bypass reduces the risk of locking an administrator out while configuring or testing protection. Test from an incognito or private window, log out first, or temporarily change the bypass setting when you intentionally need to test a logged-in role.

How does the plugin handle Blocker V2 responses?

The plugin follows the API decision. A RedirectURL response redirects to the configured destination, an HTTPStatusCode response returns the configured status, and a non-blocking or None response allows WordPress to continue rendering the page.

What happens when the Stopbot API cannot be reached?

The plugin provides a failure policy: allow the visitor or return HTTP 503. Choose the behavior that matches the availability and risk requirements of the site, then use the diagnostic log to investigate repeated connection failures.

What is stored in the WordPress Visitor Log?

The dedicated database table stores recent check details such as time, IP, country, ISP, hostname, device, OS, browser, detection description, accepted and threat results, and API connection status with the HTTP response code. It does not store API keys or full page URLs. The table is created on activation and removed on uninstall.

Does the WordPress plugin cache Stopbot decisions?

No. It calls the API for each eligible frontend page request so decisions do not become stale or cross between different URLs, user agents, query parameters, or headers. The settings screen refreshes the current visitor-log page every 60 seconds; that is a display refresh, not decision caching.

When should I enable trusted proxy headers in WordPress?

Enable them only when the site is always behind Cloudflare or another trusted reverse proxy or load balancer that controls the real-client-IP headers and direct origin access is prevented. Leave the option Off on normal hosting or when you are unsure, because untrusted forwarded headers can be spoofed.

Can the plugin include or exclude multiple paths?

Yes. Path mode supports multiple normalized paths. Exclude mode checks all eligible public pages except the listed paths; include mode checks only the listed paths. The plugin normalizes slashes so equivalent path forms are handled consistently.

How does the plugin prevent redirect loops?

Before redirecting, the plugin normalizes the current URL and configured destination, ignores the query string for the equality check, normalizes duplicate slashes, and compares HTTP and HTTPS consistently. It skips the redirect when the destination resolves to the current page. Path exclusions provide an additional safeguard for dedicated redirect destinations.

Safe operation

Security and data handling

Protect credentials, forwarded IP data, request context, and client-managed lists.

6 answers
How should I protect my Stopbot API key?

Keep it in a server-side secret store, environment variable, protected configuration file, or the WordPress settings storage. Do not commit it to a public repository, expose it in frontend JavaScript, paste it into public logs, screenshots, support messages, or publish complete request URLs containing the key.

What data is sent in a traffic-check request?

A normal traffic check sends the API key, visitor IP, and endpoint-specific context such as user agent, current URL, configuration name, or SmartURLs key name. Blocker V2 can additionally receive selected query parameters and request headers. Send only what the policy needs and consult the Privacy Policy for public data-handling information.

Which client-managed allowlists and blocklists are available?

The panel provides client-managed IP and hostname allowlists, IP and hostname blocklists, and a user-agent blocklist. Apply entries carefully, test changes with representative traffic, and remember that an allowlist can intentionally permit a matching visitor before later deny checks.

Why is trusting proxy IP headers a security decision?

Headers such as CF-Connecting-IP, X-Real-IP, and X-Forwarded-For are trustworthy only when a controlled proxy overwrites them and the origin rejects direct public traffic. Otherwise a visitor can submit a forged header and influence IP-based decisions.

Are API responses safe to cache and reuse for another request?

Do not broadly cache or reuse a traffic decision. The public API marks responses as non-cacheable, and a decision can depend on IP, URL, user agent, configuration, parameters, and headers. If an integration adds caching for a specialized use case, its key must include every decision input and its lifetime must match the accepted risk.

How do I report abuse or a security concern?

Use the dedicated Abuse Report for misuse of Stopbot services, or open the Support Center for technical assistance. Redact API keys, passwords, cookies, payment credentials, and personal secrets before submitting evidence.

Diagnosis

Troubleshooting and support

Resolve common authentication, configuration, proxy, redirect, and availability problems.

10 answers
Why am I receiving HTTP 400?

HTTP 400 indicates malformed, missing, or unacceptable input. Check the 32-character API-key format, required endpoint parameters, IP or phone-number format, JSON syntax, URL encoding, input length, and the exact Blocker V2 configuration name.

Why am I receiving HTTP 401?

HTTP 401 means the supplied API key was not found or could not authenticate the request. Confirm that the full value was copied without spaces, belongs to the intended account, and was not replaced by a masked key from an Account response or screenshot.

Why am I receiving HTTP 402?

HTTP 402 indicates that the request quota is exhausted or the API-key duration has expired. Check quota, usage, package, and expiration in the panel or Account endpoint, then renew or increase access before retrying.

Why am I receiving HTTP 503?

HTTP 503 means the endpoint could not use a required dependency or complete the service operation at that time. Check the public Service Status, apply the integration's configured fallback, and retry with backoff instead of creating a tight retry loop.

Why does the WordPress plugin not create a visitor check?

Confirm that protection is enabled, the connection test succeeds, the API key and configuration name are correct, and the page matches the include or exclude rules. Test while logged out or in an incognito window. Purge WordPress, server, LiteSpeed, and CDN full-page caches so the request reaches WordPress instead of a cached response.

Why is the API receiving the proxy or server IP instead of the visitor IP?

The integration is probably reading the direct peer address while a reverse proxy sits in front of it. Configure the proxy to overwrite the real-IP header, prevent direct origin access, and then enable trusted proxy headers in the integration. Do not enable trust merely to make a test value appear correct.

How do I diagnose ERR_TOO_MANY_REDIRECTS?

Check whether the configured redirect target resolves back to the currently protected page, including equivalent HTTP/HTTPS forms, duplicate slashes, and query-string variants. Use a dedicated destination outside the protected include set or add it to the excluded paths. Purge page and CDN caches after changing the rule.

Why was a normal browser blocked?

Inspect blockAccess and detectActivity together. The cause may be a country, hosting or network rule, threat URL, blacklist, invalid SmartURLs key name, or another configuration decision rather than bot classification. Verify the submitted IP, user agent, URL, configuration, and client lists before changing detection policy.

Why does SmartURLs not redirect or complete JavaScript verification?

Confirm that the key name belongs to the API-key account, is active, and is copied exactly. Inspect redirectTo, jsResponse, uniqueCode, and detectActivity. For current clients, the browser verification request must return the supplied uniqueCode, not the original key name.

Where should I go when this FAQ does not resolve the problem?

Check the current documentation and Service Status, then use the Support Center. Include the affected service, approximate request time and time zone, HTTP status, a redacted response, and the integration environment. Never include the full API key or session credentials.

Still need help?

Visit the Support Center for the correct contact channel and the information to include with your request.

Open Support Center