# Seonix (remote · api.seonix.ai)

Automated SEO: Site Health, fix plan, Search Console, keywords and draft scoring for AI agents.

- Trust score: 39/100 (low)
- Change this week: −41
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `api.seonix.ai`: 39/100 (this document), [markdown](https://verifymcp.io/servers/pahaa97-seonix/api.md), [page](https://verifymcp.io/servers/pahaa97-seonix/api)

## Channel facts

- Endpoint: `https://api.seonix.ai/mcp`
- Transports: `streamable-http`
- Auth: `required`
- Version: `1.0.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 97/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - The endpoint enforces authorisation, advertised via RFC 9728 protected-resource metadata.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
  - The authorisation server supports Client ID Metadata Documents, the current MCP client-registration mechanism.
- **Transport & Reachability**: 0/100
  - Transport blocked by authentication: the endpoint requires auth we don't have to verify streamable-http.
- **Schema Quality & AI Usability**: 0/100
  - Schema blocked by authentication: the endpoint requires auth we don't have to read it.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 0/100
  - Tool coverage blocked by authentication: the endpoint requires auth we don't have to read its tools.
- **Tool Safety**: 0/100
  - Tool safety blocked by authentication: the endpoint requires auth we don't have to read its tools.
- **Capabilities**: 0/100
  - Capabilities blocked by authentication: the endpoint requires auth we don't have to read them.

**Unverified: 6 categories.** Categories scored 0 because we could not verify them: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm.

## Install

### How do I install the Seonix MCP server?

Seonix is a hosted endpoint at https://api.seonix.ai/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http pahaa97-seonix 'https://api.seonix.ai/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "pahaa97-seonix": {
      "url": "https://api.seonix.ai/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "pahaa97-seonix": {
      "type": "http",
      "url": "https://api.seonix.ai/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.pahaa97-seonix]
url = "https://api.seonix.ai/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "pahaa97-seonix": {
      "type": "remote",
      "url": "https://api.seonix.ai/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add pahaa97-seonix --url 'https://api.seonix.ai/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  pahaa97-seonix:
    url: "https://api.seonix.ai/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "pahaa97-seonix": {
      "Transport": "http",
      "Url": "https://api.seonix.ai/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add pahaa97-seonix -t streamable-http -u 'https://api.seonix.ai/mcp'
```

### Other

```json
{
  "mcpServers": {
    "pahaa97-seonix": {
      "type": "http",
      "url": "https://api.seonix.ai/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-03 (score 39, −43)

- [security regression] Endpoint reachability: reachable → behind authorisation
- [security regression] Stability: 0.23 → unverified
- [security regression] Tool safety: pass → unverified
- [security regression] Transport: pass → unverified
- [security improvement] Authorization: fail → pass
- [security] First check of Authorization: pass
- [functional regression] Capabilities: pass → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional regression] Schema quality: 100 → unverified

### 2026-11-02 (score 82, +1)

No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-31 (score 81, +1)

No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-30 (score 80, 0)

- [security] Tool “get_site_dna” rewrote its description, which is the text the model reads

### 2026-10-29 (score 80, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-27 (score 79, +1)

- [functional improvement] Stability: unverified → 0.03

### 2026-10-26 (score 78, +42)

- [security improvement] Transport: unverified → pass
- [security improvement] Injection markers: unverified → pass
- [security] First check of Judged manipulation: pass
- [security] Authorization: Authorisation is enforced on tool calls, but the challenge carries no valid RFC 9728 metadata, so a client cannot discover where to get a token.
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Schema quality: unverified → 100
- [functional improvement] Tool coverage: unverified → 100
- [functional] First check of Schema quality: fail
- [functional] First check of Tool coverage: 93
- [functional] First check of Destructive annotations: 100
- [functional] First check of Schema quality: pass
- [functional] First check of Schema quality: good

### 2026-10-20 (score 36)

First indexed and scored.

## MCP tools (41)

### `acknowledge_issue` (~109 tokens)

Mark an issue as intentional

Mark an issue thread as an intentional choice (write scope — ask the user first): it stops counting against the score and stays marked across scans. Typical uses: noindex on pagination, a deliberately short page, a redirect that must stay. Undo with unacknowledge_issue.

Input parameters:

- `issue_id` (string, required): Issue id from list_issues / get_issue.
- `project_id` (string): Project id or slug.
- `reason` (string): Why it is intentional (shown in the dashboard).

### `analyze_seo` (~189 tokens)

Score a draft

Run Seonix's deterministic SEO + readability + AI-answer (AEO) scoring on ANY draft you pass (title + HTML + meta + keyphrase). No AI credits are spent. Use it as a linter: fix the problems it lists, re-run until the score is ≥ 80, then publish.

Input parameters:

- `content_type` (string): post (default) | page.
- `featured_image_alt` (string)
- `focus_keyphrase` (string)
- `has_featured_image` (boolean)
- `html` (string, required): Body HTML of the draft.
- `language` (string): Expected language code (default: project language).
- `meta_description` (string)
- `project_id` (string): Project id or slug (used for language/domain context).
- `slug` (string)
- `title` (string, required): The page/article title (H1).

### `apply_fix` (~194 tokens)

Apply Seonix fixes

Have Seonix apply fixes on the live site through the WordPress plugin (write scope — tell the user exactly which issue codes and get a yes first). Works for get_fix_plan items with fix_tier auto or ai_assist (wp_plugin_fixable); the site must have a connected WordPress channel. Starts a run (preview → Seonix suggestions → apply) and returns its id; poll get_fix_run until status is completed, partial or failed. Undo with rollback_fix.

Input parameters:

- `issue_codes` (string, required): Comma-separated issue codes from get_fix_plan whose fix_tier is auto or ai_assist (wp_plugin_fixable). Seonix fixes them on the live WordPress site through its plugin.
- `issue_ids` (string): Optional comma-separated scan issue ids (from list_issues evidence) to restrict the run to specific pages.
- `project_id` (string): Project id or slug.

### `get_account` (~52 tokens)

Account overview

The Seonix account behind this API key: email, every project with its plan, whether the MCP is available for it (paid plans only), AI/publish permissions and this month's article quota. Call this first.

### `get_ai_visibility` (~76 tokens)

AI visibility

The latest AI Visibility snapshot: how often the brand appears in ChatGPT answers for the project's prompts, which competitors are mentioned, top cited sources. Measurement covers ChatGPT only.

Input parameters:

- `include_answers` (boolean): Include the answer excerpt and cited sources per prompt (default false).
- `project_id` (string): Project id or slug.

### `get_article` (~105 tokens)

Article detail

One article with SEO title, meta description, excerpt, key takeaways, the stored SEO analysis, publications (where it is live) and optionally the full HTML.

Input parameters:

- `article_id` (string, required): Article id from list_articles.
- `include_full_analysis` (boolean): Return every stored check, not just the failing ones (default false).
- `include_html` (boolean): Include the full HTML body (can be large).
- `project_id` (string): Project id or slug.

### `get_blog_integration_guide` (~98 tokens)

Blog integration guide

The Seonix skill for connecting a custom-built site or blog as a publishing channel (endpoints, payload, read routes, media, self-test, hand-over). Same text as https://seonix.ai/SKILL.md. Pass section to get one step.

Input parameters:

- `section` (string): Optional: a step heading substring to return only that part (e.g. 'Step 3' or 'self-test').

### `get_calendar` (~63 tokens)

Content calendar

Calendar slots for a month: planned / writing / completed / failed, kind create or optimize, source manual or autopilot, linked article ids.

Input parameters:

- `month` (string): YYYY-MM (default: current month).
- `project_id` (string): Project id or slug.

### `get_cluster` (~75 tokens)

Cluster detail

One cluster with its member keywords, the site pages already covering it, the live SERP snapshot status and the competitor insights Seonix extracted (must-mention entities, recommended blocks, topical coverage, gaps).

Input parameters:

- `cluster_id` (string, required): Cluster id from list_clusters.
- `project_id` (string): Project id or slug.

### `get_fix_plan` (~337 tokens)

Fix plan

An ordered, implementable plan for every open problem: what to change, where (page / site-wide / theme), on which URLs, with the target example. Returned as structured items; pass include_markdown=true to also get a Markdown checklist in the `[HIGH] Title — Location / Issue / Fix` format. Pages with limit/offset. Items with wp_plugin_fixable / fix_tier auto or ai_assist can be applied by Seonix itself through apply_fix (WordPress). After applying fixes, call start_scan (with the user's yes) and get_site_health again to confirm what cleared.

Input parameters:

- `category` (string): Only one pillar: seo | ai | speed | technical.
- `codes` (string): Comma-separated issue codes to include (default: every open problem).
- `include_markdown` (boolean): Also return the plan as a Markdown checklist (doubles the size; default false).
- `limit` (integer): Same as max_items (accepted so every list tool pages with limit/offset).
- `max_items` (integer): Problems to include, highest priority first (default 10, max 50). Use codes/category or offset to see the rest.
- `max_pages` (integer): URLs listed per problem (default 3, max 50); the rest are reachable via list_issues code=…
- `offset` (integer): Skip this many problems (for paging through a long plan).
- `project_id` (string): Project id or slug.
- `verbose` (boolean): Add why-it-matters, step-by-step instructions and warnings to every item (default false).

### `get_fix_run` (~69 tokens)

Fix run status

Status and outcome of an apply_fix run: counts (applied / already correct / no-op / errors) and the per-item results with the before and after values.

Input parameters:

- `project_id` (string): Project id or slug.
- `run_id` (string, required): Run id returned by apply_fix.

### `get_issue` (~94 tokens)

Issue detail

One issue with the evidence the scanner captured on the page (the offending tag, heading outline, redirect chain, JSON-LD block…) and the remediation profile: why it matters, bad vs good example, how-to-fix steps, whether Seonix can fix it through the WordPress plugin.

Input parameters:

- `issue_id` (string, required): Issue id from list_issues.
- `project_id` (string): Project id or slug.

### `get_plan_status` (~72 tokens)

Plan status

Plan and entitlements for one project: whether the MCP is available, AI generation and publishing permissions, article quota used/limit, and the upgrade link when the project is on Free.

Input parameters:

- `project_id` (string): Project id or slug. Optional when the account has one project or the connector URL names it.

### `get_playbook` (~52 tokens)

Get playbook

Read one Seonix playbook by name (same text as the prompt of that name) — for clients that do not surface MCP prompts.

Input parameters:

- `name` (string, required): Playbook name from list_playbooks.

### `get_project` (~70 tokens)

Project overview

One project: site URL, language, autopilot mode and cadence, Search Console connection, publishing channels, plan and quota, SEO progress level, dashboard links. Paid plans only.

Input parameters:

- `project_id` (string): Project id or slug. Optional when the account has one project or the connector URL names it.

### `get_remediation_profile` (~66 tokens)

Remediation profile

The Seonix remediation profile for an issue code (no project needed): why it matters, bad/good example, fix steps, fix tier, warnings. Use when you meet an unfamiliar code.

Input parameters:

- `code` (string, required): Issue code, e.g. meta_description_missing.

### `get_results` (~79 tokens)

Results ledger

Proof-of-ranking ledger: for each published article, Search Console clicks / impressions / position now vs the previous period, with trend. Requires Search Console.

Input parameters:

- `limit` (integer): Articles per page (default 30, max 100).
- `offset` (integer): Skip this many articles.
- `project_id` (string): Project id or slug.

### `get_scan_status` (~69 tokens)

Scan status

Progress of one scan: stage, pages found / scanned, counts, whether background probes are still pending. Poll every 5–10 seconds while status is not completed.

Input parameters:

- `project_id` (string): Project id or slug.
- `scan_id` (string, required): Scan id from list_scans.

### `get_seo_progress` (~76 tokens)

SEO progress

The project's SEO Progress ladder: current level and stage, what the next level requires (published articles, quality, Search Console, cluster coverage) and the publishing cadence Seonix recommends for this level.

Input parameters:

- `project_id` (string): Project id or slug. Optional when the account has one project or the connector URL names it.

### `get_site_dna` (~86 tokens)

Site DNA

The project's brand profile Seonix extracted and the owner refined: what the business does, audience, tone, language, writing instructions, topics to avoid — plus the ready-to-use prompt block. Read it before writing or rewriting anything for the site.

Input parameters:

- `project_id` (string): Project id or slug. Optional when the account has one project or the connector URL names it.

### `get_site_health` (~115 tokens)

Site Health

Site Health for a project: overall score, the four pillars (SEO, AI search, speed, technical), counts of active / fixed / came-back problems, the top open problems by priority, the last scan and the next scheduled check. Start here for any "what's wrong with my site" question.

Input parameters:

- `project_id` (string): Project id or slug (optional for single-project accounts).
- `top_tasks` (integer): How many open problems to include, ordered by priority (default 10, max 50).

### `gsc_coverage` (~69 tokens)

Indexing coverage

Indexing coverage Seonix collected from Search Console: indexed / not indexed / unknown counts, sitemap status, and the pages that are not indexed with Google's verdict.

Input parameters:

- `project_id` (string): Project id or slug. Optional when the account has one project or the connector URL names it.

### `gsc_impact` (~59 tokens)

Seonix impact

Seonix's own impact estimate: current vs potential traffic, keyword coverage, article impacts and top keyword opportunities.

Input parameters:

- `project_id` (string): Project id or slug. Optional when the account has one project or the connector URL names it.

### `gsc_opportunities` (~138 tokens)

Striking-distance opportunities

Keywords already ranking in a position band (default 4–20) with impressions, ordered by the traffic Seonix estimates they would bring at the target position. The classic striking-distance list: refresh those pages first.

Input parameters:

- `days` (integer): Window length (default 28, 7–90).
- `limit` (integer): Rows to return (default 30, max 200).
- `max_position` (number): Upper bound of the position band (default 20).
- `min_position` (number): Lower bound of the position band (default 4).
- `project_id` (string): Project id or slug.

### `gsc_page_queries` (~105 tokens)

Queries for a page

The queries one page ranks for (Search Console page+query report filtered to that URL). Use it before rewriting a page's title, meta description or headings.

Input parameters:

- `days` (integer): Window length (default 28, 7–90).
- `limit` (integer): Rows to return (default 25, max 200).
- `project_id` (string): Project id or slug.
- `url` (string, required): Exact page URL as Search Console reports it.

### `gsc_status` (~64 tokens)

Search Console status

Whether Google Search Console is connected for the project, which property, and the last date with published data. Call before other gsc_* tools.

Input parameters:

- `project_id` (string): Project id or slug. Optional when the account has one project or the connector URL names it.

### `gsc_timeseries` (~96 tokens)

Search metrics over time

Daily clicks, impressions, average position and potential traffic for the last N days (7–90), plus the previous-period average position for comparison.

Input parameters:

- `days` (integer): Window length ending on the last day Search Console has published (default 28, 7–90).
- `limit` (integer): Rows to return (default 25, max 200).
- `project_id` (string): Project id or slug.

### `gsc_top_pages` (~86 tokens)

Top pages

Top landing pages from Search Console for the window: clicks, impressions, CTR, average position.

Input parameters:

- `days` (integer): Window length ending on the last day Search Console has published (default 28, 7–90).
- `limit` (integer): Rows to return (default 25, max 200).
- `project_id` (string): Project id or slug.

### `gsc_top_queries` (~86 tokens)

Top queries

Top search queries from Search Console for the window: clicks, impressions, CTR, average position.

Input parameters:

- `days` (integer): Window length ending on the last day Search Console has published (default 28, 7–90).
- `limit` (integer): Rows to return (default 25, max 200).
- `project_id` (string): Project id or slug.

### `list_articles` (~157 tokens)

List articles

Articles in the project (Seonix-generated and imported): status, scores, keyphrase, cluster, publish dates. Paginated.

Input parameters:

- `limit` (integer): Same as per_page (accepted so every list tool pages with limit/offset).
- `offset` (integer): Skip this many articles (converted to page/per_page).
- `page` (integer): 1-based page (default 1).
- `per_page` (integer): Default 20, max 100.
- `project_id` (string): Project id or slug.
- `status` (string): Filter: draft | scheduled | published. With a filter the list is built from the light index (id, title, status, keyphrase) and paged after filtering.

### `list_channels` (~68 tokens)

Publishing channels

Connected publishing channels (WordPress, Ghost, Webflow, Shopify, Wix, Custom API) with status. A project needs a connected channel before anything can be published.

Input parameters:

- `project_id` (string): Project id or slug. Optional when the account has one project or the connector URL names it.

### `list_clusters` (~101 tokens)

Keyword clusters

Topic clusters (one target page each) with primary keyword, intent, page type, priority, volume, Search Console impressions and winnability. The content plan is built from these.

Input parameters:

- `limit` (integer): Page size (default 20, max 100).
- `offset` (integer): Skip this many clusters.
- `project_id` (string): Project id or slug.
- `status` (string): draft | approved | brief_ready | content_created.

### `list_issues` (~141 tokens)

List issues

Persistent issue threads (one per problem per page) with status open / solved / regressed, filterable by code, URL and status. Paginated. Each item carries the issue id for get_issue.

Input parameters:

- `code` (string): Only this issue code, e.g. images_missing_alt.
- `limit` (integer): Page size (default 25, max 200).
- `offset` (integer)
- `project_id` (string): Project id or slug.
- `status` (string): open | solved | regressed. Default: open and regressed (everything still broken).
- `url` (string): Only issues on this page URL.

### `list_keyword_candidates` (~123 tokens)

Keyword candidates

Keywords Seonix researched for the project (seed AI, planner, Search Console, autocomplete, user-added) with volume, competition, Search Console numbers and cluster membership. Paginated; filter by status and substring.

Input parameters:

- `limit` (integer): Default 100, max 500.
- `offset` (integer)
- `project_id` (string): Project id or slug.
- `query` (string): Substring filter on the keyword.
- `status` (string): Comma-separated: pending, approved, rejected, filtered_out. Default: approved and pending.

### `list_playbooks` (~70 tokens)

List playbooks

The Seonix playbooks (step-by-step procedures that tell you which tools to call): promote a site, work through a page, fix issues in code, keyword map, internal links, write an article, striking distance, monthly report, connect a blog. Use get_playbook to read one.

### `list_projects` (~38 tokens)

List projects

Projects (websites) in the account with id, slug, name and site URL. Use the id or slug as project_id in other tools.

### `list_scans` (~47 tokens)

List scans

Recent site scans with status, pages scanned and severity counts.

Input parameters:

- `limit` (integer): Default 10, max 50.
- `project_id` (string): Project id or slug.

### `rollback_fix` (~66 tokens)

Roll back a fix run

Reverse the changes an apply_fix run made on the live site, restoring the values the plugin snapshotted before applying (write scope — ask the user first).

Input parameters:

- `project_id` (string): Project id or slug.
- `run_id` (string, required): Run id returned by apply_fix.

### `score_article` (~58 tokens)

Score an existing article

Re-run the SEO + readability scoring on an article already in Seonix (no changes saved) and list its problems.

Input parameters:

- `article_id` (string, required): Article id from list_articles.
- `project_id` (string): Project id or slug.

### `start_scan` (~107 tokens)

Start a site scan

Start a fresh Site Health scan of the project's site (write scope — ask the user first). Returns the scan id; poll get_scan_status every 10 seconds until status is completed, then call get_site_health / get_fix_plan to see what cleared. One scan at a time per project; the plan's page budget applies.

Input parameters:

- `project_id` (string): Project id or slug.
- `scope` (string): website (default: crawl the site) | sitemap (only sitemap URLs).

### `unacknowledge_issue` (~75 tokens)

Un-mark an intentional issue

Remove the intentional mark from an issue thread so it is scored and counted again (write scope).

Input parameters:

- `issue_id` (string, required): Issue id from list_issues / get_issue.
- `project_id` (string): Project id or slug.
- `reason` (string): Why it is intentional (shown in the dashboard).

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/pahaa97-seonix/api#diagnostics

## Score history

- 2026-11-05: 39
- 2026-11-04: 39
- 2026-11-03: 39
- 2026-11-02: 82
- 2026-11-01: 81
- 2026-10-31: 81
- 2026-10-30: 80
- 2026-10-29: 80
- 2026-10-28: 79
- 2026-10-27: 79
- 2026-10-26: 78
- 2026-10-25: 36
- 2026-10-24: 36
- 2026-10-23: 36
- 2026-10-22: 36
- 2026-10-21: 36
- 2026-10-20: 36

## Common questions

### What is the Seonix MCP server?

Seonix is an MCP server listed in the public MCP registry as io.github.pahaa97/seonix. Automated SEO: Site Health, fix plan, Search Console, keywords and draft scoring for AI agents. This page covers its hosted endpoint (https://api.seonix.ai/mcp).

### Is the Seonix MCP server safe to use?

Seonix scores 39 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Seonix MCP server expose?

Seonix exposes 41 tools: acknowledge_issue, analyze_seo, apply_fix, get_account, get_ai_visibility, and 36 more. Their descriptions and schemas cost roughly 3,900 tokens of context every time the server is loaded.

### Does the Seonix MCP server require authentication?

Yes. Seonix asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

### Is the Seonix MCP server still maintained?

Seonix is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://api.seonix.ai/mcp
- Authorisation metadata: https://api.seonix.ai/.well-known/oauth-protected-resource/mcp
- Website: https://seonix.ai/mcp
- Changelog RSS feed: https://verifymcp.io/servers/pahaa97-seonix/api.xml
- Changelog JSON feed: https://verifymcp.io/servers/pahaa97-seonix/api.json
- HTML version of this page: https://verifymcp.io/servers/pahaa97-seonix/api
