<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>API Rest Archives - AISEOmatic</title>
	<atom:link href="https://aiseomatic.com/docs-category/api-rest/feed/" rel="self" type="application/rss+xml" />
	<link>https://aiseomatic.com/docs-category/api-rest/</link>
	<description>Plugin for ERA AI</description>
	<lastBuildDate>Sat, 13 Dec 2025 17:36:29 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>

<image>
	<url>https://aiseomatic.com/wp-content/uploads/2025/10/cropped-logo-aiseomatic-1-32x32.png</url>
	<title>API Rest Archives - AISEOmatic</title>
	<link>https://aiseomatic.com/docs-category/api-rest/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>AISEOmatic — REST API Integration Guide (Headless &#038; Multi-Platform)</title>
		<link>https://aiseomatic.com/docs/aiseomatic-rest-api-integration-guide-headless-multi-platform/</link>
					<comments>https://aiseomatic.com/docs/aiseomatic-rest-api-integration-guide-headless-multi-platform/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Sat, 13 Dec 2025 17:36:25 +0000</pubDate>
				<guid isPermaLink="false">https://aiseomatic.com/?post_type=docs&#038;p=14950</guid>

					<description><![CDATA[<p>🔌 Complete API Reference for External Integrations 📋 Table of Contents 1. API Overview Base Configuration WordPress REST Base URL: AISEOmatic API Namespaces: Rate Limiting: CORS Support: 2. Security &#38; Authentication A. API Token Authentication (Recommended) Configuration: Set your API token in AISEOmatic plugin settings. Header Requirement: http Permitted Headers: Response Headers: http Use Cases: [&#8230;]</p>
<p>The post <a href="https://aiseomatic.com/docs/aiseomatic-rest-api-integration-guide-headless-multi-platform/">AISEOmatic — REST API Integration Guide (Headless &amp; Multi-Platform)</a> appeared first on <a href="https://aiseomatic.com">AISEOmatic</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading" id="h-complete-api-reference-for-external-integrations"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f50c.png" alt="🔌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Complete API Reference for External Integrations</h2>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-table-of-contents"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4cb.png" alt="📋" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Table of Contents</h2>



<ol class="wp-block-list">
<li><a href="#1-api-overview">API Overview</a></li>



<li><a href="#2-security--authentication">Security &amp; Authentication</a></li>



<li><a href="#3-core-endpoints">Core Endpoints</a></li>



<li><a href="#4-implementation-examples">Implementation Examples</a></li>



<li><a href="#5-integration-best-practices">Integration Best Practices</a></li>



<li><a href="#6-quick-reference-guide">Quick Reference Guide</a></li>



<li><a href="#7-deployment-checklist">Deployment Checklist</a></li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-1-api-overview">1. API Overview</h2>



<h3 class="wp-block-heading" id="h-base-configuration">Base Configuration</h3>



<p><strong>WordPress REST Base URL:</strong></p>



<pre class="wp-block-code"><code>https:&#47;&#47;your-site.com/wp-json/</code></pre>



<p><strong>AISEOmatic API Namespaces:</strong></p>



<ul class="wp-block-list">
<li><code>aiseomatic/v1</code> &#8211; Primary namespace (token-protected)</li>



<li><code>aiseoai/v1</code> &#8211; Integration and reporting specific</li>



<li><code>aiseomatic-ai/v1</code> &#8211; Open access endpoints</li>
</ul>



<p><strong>Rate Limiting:</strong></p>



<ul class="wp-block-list">
<li>Default: ~60 requests per 10 minutes per IP address</li>



<li>Exceeded limit returns HTTP 429 (Too Many Requests)</li>
</ul>



<p><strong>CORS Support:</strong></p>



<ul class="wp-block-list">
<li>Configurable origin allowlist</li>



<li>Enable for browser-based applications</li>



<li>Automatic OPTIONS/preflight handling</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-2-security-amp-authentication">2. Security &amp; Authentication</h2>



<h3 class="wp-block-heading" id="h-a-api-token-authentication-recommended">A. API Token Authentication (Recommended)</h3>



<p><strong>Configuration:</strong> Set your API token in AISEOmatic plugin settings.</p>



<p><strong>Header Requirement:</strong></p>



<p>http</p>



<pre class="wp-block-code"><code>X-Aiseoai-Token: YOUR_TOKEN_HERE
```

**Rate Limiting:**
- Soft limit: 60 requests / 10 minutes / IP address
- Exceeded requests receive HTTP 429 response
- Automatic reset after time window expires

**Security Best Practice:**
Store tokens server-side only. Never expose in client-side code.

---

### B. Signed Links (Select Endpoints)

**Applicable Endpoints:**
- Snapshot exports
- Chunk data exports
- Other sensitive data endpoints

**Access Methods:**

**1. WordPress Admin Session:**
- Logged-in administrator access
- No signature required
- Suitable for internal tools

**2. Public Access Mode:**
- Enable "public snapshots" option in settings
- No authentication required
- Use with caution for sensitive data

**3. Signed URL:**
- Valid signature via `sig` query parameter
- Alternative: `X-AISeoAI-Signature` header
- Generate signatures within WordPress admin
- Share signed URLs with external consumers

**Signature Implementation:**
```
GET /endpoint/{id}?sig=GENERATED_SIGNATURE
```

**Note:** Signature generation handled by plugin. Integration only needs to use provided `sig` value.

---

### C. CORS Configuration

**Purpose:**
Enable browser-based requests from external domains.

**Configuration:**
Add authorized domains to CORS allowlist in plugin settings.

**Example Allowed Origin:**
```
https:&#47;&#47;app.yourdomain.com</code></pre>



<p><strong>Permitted Headers:</strong></p>



<ul class="wp-block-list">
<li><code>Content-Type</code></li>



<li><code>X-Aiseoai-Token</code></li>



<li><code>X-AISeoAI-Signature</code></li>
</ul>



<p><strong>Response Headers:</strong></p>



<p>http</p>



<pre class="wp-block-code"><code>Access-Control-Allow-Origin: https://app.yourdomain.com
Access-Control-Allow-Headers: Content-Type, X-Aiseoai-Token
Access-Control-Allow-Methods: GET, POST, OPTIONS</code></pre>



<p><strong>Use Cases:</strong></p>



<ul class="wp-block-list">
<li>Webflow frontend integrations</li>



<li>Ghost CMS themes</li>



<li>Custom web applications</li>



<li>JavaScript-based dashboards</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-3-core-endpoints">3. Core Endpoints</h2>



<h3 class="wp-block-heading" id="h-a-aiseomatic-v1-namespace-token-protected">A. aiseomatic/v1 Namespace (Token-Protected)</h3>



<p>All endpoints require <code>X-Aiseoai-Token</code> header.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h4 class="wp-block-heading" id="h-get-aiseomatic-v1-status">GET /aiseomatic/v1/status</h4>



<p><strong>Purpose:</strong> Retrieve plugin and site status information</p>



<p><strong>Authentication:</strong> Required (Token)</p>



<p><strong>Response Fields:</strong></p>



<ul class="wp-block-list">
<li>Plugin version</li>



<li>WordPress version</li>



<li>Site information</li>



<li>Edition (Pro/Lite)</li>



<li>License status</li>



<li>System health indicators</li>
</ul>



<p><strong>Example Response:</strong></p>



<p>json</p>



<pre class="wp-block-code"><code>{
  "plugin_version": "1.0.0",
  "wordpress_version": "6.4.2",
  "site_url": "https://your-site.com",
  "edition": "Pro",
  "license_status": "active",
  "health": "operational"
}</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h4 class="wp-block-heading" id="h-get-aiseomatic-v1-sitemap">GET /aiseomatic/v1/sitemap</h4>



<p><strong>Purpose:</strong> Retrieve AI-optimized sitemap</p>



<p><strong>Authentication:</strong> Required (Token)</p>



<p><strong>Response Format:</strong> <code>application/xml</code></p>



<p><strong>Features:</strong></p>



<ul class="wp-block-list">
<li>Basic sitemap (Lite edition)</li>



<li>Advanced sitemap with AI priorities (Pro edition)</li>



<li>Real-time content updates</li>



<li>AI crawler optimization</li>
</ul>



<p><strong>Response Type:</strong></p>



<p>xml</p>



<pre class="wp-block-code"><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"&gt;
  &lt;url&gt;
    &lt;loc&gt;https://your-site.com/page&lt;/loc&gt;
    &lt;lastmod&gt;2025-12-13&lt;/lastmod&gt;
    &lt;priority&gt;0.9&lt;/priority&gt;
  &lt;/url&gt;
&lt;/urlset&gt;
```

---

#### GET /aiseomatic/v1/posts

**Purpose:** Retrieve content list with optimization metrics

**Authentication:** Required (Token)

**Query Parameters:**
- `limit` (integer): Maximum results (default: 50)

**Example Request:**
```
GET /aiseomatic/v1/posts?limit=50</code></pre>



<p><strong>Response Fields:</strong></p>



<ul class="wp-block-list">
<li>Content ID</li>



<li>URL</li>



<li>AI Score</li>



<li>has_schema (boolean)</li>



<li>has_summary (boolean)</li>



<li>Modified date</li>
</ul>



<p><strong>Example Response:</strong></p>



<p>json</p>



<pre class="wp-block-code"><code>{
  "posts": &#91;
    {
      "id": 123,
      "url": "https://your-site.com/post-title",
      "score": 85,
      "has_schema": true,
      "has_summary": true,
      "modified": "2025-12-13T10:30:00Z"
    }
  ],
  "total": 150,
  "limit": 50
}</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h4 class="wp-block-heading" id="h-post-aiseomatic-v1-optimize-id">POST /aiseomatic/v1/optimize/{id}</h4>



<p><strong>Purpose:</strong> Trigger automatic optimization for specific content</p>



<p><strong>Authentication:</strong> Required (Token)</p>



<p><strong>Parameters:</strong></p>



<ul class="wp-block-list">
<li><code>{id}</code> &#8211; Content/post ID to optimize</li>
</ul>



<p><strong>Actions Performed:</strong></p>



<ul class="wp-block-list">
<li>Generate invisible AI summary (Pro)</li>



<li>Recalculate AI Score</li>



<li>Update optimization flags</li>



<li>Refresh structured data</li>
</ul>



<p><strong>Example Request:</strong></p>



<p>http</p>



<pre class="wp-block-code"><code>POST /aiseomatic/v1/optimize/123
X-Aiseoai-Token: YOUR_TOKEN</code></pre>



<p><strong>Response:</strong></p>



<p>json</p>



<pre class="wp-block-code"><code>{
  "success": true,
  "post_id": 123,
  "new_score": 87,
  "summary_generated": true,
  "optimization_time": "2025-12-13T10:35:00Z"
}</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h4 class="wp-block-heading" id="h-get-aiseomatic-v1-bots">GET /aiseomatic/v1/bots</h4>



<p><strong>Purpose:</strong> Retrieve recent AI bot visit logs</p>



<p><strong>Authentication:</strong> Required (Token)</p>



<p><strong>Query Parameters:</strong></p>



<ul class="wp-block-list">
<li><code>limit</code> (integer): Maximum results (default: 100)</li>
</ul>



<p><strong>Response Fields:</strong></p>



<ul class="wp-block-list">
<li>Bot name/identifier</li>



<li>Visited URL</li>



<li>Visit timestamp</li>



<li>User agent</li>



<li>IP address (if logged)</li>
</ul>



<p><strong>Example Response:</strong></p>



<p>json</p>



<pre class="wp-block-code"><code>{
  "visits": &#91;
    {
      "bot_name": "GPTBot",
      "url": "/blog/ai-seo-guide",
      "timestamp": "2025-12-13T10:20:00Z",
      "user_agent": "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GPTBot/1.0"
    },
    {
      "bot_name": "ClaudeBot",
      "url": "/services/local-seo",
      "timestamp": "2025-12-13T09:45:00Z",
      "user_agent": "ClaudeBot/1.0"
    }
  ],
  "total": 1234,
  "limit": 100
}</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h4 class="wp-block-heading" id="h-get-aiseomatic-v1-schema">GET /aiseomatic/v1/schema</h4>



<p><strong>Purpose:</strong> Retrieve headless-ready JSON-LD structured data</p>



<p><strong>Authentication:</strong> Required (Token)</p>



<p><strong>Response Format:</strong> Decoded JSON (not encoded in script tags)</p>



<p><strong>Usage:</strong> Ready for client-side injection</p>



<p><strong>Example Response:</strong></p>



<p>json</p>



<pre class="wp-block-code"><code>{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",
  "name": "Your Business Name",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "123 Main St",
    "addressLocality": "City",
    "postalCode": "12345"
  },
  "telephone": "+1-555-0100"
}</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h4 class="wp-block-heading" id="h-get-aiseomatic-v1-image-data-id">GET /aiseomatic/v1/image-data/{id}</h4>



<p><strong>Purpose:</strong> Retrieve AI-optimized image metadata</p>



<p><strong>Authentication:</strong> Public by default (configurable)</p>



<p><strong>Parameters:</strong></p>



<ul class="wp-block-list">
<li><code>{id}</code> &#8211; WordPress media/image ID</li>
</ul>



<p><strong>Response Fields:</strong></p>



<ul class="wp-block-list">
<li>Optimized alt text</li>



<li>Structured metadata</li>



<li>AI-generated descriptions</li>



<li>SEO recommendations</li>
</ul>



<p><strong>Example Response:</strong></p>



<p>json</p>



<pre class="wp-block-code"><code>{
  "image_id": 456,
  "alt_text": "Modern office workspace with natural lighting",
  "ai_description": "Professional workspace featuring ergonomic desk...",
  "optimization_score": 92,
  "recommendations": &#91;"Add more specific location context"]
}</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h4 class="wp-block-heading" id="h-get-aiseomatic-v1-ai-data-id">GET /aiseomatic/v1/ai-data/{id}</h4>



<p><strong>Purpose:</strong> Retrieve extracted AI data from post/page</p>



<p><strong>Authentication:</strong> Public by default (configurable)</p>



<p><strong>Parameters:</strong></p>



<ul class="wp-block-list">
<li><code>{id}</code> &#8211; Post/page ID</li>
</ul>



<p><strong>Response Fields:</strong></p>



<ul class="wp-block-list">
<li>Extracted entities</li>



<li>Content chunks</li>



<li>Semantic analysis</li>



<li>Topic classification</li>
</ul>



<p><strong>Example Response:</strong></p>



<p>json</p>



<pre class="wp-block-code"><code>{
  "post_id": 123,
  "entities": &#91;"WordPress", "SEO", "AI optimization"],
  "topics": &#91;"content marketing", "technical SEO"],
  "summary_chunks": &#91;"Introduction to...", "Key benefits..."],
  "semantic_score": 88
}</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading" id="h-b-aiseomatic-ai-v1-namespace-open-access">B. aiseomatic-ai/v1 Namespace (Open Access)</h3>



<p>Public endpoints &#8211; no authentication required.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h4 class="wp-block-heading" id="h-get-aiseomatic-ai-v1-score-id">GET /aiseomatic-ai/v1/score/{id}</h4>



<p><strong>Purpose:</strong> Retrieve AI optimization score for content</p>



<p><strong>Authentication:</strong> Public</p>



<p><strong>Parameters:</strong></p>



<ul class="wp-block-list">
<li><code>{id}</code> &#8211; Post/page ID</li>
</ul>



<p><strong>Response:</strong></p>



<p>json</p>



<pre class="wp-block-code"><code>{
  "post_id": 123,
  "score": 85,
  "category": "Very Good",
  "last_updated": "2025-12-13T10:00:00Z"
}</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h4 class="wp-block-heading" id="h-get-aiseomatic-ai-v1-recommendations-id">GET /aiseomatic-ai/v1/recommendations/{id}</h4>



<p><strong>Purpose:</strong> Get optimization improvement suggestions</p>



<p><strong>Authentication:</strong> Public</p>



<p><strong>Parameters:</strong></p>



<ul class="wp-block-list">
<li><code>{id}</code> &#8211; Post/page ID</li>
</ul>



<p><strong>Response:</strong></p>



<p>json</p>



<pre class="wp-block-code"><code>{
  "post_id": 123,
  "current_score": 75,
  "recommendations": &#91;
    {
      "priority": "high",
      "action": "Add AI summary",
      "estimated_impact": "+8 points"
    },
    {
      "priority": "medium",
      "action": "Enhance schema markup",
      "estimated_impact": "+5 points"
    }
  ]
}</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading" id="h-c-aiseoai-v1-namespace-integration-reporting">C. aiseoai/v1 Namespace (Integration/Reporting)</h3>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h4 class="wp-block-heading" id="h-post-aiseoai-v1-perf-hit">POST /aiseoai/v1/perf/hit</h4>



<p><strong>Purpose:</strong> Send lightweight performance/visit signal</p>



<p><strong>Authentication:</strong> Public (rate-limited)</p>



<p><strong>Parameters:</strong></p>



<ul class="wp-block-list">
<li><code>p</code> &#8211; Page identifier or URL</li>
</ul>



<p><strong>Use Case:</strong> Analytics tracking, performance monitoring</p>



<p><strong>Rate Limit:</strong> Strictly enforced</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h4 class="wp-block-heading" id="h-get-aiseoai-v1-insights">GET /aiseoai/v1/insights</h4>



<p><strong>Purpose:</strong> Retrieve comprehensive insights snapshot</p>



<p><strong>Authentication:</strong> Admin required</p>



<p><strong>Response:</strong> Site-wide analytics and metrics</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h4 class="wp-block-heading" id="h-get-aiseoai-v1-snapshot-id">GET /aiseoai/v1/snapshot/{id}</h4>



<p><strong>Purpose:</strong> Export complete content snapshot</p>



<p><strong>Authentication:</strong> Signature, Admin, or Public mode</p>



<p><strong>Query Parameters:</strong></p>



<ul class="wp-block-list">
<li><code>sig</code> &#8211; Signature for authenticated access</li>
</ul>



<p><strong>Features:</strong></p>



<ul class="wp-block-list">
<li>ETag support for caching</li>



<li>HTTP caching headers</li>



<li>Reduced bandwidth transfers</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h4 class="wp-block-heading" id="h-get-aiseoai-v1-chunks-id">GET /aiseoai/v1/chunks/{id}</h4>



<p><strong>Purpose:</strong> Export content chunk data</p>



<p><strong>Authentication:</strong> Signature, Admin, or Public mode</p>



<p><strong>Query Parameters:</strong></p>



<ul class="wp-block-list">
<li><code>sig</code> &#8211; Signature for authenticated access</li>
</ul>



<p><strong>Use Case:</strong> Detailed content analysis, migration, backup</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading" id="h-common-error-responses">Common Error Responses</h3>



<p><strong>401 Unauthorized:</strong></p>



<p>json</p>



<pre class="wp-block-code"><code>{
  "code": "rest_forbidden",
  "message": "Missing or invalid authentication token",
  "data": {"status": 401}
}</code></pre>



<p><strong>429 Too Many Requests:</strong></p>



<p>json</p>



<pre class="wp-block-code"><code>{
  "code": "rest_rate_limit",
  "message": "Rate limit exceeded. Try again in 10 minutes.",
  "data": {"status": 429}
}</code></pre>



<p><strong>403 Forbidden:</strong></p>



<p>json</p>



<pre class="wp-block-code"><code>{
  "code": "rest_forbidden",
  "message": "Missing or invalid signature",
  "data": {"status": 403}
}</code></pre>



<p><strong>404 Not Found:</strong></p>



<p>json</p>



<pre class="wp-block-code"><code>{
  "code": "rest_post_invalid_id",
  "message": "Invalid post ID",
  "data": {"status": 404}
}</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-4-implementation-examples">4. Implementation Examples</h2>



<h3 class="wp-block-heading" id="h-curl-status-check-with-token">cURL (Status Check with Token)</h3>



<p>bash</p>



<pre class="wp-block-code"><code>curl -X GET "https://your-site.com/wp-json/aiseomatic/v1/status" \
  -H "X-Aiseoai-Token: YOUR_TOKEN"</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading" id="h-javascript-browser-webflow-shopify">JavaScript (Browser &#8211; Webflow/Shopify)</h3>



<p><strong>Prerequisites:</strong></p>



<ul class="wp-block-list">
<li>Add domain to CORS allowlist in AISEOmatic settings</li>
</ul>



<p>javascript</p>



<pre class="wp-block-code"><code>fetch('https://your-site.com/wp-json/aiseomatic/v1/posts?limit=20', {
  headers: { 'X-Aiseoai-Token': 'YOUR_TOKEN' },
  credentials: 'omit'
})
.then(response =&gt; response.json())
.then(data =&gt; console.log(data))
.catch(error =&gt; console.error('Error:', error));</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading" id="h-next-js-server-side-api-route-recommended">Next.js (Server-Side API Route &#8211; Recommended)</h3>



<p><strong>File:</strong> <code>app/api/aiseomatic/posts/route.js</code></p>



<p>javascript</p>



<pre class="wp-block-code"><code>export async function GET() {
  const response = await fetch(
    'https://your-site.com/wp-json/aiseomatic/v1/posts?limit=50',
    {
      headers: { 'X-Aiseoai-Token': process.env.AISEOAI_TOKEN }
    }
  );
  
  const data = await response.text();
  return new Response(data, { 
    status: response.status,
    headers: { 'Content-Type': 'application/json' }
  });
}</code></pre>



<p><strong>Benefits:</strong></p>



<ul class="wp-block-list">
<li>Token kept server-side (secure)</li>



<li>No client exposure</li>



<li>CORS not required</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading" id="h-python-requests-library">Python (requests library)</h3>



<p>python</p>



<pre class="wp-block-code"><code>import requests

response = requests.get(
    "https://your-site.com/wp-json/aiseomatic/v1/schema",
    headers={"X-Aiseoai-Token": "YOUR_TOKEN"}
)

print(response.status_code)
print(response.json())</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading" id="h-ruby-faraday">Ruby (Faraday)</h3>



<p>ruby</p>



<pre class="wp-block-code"><code>require 'faraday'

conn = Faraday.new('https://your-site.com')
response = conn.get(
  '/wp-json/aiseomatic/v1/bots',
  nil,
  {'X-Aiseoai-Token' =&gt; 'YOUR_TOKEN'}
)

puts response.status
puts response.body</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading" id="h-shopify-app-proxy-pattern">Shopify (App Proxy Pattern)</h3>



<p><strong>Server-Side (Node.js/Express):</strong></p>



<p>javascript</p>



<pre class="wp-block-code"><code>app.get('/apps/aiseo-proxy', async (req, res) =&gt; {
  const apiResponse = await fetch(
    'https://your-site.com/wp-json/aiseomatic/v1/posts',
    {
      headers: { 'X-Aiseoai-Token': process.env.AISEOAI_TOKEN }
    }
  );
  
  const data = await apiResponse.json();
  res.json(data);
});</code></pre>



<p><strong>Benefits:</strong></p>



<ul class="wp-block-list">
<li>Token remains on server</li>



<li>Avoids storefront CORS issues</li>



<li>Clean Shopify theme integration</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading" id="h-ghost-cms-integration">Ghost CMS Integration</h3>



<p><strong>Frontend (JavaScript):</strong> Use JavaScript example with CORS allowlist configuration.</p>



<p><strong>Server-Side (Helpers/Custom Route):</strong> Preferred for security &#8211; server-to-server calls with token.</p>



<p>javascript</p>



<pre class="wp-block-code"><code><em>// Ghost custom helper or route</em>
const fetch = require('node-fetch');

async function getAISeoData() {
  const response = await fetch(
    'https://your-site.com/wp-json/aiseomatic/v1/posts',
    {
      headers: { 'X-Aiseoai-Token': process.env.AISEOAI_TOKEN }
    }
  );
  
  return await response.json();
}</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading" id="h-webflow-client-side">Webflow (Client-Side)</h3>



<p><strong>Implementation:</strong></p>



<p>javascript</p>



<pre class="wp-block-code"><code>&lt;script&gt;
  fetch('https://your-site.com/wp-json/aiseomatic/v1/score/123', {
    headers: { 'X-Aiseoai-Token': 'YOUR_TOKEN' }
  })
  .then(r =&gt; r.json())
  .then(data =&gt; {
    document.getElementById('ai-score').textContent = data.score;
  });
&lt;/script&gt;
```

**Configuration Required:**
- Add Webflow domain to CORS allowlist
- Consider security implications of exposed token
- Alternative: Proxy through your server

---

### Signed Link Access (Snapshot/Chunks)

**URL Format:**
```
GET /wp-json/aiseoai/v1/snapshot/{id}?sig=GENERATED_SIGNATURE</code></pre>



<p><strong>Obtaining Signed URL:</strong></p>



<ol class="wp-block-list">
<li>Generate within WordPress admin</li>



<li>Use provided internal tool</li>



<li>Or enable public mode (if appropriate)</li>
</ol>



<p><strong>Features:</strong></p>



<ul class="wp-block-list">
<li>ETag support for efficient caching</li>



<li>HTTP caching headers reduce bandwidth</li>



<li>Signature expiration for security</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-5-integration-best-practices">5. Integration Best Practices</h2>



<h3 class="wp-block-heading" id="h-security-guidelines">Security Guidelines</h3>



<p><strong>1. Never Expose Tokens Client-Side</strong></p>



<ul class="wp-block-list">
<li>Always make server-to-server calls when possible</li>



<li>Use Next.js API routes</li>



<li>Shopify app servers</li>



<li>Cloud Functions (AWS Lambda, Google Cloud Functions)</li>



<li>Backend proxies</li>
</ul>



<p><strong>2. Client-Side Calls (When Necessary)</strong></p>



<ul class="wp-block-list">
<li>Allowlist domain in CORS settings</li>



<li>Respect rate limits strictly</li>



<li>Monitor for token exposure</li>



<li>Consider using signed links instead</li>
</ul>



<p><strong>3. Rich Export Security</strong></p>



<ul class="wp-block-list">
<li>Use signed links for snapshots/chunks</li>



<li>Restrict to admin access when possible</li>



<li>Enable public mode only if appropriate</li>



<li>Implement additional application-level security</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading" id="h-error-handling">Error Handling</h3>



<p><strong>404 Errors:</strong></p>



<ul class="wp-block-list">
<li>Verify content ID exists</li>



<li>Check URL construction</li>



<li>Validate endpoint path</li>
</ul>



<p><strong>401 Errors:</strong></p>



<ul class="wp-block-list">
<li>Confirm <code>X-Aiseoai-Token</code> header present</li>



<li>Verify token value correctness</li>



<li>Check token hasn&#8217;t expired</li>
</ul>



<p><strong>429 Errors:</strong></p>



<ul class="wp-block-list">
<li>Reduce request frequency</li>



<li>Implement request queuing</li>



<li>Add exponential backoff</li>



<li>Cache responses when possible</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading" id="h-performance-optimization">Performance Optimization</h3>



<p><strong>Caching Strategy:</strong></p>



<ul class="wp-block-list">
<li>Implement response caching</li>



<li>Use ETag headers for snapshots</li>



<li>Cache static data (schema, config)</li>



<li>Invalidate on content updates</li>
</ul>



<p><strong>Request Optimization:</strong></p>



<ul class="wp-block-list">
<li>Batch requests when possible</li>



<li>Use appropriate <code>limit</code> parameters</li>



<li>Implement pagination for large datasets</li>



<li>Compress responses (gzip)</li>
</ul>



<p><strong>Monitoring:</strong></p>



<ul class="wp-block-list">
<li>Track API usage patterns</li>



<li>Monitor rate limit proximity</li>



<li>Log errors for debugging</li>



<li>Measure response times</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-6-quick-reference-guide">6. Quick Reference Guide</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Endpoint</th><th>Auth</th><th>Description</th></tr></thead><tbody><tr><td><code>GET /aiseomatic/v1/status</code></td><td>Token</td><td>Plugin/site status</td></tr><tr><td><code>GET /aiseomatic/v1/sitemap</code></td><td>Token</td><td>AI-optimized XML sitemap</td></tr><tr><td><code>GET /aiseomatic/v1/posts</code></td><td>Token</td><td>Content list with scores</td></tr><tr><td><code>POST /aiseomatic/v1/optimize/{id}</code></td><td>Token</td><td>Auto-optimize content</td></tr><tr><td><code>GET /aiseomatic/v1/bots</code></td><td>Token</td><td>AI bot visit logs</td></tr><tr><td><code>GET /aiseomatic/v1/schema</code></td><td>Token</td><td>Headless JSON-LD</td></tr><tr><td><code>GET /aiseomatic/v1/image-data/{id}</code></td><td>Public</td><td>Image AI metadata</td></tr><tr><td><code>GET /aiseomatic/v1/ai-data/{id}</code></td><td>Public</td><td>Post AI extraction</td></tr><tr><td><code>GET /aiseomatic-ai/v1/score/{id}</code></td><td>Public</td><td>Content AI score</td></tr><tr><td><code>GET /aiseomatic-ai/v1/recommendations/{id}</code></td><td>Public</td><td>Optimization suggestions</td></tr><tr><td><code>POST /aiseoai/v1/perf/hit</code></td><td>Public</td><td>Performance signal</td></tr><tr><td><code>GET /aiseoai/v1/insights</code></td><td>Admin</td><td>Insights snapshot</td></tr><tr><td><code>GET /aiseoai/v1/snapshot/{id}</code></td><td>Signature/Admin</td><td>Content snapshot export</td></tr><tr><td><code>GET /aiseoai/v1/chunks/{id}</code></td><td>Signature/Admin</td><td>Content chunks export</td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-7-deployment-checklist">7. Deployment Checklist</h2>



<h3 class="wp-block-heading" id="h-pre-launch-testing">Pre-Launch Testing</h3>



<ul class="wp-block-list">
<li>Test <code>GET /aiseomatic/v1/status</code> (expect HTTP 200)</li>



<li>Verify token authentication working</li>



<li>Confirm CORS allowlist configured (if needed)</li>



<li>Test all required endpoints</li>



<li>Validate response formats</li>



<li>Check error handling</li>
</ul>



<h3 class="wp-block-heading" id="h-security-configuration">Security Configuration</h3>



<ul class="wp-block-list">
<li>API token generated and stored securely</li>



<li>Token stored server-side only (never client)</li>



<li>CORS allowlist configured if browser calls needed</li>



<li>Signed exports configured (if using snapshots/chunks)</li>



<li>Rate limiting understood and planned for</li>
</ul>



<h3 class="wp-block-heading" id="h-integration-setup">Integration Setup</h3>



<ul class="wp-block-list">
<li>Server-side proxy implemented (if exposing to client)</li>



<li>Error handling implemented</li>



<li>Caching strategy defined</li>



<li>Monitoring/logging configured</li>



<li>Documentation created for team</li>
</ul>



<h3 class="wp-block-heading" id="h-optional-configuration">Optional Configuration</h3>



<ul class="wp-block-list">
<li>Public snapshot mode enabled/disabled as needed</li>



<li>Custom rate limits requested if needed</li>



<li>Webhook notifications configured</li>



<li>Backup/export automation set up</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-support-amp-assistance"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4e7.png" alt="📧" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Support &amp; Assistance</h2>



<p>For API integration support:</p>



<p><strong>Email:</strong> <a href="mailto:contact@aiseomatic.com">contact@aiseomatic.com</a></p>



<p><strong>Response Time:</strong> Under 4 business hours</p>



<p><strong>Documentation:</strong> Comprehensive guides available</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p><strong>© 2025 — AISEOmatic — All Rights Reserved</strong></p>



<p><strong>API Version:</strong> 1.0 <strong>Last Updated:</strong> December 13, 2025</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p><em>This API documentation covers all public and authenticated endpoints. Additional endpoints may be available for specific use cases &#8211; contact support for custom integration requirements.</em></p>
<p>The post <a href="https://aiseomatic.com/docs/aiseomatic-rest-api-integration-guide-headless-multi-platform/">AISEOmatic — REST API Integration Guide (Headless &amp; Multi-Platform)</a> appeared first on <a href="https://aiseomatic.com">AISEOmatic</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://aiseomatic.com/docs/aiseomatic-rest-api-integration-guide-headless-multi-platform/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
