Cookie Consent by Free Privacy Policy Generator APIs-Google User Agent - Google Bot Details | CL SEO

APIs-Google

Google Since 2016
Search May ignore robots.txt
#google #api #fetcher
Quick Actions
Official Docs

What is APIs-Google?

APIs-Google is the user agent used by various Google API services to fetch web content. This includes fetching content for Google's push notification services, app indexing, and other API-driven features. Unlike Googlebot, APIs-Google does not respect robots.txt because it acts as a user-triggered fetcher rather than an autonomous crawler. Website owners should be aware that blocking this user agent may prevent certain Google services from functioning correctly with their content.

User Agent String

APIs-Google (+https://developers.google.com/webmasters/APIs-Google.html)

How to Control APIs-Google

Block Completely

To prevent APIs-Google from accessing your entire website, add this to your robots.txt file:

# Block APIs-Google User-agent: APIs-Google Disallow: /

Block Specific Directories

To restrict access to certain parts of your site while allowing others:

User-agent: APIs-Google Disallow: /admin/ Disallow: /private/ Disallow: /wp-admin/ Allow: /public/

Set Crawl Delay

To slow down the crawl rate (note: not all bots respect this directive):

User-agent: APIs-Google Crawl-delay: 10

How to Verify APIs-Google

Verification Method:
Reverse DNS lookup should resolve to google.com

Learn more in the official documentation.

Detection Patterns

Multiple ways to detect APIs-Google in your application:

Basic Pattern

/APIs\-Google/i

Strict Pattern

/^APIs\-Google \(\+https\://developers\.google\.com/webmasters/APIs\-Google\.html\)$/

Flexible Pattern

/APIs\-Google[\s\/]?[\d\.]*?/i

Vendor Match

/.*Google.*APIs\-Google/i

Implementation Examples

// PHP Detection for APIs-Google function detect_apis_google() { $user_agent = $_SERVER['HTTP_USER_AGENT'] ?? ''; $pattern = '/APIs\\-Google/i'; if (preg_match($pattern, $user_agent)) { // Log the detection error_log('APIs-Google detected from IP: ' . $_SERVER['REMOTE_ADDR']); // Set cache headers header('Cache-Control: public, max-age=3600'); header('X-Robots-Tag: noarchive'); // Optional: Serve cached version if (file_exists('cache/' . md5($_SERVER['REQUEST_URI']) . '.html')) { readfile('cache/' . md5($_SERVER['REQUEST_URI']) . '.html'); exit; } return true; } return false; }
# Python/Flask Detection for APIs-Google import re from flask import request, make_responsedef detect_apis_google(): user_agent = request.headers.get('User-Agent', '') pattern = r'APIs-Google' if re.search(pattern, user_agent, re.IGNORECASE): # Create response with caching response = make_response() response.headers['Cache-Control'] = 'public, max-age=3600' response.headers['X-Robots-Tag'] = 'noarchive' return True return False# Django Middleware class APIsGoogleMiddleware: def __init__(self, get_response): self.get_response = get_response def __call__(self, request): if self.detect_bot(request): # Handle bot traffic pass return self.get_response(request)
// JavaScript/Node.js Detection for APIs-Google const express = require('express'); const app = express();// Middleware to detect APIs-Google function detectAPIsGoogle(req, res, next) { const userAgent = req.headers['user-agent'] || ''; const pattern = /APIs-Google/i; if (pattern.test(userAgent)) { // Log bot detection console.log('APIs-Google detected from IP:', req.ip); // Set cache headers res.set({ 'Cache-Control': 'public, max-age=3600', 'X-Robots-Tag': 'noarchive' }); // Mark request as bot req.isBot = true; req.botName = 'APIs-Google'; } next(); }app.use(detectAPIsGoogle);
# Apache .htaccess rules for APIs-Google# Block completely RewriteEngine On RewriteCond %{HTTP_USER_AGENT} APIs\-Google [NC] RewriteRule .* - [F,L]# Or redirect to a static version RewriteCond %{HTTP_USER_AGENT} APIs\-Google [NC] RewriteCond %{REQUEST_URI} !^/static/ RewriteRule ^(.*)$ /static/$1 [L]# Or set environment variable for PHP SetEnvIfNoCase User-Agent "APIs\-Google" is_bot=1# Add cache headers for this bot <If "%{HTTP_USER_AGENT} =~ /APIs\-Google/i"> Header set Cache-Control "public, max-age=3600" Header set X-Robots-Tag "noarchive" </If>
# Nginx configuration for APIs-Google# Map user agent to variable map $http_user_agent $is_apis_google { default 0; ~*APIs\-Google 1; }server { # Block the bot completely if ($is_apis_google) { return 403; } # Or serve cached content location / { if ($is_apis_google) { root /var/www/cached; try_files $uri $uri.html $uri/index.html @backend; } try_files $uri @backend; } # Add headers for bot requests location @backend { if ($is_apis_google) { add_header Cache-Control "public, max-age=3600"; add_header X-Robots-Tag "noarchive"; } proxy_pass http://backend; } }

Should You Block This Bot?

Recommendations based on your website type:

Site TypeRecommendationReasoning
E-commerce Allow Essential for product visibility in search results
Blog/News Allow Increases content reach and discoverability
SaaS Application Block No benefit for application interfaces; preserve resources
Documentation Allow Improves documentation discoverability for developers
Corporate Site Allow Allow for public pages, block sensitive areas like intranets

Advanced robots.txt Configurations

E-commerce Site Configuration

User-agent: APIs-Google Crawl-delay: 5 Disallow: /cart/ Disallow: /checkout/ Disallow: /my-account/ Disallow: /api/ Disallow: /*?sort= Disallow: /*?filter= Disallow: /*&page= Allow: /products/ Allow: /categories/ Sitemap: https://example.com/sitemap.xml

Publishing/Blog Configuration

User-agent: APIs-Google Crawl-delay: 10 Disallow: /wp-admin/ Disallow: /drafts/ Disallow: /preview/ Disallow: /*?replytocom= Allow: /

SaaS/Application Configuration

User-agent: APIs-Google Disallow: /app/ Disallow: /api/ Disallow: /dashboard/ Disallow: /settings/ Allow: / Allow: /pricing/ Allow: /features/ Allow: /docs/

Quick Reference

User Agent Match

APIs-Google

Robots.txt Name

APIs-Google

Category

search

Respects robots.txt

May not respect
Copied to clipboard!