Dokumentation der Textfocus-APIs

Inhaltsverzeichnis

Einführung

Die Textfocus-APIs ermöglichen es, verschiedene SEO- und semantische Analysen durchzuführen. Diese Dokumentation erklärt, wie man sie aufruft, welche Parameter sie haben und wozu sie dienen. APIs sind für Abonnenten der Pakete "Classic" und "Comfort" verfügbar.

Die Anzahl der API-Aufrufe ist im Classic-Paket auf 30 pro Tag und im Agency-Paket auf 1 pro Minute begrenzt.

Jede Anfrage verbraucht ein Guthaben auf Ihrem Konto.

Sie können Ihren API-Schlüssel unter Ihrem Konto finden.

Der optionale Parameter force_refetch (Wert 1) wird von allen APIs außer tf_langs und tf_robotstxt akzeptiert. Wenn er aktiviert ist, wird der Cache ignoriert und alle Berechnungen werden sofort neu durchgeführt. Mit Vorsicht zu verwenden: Dies erhöht die Antwortzeit und verbraucht ein Guthaben wie ein normaler Aufruf.

Diese APIs sind seit März 2025 öffentlich zugänglich. Wir wissen, wie wichtig es ist, dass die APIs reaktionsschnell sind und fehlerfrei antworten.
Wenn Sie trotz unserer Wachsamkeit auf Fehlercodes mit den APIs stoßen, kontaktieren Sie uns bitte. Wir werden unser Bestes tun, um Ihnen so schnell wie möglich zu antworten.

MCP-Server: Verwendung mit KI

Das MCP-Protokoll (Model Context Protocol) ermöglicht es einem KI-Assistenten (Claude, Copilot, Cursor ...), die Textfocus-APIs während eines Gesprächs direkt aufzurufen, ohne dass Sie Daten kopieren und einfügen müssen.

So kann die KI eine SEO-Analyse durchführen, Suchvolumina ermitteln oder Wettbewerber vergleichen, anschließend die Ergebnisse auswerten und Empfehlungen aussprechen – und das alles in einem einzigen Schritt.

Textfocus bietet einen gehosteten MCP-Server an, der unter folgender Adresse erreichbar ist:

In beiden Fällen muss Ihr API-Schlüssel bei jeder Verbindung übermittelt werden.

Claude Desktop (Windows / macOS)

Öffnen Sie die Konfigurationsdatei:

Fügen Sie den folgenden Eintrag im Abschnitt mcpServers ein:

{
  "mcpServers": {
    "textfocus": {
      "type": "sse",
      "url": "https://textfocus.onrender.com/sse",
      "headers": {
        "X-API-Key": "Ihr API-Schlüssel"
      }
    }
  }
}

Starten Sie Claude Desktop neu. Die Tools Textfocus (tf_seo, tf_keyword, tf_competition…) werden dann in der Liste der verfügbaren Tools (Hammer-Symbol) angezeigt.

Claude.ai (Webversion)

Fügen Sie unter Einstellungen → Integrationen einen neuen MCP-Server mit der folgenden URL hinzu:

https://textfocus.onrender.com/mcp?key=Ihr API-Schlüssel

Die OAuth-Felder sind optional und können leer bleiben. Ihr Schlüssel wird direkt in der URL übermittelt.

Claude Code (CLI / IDE-Erweiterung)

Fügen Sie in der Claude-Code-Konfigurationsdatei (~/.claude.json oder in den Projekteinstellungen) Folgendes hinzu:

{
  "mcpServers": {
    "textfocus": {
      "type": "sse",
      "url": "https://textfocus.onrender.com/sse",
      "headers": {
        "X-API-Key": "Ihr API-Schlüssel"
      }
    }
  }
}

Cursor, Windsurf und andere MCP-kompatible IDEs

Diese Editoren unterstützen entfernte MCP-Server über SSE. Geben Sie in deren MCP-Einstellungen Folgendes ein:

Über MCP verfügbare Tools

Sobald die KI verbunden ist, stehen ihr folgende Tools zur Verfügung:

Jeder Werkzeugaufruf verbraucht ein Guthaben, genau wie ein herkömmlicher API-Aufruf.

API tf_account

Beschreibung : Gibt die Informationen des mit dem API-Schlüssel verknüpften Kontos zurück: Profil, Paket, AppSumo-Codes, verbleibende Guthaben und in den letzten 30 Tagen verbrauchte Guthaben.

Endpunkt : https://www.textfocus.net/apis/tf_account/

Methode : POST

Einstellungen :

Dieser Endpunkt verbraucht kein Guthaben.

Umgepflügte Felder

API tf_endpoints

Beschreibung : Listet alle verfügbaren Endpunkte mit ihren Parametern, ihrer Beschreibung und ihren Kosten in Credits auf.

Endpunkt : https://www.textfocus.net/apis/tf_endpoints/

Methode : POST

Einstellungen :

Dieser Endpunkt verbraucht kein Guthaben.

Liste der verfügbaren Sprachcodes

Beschreibung : Liefert eine Liste der verfügbaren Sprachen. Die zurückgegebenen Kennungen (Feld id) entsprechen den Sprach- und Marktcodes, die direkt im Parameter lang aller anderen APIs verwendet werden können (z. B. wird fr-CA in die ID des französischsprachigen kanadischen Marktes aufgelöst).

Endpunkt : https://www.textfocus.net/apis/tf_langs/

Methode : POST

Einstellungen :

1. API tf_keyword

Beschreibung : Liefert Daten zu einem bestimmten Schlüsselwort (Suchvolumen, Kosten pro Klick usw.).

Endpunkt : https://www.textfocus.net/apis/tf_keyword/

Methode : POST

Einstellungen :

Antwort

Beispiel für eine JSON-Antwort :

{
    "version": "1.0.3",
    "params": {
        "lang": "fr",
        "keyword": ["agence en référencement", "agence seo"],
        "key": "Ihr API-Schlüssel"
    },
    "result": {
        "agence en référencement": {
            "id": "agence en référencement",
            "lang": "fr",
            "cost": 13.06,
            "concurrency": 6.00,
            "volume": 27100,
            "difficulty": 87
        },
        {
            "id": "agence seo",
            "lang": "fr",
            "cost": 4.14,
            "concurrency": 28.00,
            "volume": 27100,
            "difficulty": 87
        }
    },
    "response": 200,
    "message": "ok",
    "timing": 0.020776,
    "creditUsed": 1,
    "method": "tf_keyword",
    "credits": 294
}

2. API tf_related

Beschreibung : Liefert Begriffe zu einem bestimmten Stichwort.

Endpunkt : https://www.textfocus.net/apis/tf_related/

Methode : POST

Antwort

Beispiel für eine JSON-Antwort :

{
    "version": "1.0.3",
    "params": {
        "lang": "fr",
        "keyword": "agence seo",
        "key": "Ihr API-Schlüssel"
    },
    "result": {
        "semantic": {
            "0": { 
                "id" : "agence seo",
                "keyword" : "meilleure agence seo",
                "lang" : "fr",
                "type" : "match",
                "ngram" : "3",
                "cost" : "0.00",
                "concurrency" : "2",
                "volume" : "22200",
                "intent" : "navigational",
                "difficulty" : "19"
		},
			"1": { 
                "id" : "agence seo",
                "keyword" : "agence seo lyon",
                "lang" : "fr",
                "type" : "match",
                "ngram" : "3",
                "cost" : "6.11",
                "concurrency" : "18",
                "volume" : "1600",
                "intent" : "commercial",
                "difficulty" : "56"
		},
		// Bis zu 100 Begriffe können zurückgegeben werden    },
    "response": 200,
    "message": "ok",
    "timing": 0.3334009999999999,
    "creditUsed": 1,
    "method": "tf_related",
    "credits": 2947
}

3. API tf_seo

Beschreibung : Führt eine vollständige SEO-Analyse einer Webseite durch.

Endpunkt : https://www.textfocus.net/apis/tf_seo/

Methode : POST

Antwort

Beispiel für eine JSON-Antwort :

{
    "version": "1.0.3",
    "params": {
        "lang": "fr",
        "keyword": "agence seo",
        "url": "https://beweb.fr/seo/",
        "key": "Ihr API-Schlüssel"
    },
    "result": {
    
    "packId": "14",
    "nbCompeteMax": "50",
    "url": "https://beweb.fr/seo/",
    "urlDecode": "https://beweb.fr/seo/",
    "nbH1": 1,
    "entitiesNotSupported": false,
    "typePage": "page",
    "jsonLdType": "WebPage",
    "firstWords": "vous cherchez [...] et une longue",
    "footerTxt": "On nous demande [...]",
    "host": "https://beweb.fr",
    "urlWords": " beweb  seo ",
    "contentBrut": "Skip to content . AGENCE SEO . Pilotez votre référencement naturel. [...].",
    "nbLinksOut": 16,
    "nbLinksOutExt": 5,
    "canon": "https://beweb.fr/seo/",
    "title": "Agence SEO France - Référencement Naturel Google | BEWEB",
    "description": "Besoin d'une agence SEO pour améliorer votre visibilité en ligne ? [...].",
    "robots": "index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1",
    "h1": "AGENCE SEO Pilotez votre référencement naturel",
    "h2": [
      "Les services de notre agence SEO Nos solutions pour développer votre référencement naturel",
      "Besoin d'une agence SEO ? Contactez nos consultants dès maintenant"
    ],
    "h3": [
      "Audit SEO Trouver les freins au référencement",
      "Recherche de mots clés Les bons mots pour être visible",
      "Accompagnement SEO Etre accompagné sur la durée",
      "Rédaction des balises Optimisation des balises SEO",
      "Refonte SEO Guide / cahier des charges SEO",
      "SEO Rennes Référencement en région rennaise",
      "Voici quelques avis de nos clients",
      "Ils font confiance à nos experts SEO",
      "Profitez de l'expérience d'une agence SEO Pour augmenter votre trafic naturel et vos conversions",
      "Référencement naturel de qualité Avec une agence proche de vous",
      "Améliorez la visibilité de vos sites dès maintenant !",
      "Nos dernières publications sur le SEO",
      "Stratégie SEO : les 14 méthodes de travail que nous utilisons le plus en 2024",
      "Stratégie SEO : les 14 méthodes de travail que nous utilisons le plus en 2024",
      "Utiliser Looker Studio pour analyser les performances de vos pages",
      "Utiliser Looker Studio pour analyser les performances de vos pages",
      "Quand faire un audit seo ?",
      "Quand faire un audit seo ?",
      "Pourquoi utiliser les services de notre agence SEO ?"
    ],
    "hn": [
      {
        "level": "1",
        "tag": "h1",
        "hn": " AGENCE SEO Pilotez votre référencement naturel"
      },
      {
        "level": "2",
        "tag": "h2",
        "hn": " Les services de notre agence SEO Nos solutions pour développer votre référencement naturel"
      },
      {
        "level": "3",
        "tag": "h3",
        "hn": "Audit SEOTrouver les freins au référencement"
      },
      {
        "level": "3",
        "tag": "h3",
        "hn": "Recherche de mots clés Les bons mots pour être visible"
      },
      {
        "level": "3",
        "tag": "h3",
        "hn": "Accompagnement SEO Etre accompagné sur la durée"
      },
      {
        "level": "3",
        "tag": "h3",
        "hn": "Rédaction des balises Optimisation des balises SEO"
      },
      {
        "level": "3",
        "tag": "h3",
        "hn": "Refonte SEO Guide / cahier des charges SEO"
      },
      {
        "level": "3",
        "tag": "h3",
        "hn": "Référencement en région rennaise"
      },
      {
        "level": "3",
        "tag": "h3",
        "hn": " Voici quelques avis de nos clients "
      },
      {
        "level": "3",
        "tag": "h3",
        "hn": " Ils font confiance à nos experts SEO "
      },
      {
        "level": "3",
        "tag": "h3",
        "hn": " Profitez de l'expérience d'une agence SEO Pour augmenter votre trafic naturel et vos conversions"
      },
      {
        "level": "3",
        "tag": "h3",
        "hn": " Référencement naturel de qualité Avec une agence proche de vous"
      },
      {
        "level": "3",
        "tag": "h3",
        "hn": " Améliorez la visibilité de vos sites dès maintenant ! "
      },
      {
        "level": "4",
        "tag": "h4",
        "hn": "Privacy Overview"
      }
    ],
    "anchors": [
      {
        "anchor": "consultant seo",
        "link": "https://beweb.fr/",
        "rel": "",
        "title": "Consultant SEO"
      },
      {
        "anchor": "services seo",
        "link": "https://beweb.fr/seo/",
        "rel": "",
        "title": "Services SEO"
      },
      {
        "anchor": "services web",
        "link": "https://beweb.fr/web/",
        "rel": "",
        "title": "Services Web"
      },
      {
        "anchor": "plan du site",
        "link": "https://beweb.fr/plan-du-site/",
        "rel": "",
        "title": ""
      },
      {
        "anchor": "contactez-nous",
        "link": "/contact/",
        "rel": "",
        "title": ""
      },
      {
        "anchor": "",
        "link": "#li-page-top",
        "rel": "",
        "title": ""
      },
      {
        "anchor": "",
        "link": "https://www.cookieyes.com/",
        "rel": "",
        "title": ""
      }
    ],
    "images": {
      "https://beweb.fr/wp-content/uploads/2020/09/beweb-logo-60.png": {
        "alt": "Consultant SEO : Expert référencement de site internet à Rennes",
        "title": "",
        "width": "",
        "height": ""
      },
      "https://beweb.fr/wp-content/uploads/2020/11/3249202edit.png": {
        "alt": "agence seo",
        "title": "",
        "width": "900",
        "height": "574"
      },
      "https://beweb.fr/wp-content/uploads/2020/11/ubiqus-logo.png": {
        "alt": "ubiqus logo",
        "title": "",
        "width": "261",
        "height": "100"
      },
      "https://beweb.fr/wp-content/uploads/2020/11/idaos-logo.png": {
        "alt": "idaos logo",
        "title": "",
        "width": "226",
        "height": "100"
      },
      "https://beweb.fr/wp-content/uploads/2016/07/orange_obs.jpg": {
        "alt": "",
        "title": "",
        "width": "194",
        "height": "100"
      },
      "https://beweb.fr/wp-content/uploads/2016/07/lylo_2015.png": {
        "alt": "",
        "title": "",
        "width": "121",
        "height": "100"
      },
      "https://beweb.fr/wp-content/uploads/2016/07/Creative-Ingenierie-logo_165X165.jpg": {
        "alt": "",
        "title": "",
        "width": "206",
        "height": "100"
      },
      "https://beweb.fr/wp-content/uploads/2020/11/augmentez-votre-trafic-naturel.png": {
        "alt": "Augmentez votre trafic naturel",
        "title": "",
        "width": "801",
        "height": "555"
      },
      "https://beweb.fr/wp-content/uploads/2020/11/3339159small.png": {
        "alt": "3339159small",
        "title": "",
        "width": "506",
        "height": "555"
      },
      "https://beweb.fr/wp-content/uploads/2023/01/strategie-seo-300x300.jpg": {
        "alt": "strategie seo",
        "title": "",
        "width": "",
        "height": ""
      },
      "https://beweb.fr/wp-content/uploads/2020/11/3497813-300x300.jpg": {
        "alt": "Utiliser Google Data Studio pour analyser les performances de vos pages",
        "title": "",
        "width": "",
        "height": ""
      },
      "https://beweb.fr/wp-content/uploads/2020/08/seo-793030_1280-300x199.jpg": {
        "alt": "Quand faire un audit seo",
        "title": "",
        "width": "",
        "height": ""
      },
      "https://beweb.fr/wp-content/plugins/cookie-law-info/legacy/public/images/logo-cookieyes.svg": {
        "alt": "CookieYes Logo",
        "title": "",
        "width": "",
        "height": ""
      }
    },
    "strong": [
      "agence en référencement",
      "stratégie de référencement",
      "expertise référencement naturel",
      "bons mots clés",
      "bonnes pratiques de Google",
      "mobile first",
      "Sites internet gérés, créés ou optimisés",
      "Sessions mensuelles cumulées sur nos sites",
      "Mots clés surveillés",
      "optimisation pour les moteurs de recherche",
      "stratégie de référencement sur mesure",
      "expérience",
      "savoir-faire",
      "équipe passionnée",
      "stratégies innovantes",
      "chaque entreprise est unique",
      "simple et accessible",
      "sur le long terme",
      "durables et évolutives,",
      "résultats qui durent"
    ],
    "em": "Jean-Joseph Lattuada, Ouest-France",
    "nbWords": 762,
    "nbWordsAll": 1414,
    "ratio": 6.91,
    "pertinence": 54,
    "nbWordsDistinct": 427,
    "beginWith": {
      "référencement": 19,
      "agence": 12,
      "seo": 8,
      "naturel": 5,
      "solutions": 5,
      "cookies": 5,
      "beweb": 5,
      "web": 5,
      "visibilité": 5,
      "optimisation": 4,
      "analyse": 4,
      "google": 4
    },
    "langs": {
      "country": "FR",
      "langOfPage": "fr",
      "headers-content-type": "text/html",
      "meta-charset": "utf-8",
      "headers-content-language": "non renseigné",
      "meta-content-language": "non renseigné",
      "meta-name-language": "non renseigné",
      "html-lang": "fr-FR"
    },
    "nbPhrases": 49,
    "nbPhrasesAll": 111,
    "entities": [
      {
        "id": 0,
        "type": [
          "Number"
        ],
        "matchingTokens": [
          2
        ],
        "entityId": "78",
        "confidenceScore": 0.5,
        "wikiLink": "",
        "matchedText": "78",
        "relevanceScore": 0,
        "entityEnglishId": "",
        "startingPos": 5,
        "endingPos": 7,
        "unit": "Number"
      },
      {
        "id": 1,
        "type": [
          "Number"
        ],
        "matchingTokens": [
          1
        ],
        "entityId": "6",
        "confidenceScore": 0.5,
        "wikiLink": "",
        "matchedText": "06",
        "relevanceScore": 0,
        "entityEnglishId": "",
        "startingPos": 2,
        "endingPos": 4,
        "unit": "Number"
      },
      {
        "id": 2,
        "matchingTokens": [
          792
        ],
        "entityId": "Algorithme",
        "freebaseTypes": [
          "/award/award_discipline",
          "/education/field_of_study",
          "/symbols/namesake",
          "/book/book_subject"
        ],
        "confidenceScore": 5.629,
        "wikiLink": "http://fr.wikipedia.org/wiki/Algorithme",
        "matchedText": "algorithmes",
        "freebaseId": "/m/0jpv",
        "relevanceScore": 0.2498,
        "entityEnglishId": "Algorithm",
        "startingPos": 5522,
        "endingPos": 5533,
        "wikidataId": "Q8366"
      },
      {
        "id": 3,
        "matchingTokens": [
          808
        ],
        "entityId": "Privacy",
        "freebaseTypes": [
          "/media_common/quotation_subject",
          "/film/film_subject",
          "/law/legal_subject",
          "/book/book_subject"
        ],
        "confidenceScore": 5.349,
        "wikiLink": "http://en.wikipedia.org/wiki/Privacy",
        "matchedText": "privacy",
        "freebaseId": "/m/06804",
        "relevanceScore": 0,
        "entityEnglishId": "Privacy",
        "startingPos": 5633,
        "endingPos": 5640,
        "wikidataId": "Q188728"
      },
      {
        "id": 4,
        "matchingTokens": [
          812
        ],
        "entityId": "Website",
        "freebaseTypes": [
          "/book/book_subject",
          "/business/industry",
          "/award/award_category",
          "/dataworld/information_source",
          "/fictional_universe/fictional_organization_type",
          "/organization/non_profit_organization",
          "/location/location",
          "/internet/website_category",
          "/award/award_discipline",
          "/organization/contact_category",
          "/business/business_location",
          "/education/school_category",
          "/organization/role",
          "/business/employer",
          "/organization/organization_sector"
        ],
        "confidenceScore": 10.45,
        "wikiLink": "http://en.wikipedia.org/wiki/Website",
        "matchedText": "website",
        "freebaseId": "/m/085n4",
        "relevanceScore": 0,
        "entityEnglishId": "Website",
        "startingPos": 5656,
        "endingPos": 5663,
        "wikidataId": "Q35127"
      },
      {
        "id": 5,
        "matchingTokens": [
          814
        ],
        "entityId": "Cookie (informatique)",
        "freebaseTypes": [
          "/book/book_subject"
        ],
        "confidenceScore": 3.079,
        "wikiLink": "http://fr.wikipedia.org/wiki/Cookie_(informatique)",
        "matchedText": "cookies",
        "freebaseId": "/m/0d18sk",
        "relevanceScore": 0.3457,
        "entityEnglishId": "HTTP cookie",
        "startingPos": 5669,
        "endingPos": 5676,
        "wikidataId": "Q178995"
      },
      {
        "id": 6,
        "matchingTokens": [
          892,
          893
        ],
        "entityId": "Option de retrait dans l'Union européenne",
        "confidenceScore": 1.016,
        "wikiLink": "http://fr.wikipedia.org/wiki/Option_de_retrait_dans_l'Union_européenne",
        "matchedText": "opt out",
        "freebaseId": "/m/03cfnlw",
        "relevanceScore": 0.1998,
        "entityEnglishId": "Opt-outs in the European Union",
        "startingPos": 6098,
        "endingPos": 6105,
        "wikidataId": "Q1349687"
      },
      {
        "id": 7,
        "matchingTokens": [
          899,
          900
        ],
        "entityId": "Opt-out (marketing)",
        "confidenceScore": 1.776,
        "wikiLink": "http://fr.wikipedia.org/wiki/Opt-out_(marketing)",
        "matchedText": "opting out",
        "freebaseId": "",
        "relevanceScore": 0.06177,
        "entityEnglishId": "Opt-out",
        "startingPos": 6128,
        "endingPos": 6138,
        "wikidataId": "Q1368455"
      },
      {
        "id": 8,
        "matchingTokens": [
          907
        ],
        "entityId": "Affect",
        "confidenceScore": 0.9559,
        "wikiLink": "http://fr.wikipedia.org/wiki/Affect",
        "matchedText": "affect",
        "freebaseId": "/m/09f7n8",
        "relevanceScore": 0.1276,
        "entityEnglishId": "Affect (psychology)",
        "startingPos": 6168,
        "endingPos": 6174,
        "wikidataId": "Q159904",
        "wikidataTypes": [
          "Q96634632/psychology term",
          "Q12812139/technical term"
        ]
      },
      {
        "id": 9,
        "matchingTokens": [
          928
        ],
        "entityId": "Analytics",
        "freebaseTypes": [
          "/organization/organization_sector",
          "/business/competitive_space",
          "/computer/software_genre",
          "/internet/website_category",
          "/book/book_subject",
          "/business/industry",
          "/media_common/quotation_subject"
        ],
        "confidenceScore": 2.001,
        "wikiLink": "http://en.wikipedia.org/wiki/Analytics",
        "matchedText": "analytics",
        "freebaseId": "/m/02gcn9",
        "relevanceScore": 0,
        "entityEnglishId": "Analytics",
        "startingPos": 6296,
        "endingPos": 6305,
        "wikidataId": "Q485396",
        "wikidataTypes": [
          "Q105948247/knowledge system",
          "Q1047113/specialty",
          "Q2198779/unit",
          "Q4671286/academic major",
          "Q26256810/matter",
          "Q11953984/linguistic unit",
          "Q11862829/academic discipline",
          "Q110403031/knowledge type",
          "Q115786086/linguistic form",
          "Q115372263/word or phrase",
          "Q1128340/subject heading"
        ]
      }
    ],
    "opengraph": {
      "og:locale": "fr_FR",
      "og:type": "article",
      "og:title": "Agence SEO France - Référencement Naturel Google | BEWEB",
      "og:description": "Besoin d",
      "og:url": "https://beweb.fr/seo/",
      "og:site_name": "Consultant SEO : Expert référencement de site internet à Rennes"
    },
    "twitter": [],
    "robotsTxtInfo": {
      "code": 200,
      "response": {},
      "content": "User-agent: *\r\nDisallow:\r\n\r\n#test o2"
    },
    "nbImg": 13,
    "nbImgNoAlt": 3,
    "firstPerson": {
      "notre": 10,
      "nos": 13,
      "nous": 31,
      "mes": 1,
      "me": 1,
      "je": 2,
      "ma": 1
    },
    "mykeyword": "",
    "verif_presence": 1,
    "words": {
      "agence": 18,
      "référencement": 27,
      "naturel": 9,
      "référencement naturel": 5,
      "google": 9,
      "beweb": 6,
      "france": 1,
      "besoin": 6,
      "solutions": 6,
      "accompagnement": 5,
      "rédaction": 4,
      "améliorer": 5,
      "visibilité": 7,
      "mesure": 3,
      "optimisation": 7,
      "audit": 7,
      "bonne": 3,
      "développer": 2,
      "optimisé": 2,
      "cherchez": 2,
      "croissance": 2,
      "saura": 1,
      "proposons": 2,
      "contact": 1,
      "contactez": 1,
      "rigueur": 1,
      "choisir": 1,
      "sérieux": 1,
      "confiez": 1,
      "large": 1,
      "laissons": 1,
      "proposé": 1,
      "panel": 1,
      "adaptées": 1,
      "temps": 1,
      "outils": 1,
      "tracking": 1,
      "paramétrage": 1,
      "longue": 1,
      "manager": 1,
      "contenu": 2,
      "client": 8,
      "stratégie": 8,
      "technique": 6,
      "recherche": 6,
      "analyse": 6,
      "experience": 6,
      "cookies": 6,
      "balises": 5,
      "travail": 5,
      "objectif": 4,
      "sites": 4,
      "place": 4,
      "these": 4,
      "performance": 4,
      "résultats": 4,
      "website": 4,
      "comprendre": 4,
      "aider": 4
    },
    "optimise": {
      "agence": 51,
      "référencement": 50,
      "naturel": 39,
      "google": 28,
      "beweb": 28,
      "france": 23,
      "besoin": 12,
      "solutions": 11,
      "audit": 7,
      "visibilité": 7
    },
    "wordsOptimiseFor": {
      "agence": 51,
      "référencement": 50,
      "naturel": 39,
      "google": 28,
      "beweb": 28,
      "france": 23,
      "besoin": 12,
      "solutions": 11,
      "audit": 7,
      "visibilité": 7,
      "améliorer": 7,
      "mesure": 7,
      "rédaction": 7,
      "optimisation": 7,
      "accompagnement": 7
    },
    "groupOptimiseFor": {
      "agence": 51,
      "référencement": 50,
      "naturel": 39,
      "google": 28,
      "beweb": 28,
      "france": 23,
      "besoin": 12,
      "solutions": 11,
      "audit": 7,
      "visibilité": 7,
      "améliorer": 7,
      "mesure": 7,
      "rédaction": 7,
      "optimisation": 7,
      "accompagnement": 7
    },
    "lexies": {
      "proposons": {
        "4": "proposition",
        "22": "viser",
        "24": "mesure",
        "26": "objectif",
        "33": "agence",
        "35": "contenu",
        "43": "sites",
        "47": "services",
        "53": "concurrence",
        "83": "option",
        "164": "projet",
        "197": "atteindre",
        "201": "client",
        "211": "découvrir",
        "214": "devis",
        "228": "gratuit",
        "277": "accompagnement"
      },
      "référencement": [
        "recherche",
        "optimisation",
        "visibilité",
        "contenu",
        "internet",
        "visible",
        "complexe",
        "optimisé"
      ],
      "solutions": [
        "optimisation",
        "analyse",
        "efficace",
        "simple",
        "optimiser",
        "amélioration",
        "performance",
        "référencement",
        "stratégie",
        "processus",
        "adaptées"
      ],
      "agence": {
        "14": "entreprise",
        "16": "client",
        "32": "objectif",
        "37": "secteur"
      },
      "naturel": {
        "38": "simple",
        "126": "migration",
        "187": "recherche",
        "195": "force"
      },
      "besoin": [
        "amélioration",
        "objectif",
        "qualité",
        "utile",
        "entreprise",
        "client",
        "disponible",
        "projet",
        "bonne",
        "adaptées"
      ],
      "développer": {
        "0": "croissance",
        "1": "secteur",
        "2": "trafic",
        "3": "processus",
        "4": "entreprise",
        "6": "améliorer"
      },
      "mesure": [
        "temps",
        "point",
        "secteur",
        "stade",
        "ligne",
        "force",
        "commun",
        "durée",
        "travail",
        "processus",
        "terme",
        "nouveau",
        "ensemble",
        "photographe",
        "studio",
        "performance",
        "ordinaire",
        "longue"
      ],
      "outils": {
        "8": "analyse",
        "75": "optimisation",
        "77": "ergonomie",
        "98": "guide",
        "111": "simple"
      },
      "confiez": {
        "7": "laisser",
        "8": "confiance",
        "24": "découvrir",
        "34": "choisir",
        "99": "enregistrer"
      },
      "rédaction": {
        "13": "projet",
        "14": "quotidien",
        "17": "cahier"
      },
      "contact": {
        "11": "direct"
      },
      "contactez": {
        "20": "aider",
        "54": "découvrir",
        "118": "proposer",
        "126": "rendre",
        "127": "répondre",
        "134": "savoir"
      },
      "sérieux": {
        "41": "confiance",
        "55": "gratuit"
      },
      "saura": {
        "51": "montre",
        "59": "commun",
        "64": "découvrir",
        "167": "disponibilité",
        "193": "force",
        "272": "point",
        "279": "processus"
      },
      "laissons": {
        "50": "cours",
        "69": "mettre",
        "88": "rendre",
        "97": "découvrir",
        "114": "maîtriser",
        "188": "place",
        "265": "aimons",
        "271": "appliquer"
      }
    },
    "listLexies": {
      "agence": {
        "ponderation": 51,
        "color": "264653"
      },
      "référencement": {
        "ponderation": 74,
        "color": "287271"
      },
      "naturel": {
        "ponderation": 39,
        "color": "2A9D8F"
      },
      "besoin": {
        "ponderation": 23,
        "color": "8AB17D"
      },
      "solutions": {
        "ponderation": 73,
        "color": "E9C46A"
      },
      "mesure": {
        "ponderation": 17,
        "color": "EFB366"
      },
      "rédaction": {
        "ponderation": 7,
        "color": "F4A261"
      },
      "développer": {
        "ponderation": 18,
        "color": "EE8959"
      },
      "contact": {
        "ponderation": 5,
        "color": "E76F51"
      },
      "contactez": {
        "ponderation": 5,
        "color": "E97C61"
      },
      "proposons": {
        "ponderation": 75,
        "color": "f45b5b"
      },
      "sérieux": {
        "ponderation": 5,
        "color": "e4d354"
      },
      "confiez": {
        "ponderation": 10,
        "color": "413775"
      },
      "saura": {
        "ponderation": 5,
        "color": "e91e63"
      },
      "laissons": {
        "ponderation": 5,
        "color": "9c27b0"
      },
      "outils": {
        "ponderation": 12,
        "color": "90ed7d"
      }
    },
    "lexiesOptimiseFor": {
      "proposons": 75,
      "référencement": 74,
      "solutions": 73,
      "agence": 51,
      "naturel": 39,
      "besoin": 23,
      "développer": 18,
      "mesure": 17,
      "outils": 12
    },
    "listPresence": {
      "title": {
        "référencement naturel": 1,
        "référencement": 1,
        "agence": 1,
        "google": 1,
        "naturel": 1,
        "beweb": 1,
        "france": 1
      },
      "h1": {
        "référencement naturel": 1,
        "référencement": 1,
        "agence": 1,
        "naturel": 1
      },
      "h2": {
        "référencement naturel": 1,
        "référencement": 1,
        "agence": 1,
        "naturel": 1,
        "solutions": 1,
        "services": 1,
        "développer": 1,
        "besoin": 1,
        "consultants": 1,
        "contact": 1,
        "contactez": 1
      },
      "strong": {
        "référencement naturel": 1,
        "référencement": 1,
        "agence": 1,
        "stratégie": 1,
        "naturel": 1,
        "google": 1,
        "pratiques": 1,
        "bonne": 1,
        "mobile": 1,
        "first": 1
      },
      "description": {
        "agence": 1,
        "stratégie": 1,
        "visibilité": 1,
        "besoin": 1,
        "améliorer": 1,
        "mesure": 1,
        "ligne": 1
      },
      "h3": {
        "référencement": 1,
        "audit": 1,
        "trouver": 1,
        "freins": 1,
        "recherche": 1,
        "visible": 1,
        "accompagnement": 1,
        "accompagné": 1,
        "durée": 1,
        "optimisation": 1,
        "balises": 1,
        "rédaction": 1,
        "charges": 1,
        "refonte": 1,
        "cahier": 1,
        "guide": 1,
        "rennes": 1,
        "région": 1,
        "rennaise": 1
      },
      "host": {
        "beweb": 1
      },
      "url": {
        "beweb": 1
      },
      "firstWords": {
        "référencement": 1,
        "agence": 1,
        "google": 1,
        "visibilité": 1,
        "audit": 1,
        "optimisation": 1,
        "besoin": 1,
        "beweb": 1,
        "solutions": 1,
        "accompagnement": 1,
        "améliorer": 1,
        "place": 1,
        "rédaction": 1,
        "bonne": 1,
        "mesure": 1,
        "proposer": 1,
        "concrètes": 1,
        "trafic": 1,
        "internet": 1,
        "cherchez": 1,
        "optimisé": 1,
        "contenu": 1,
        "hasard": 1,
        "proposons": 1,
        "croissance": 1,
        "rigueur": 1,
        "choisir": 1,
        "sérieux": 1,
        "confiez": 1,
        "saura": 1,
        "large": 1,
        "laissons": 1,
        "panel": 1,
        "adaptées": 1,
        "temps": 1,
        "outils": 1,
        "tracking": 1,
        "paramétrage": 1,
        "manager": 1,
        "proposé": 1,
        "longue": 1
      },
      "footerTxt": {
        "agence": 1,
        "besoin": 1,
        "beweb": 1,
        "experts": 1,
        "répondre": 1,
        "rennes": 1,
        "christophe": 1,
        "consultants": 1,
        "services": 1,
        "contact": 1,
        "contactez": 1,
        "répond": 1
      },
      "em": {
        "ouest": 1,
        "france": 1,
        "lattuada": 1,
        "joseph": 1
      }
    },
    "scoreSeo": 96.5,
    "hnInFooter": []
    },
    "response": 200,
    "message": "ok",
    "timing": 0.3334009999999999,
    "creditUsed": 1,
    "method": "tf_related",
    "credits": 2947
}

4. API tf_semantic

Beschreibung : Bietet eine semantische Analyse und stellt semantisches Vokabular bereit.

Endpunkt : https://www.textfocus.net/apis/tf_semantic/

Methode : POST

Antwort

Beispiel für eine JSON-Antwort :

{
    "version": "1.0.3",
    "params": {
        "lang": "fr",
        "keyword": "mini serre",
        "key": "Ihr API-Schlüssel"
    },
    "result": {
        
        "nbCompete": 34,
    "nbFound": 119,
    "nbWordsContentMoy": 904.6470588235294,
    "nbWordsTitleMoy": 6.0588235294117645,
    "semantic": {
      "0": {
        "id": "mini serre",
        "keyword": "semis",
        "kei": "100.00",
        "ngram": "1",
        "used": "82.35",
        "occ": "105",
        "omin": "1",
        "omax": "36",
        "omoy": "7.5",
        "osd": "8.1",
        "nbwmoy": "555",
        "intitle": "14.71",
        "inhn": "26.47",
        "frequency": "22.85",
        "tfidf": "0.0613",
        "context": "a:3:{i:0;s:16:\"mini serre semis\";i:1;s:21:\"fleurs légumes semis\";i:2;s:16:\"serre semis pots\";}"
      },
      "1": {
        "id": "mini serre",
        "keyword": "plantes",
        "kei": "99.11",
        "ngram": "1",
        "used": "73.53",
        "occ": "97",
        "omin": "1",
        "omax": "44",
        "omoy": "7.8",
        "osd": "11.1",
        "nbwmoy": "606",
        "intitle": "0.00",
        "inhn": "14.71",
        "frequency": "16.74",
        "tfidf": "0.0573",
        "context": "a:3:{i:0;s:23:\"plantes fleurs légumes\";i:1;s:23:\"serre hivernage plantes\";i:2;s:24:\"hivernage plantes fleurs\";}"
      },
      "2": {
        "id": "mini serre",
        "keyword": "jardin",
        "kei": "98.01",
        "ngram": "1",
        "used": "79.41",
        "occ": "140",
        "omin": "1",
        "omax": "54",
        "omoy": "12.0",
        "osd": "11.9",
        "nbwmoy": "605",
        "intitle": "20.59",
        "inhn": "38.24",
        "frequency": "30.33",
        "tfidf": "0.0694",
        "context": "a:3:{i:0;s:17:\"mini serre jardin\";i:1;s:19:\"petite serre jardin\";i:2;s:26:\"serre jardin polycarbonate\";}"
      },
      "3": {
        "id": "mini serre",
        "keyword": "culture",
        "kei": "95.93",
        "ngram": "1",
        "used": "76.47",
        "occ": 83,
        "omin": "1",
        "omax": "23",
        "omoy": "5.5",
        "osd": "5.2",
        "nbwmoy": "589",
        "intitle": "14.71",
        "inhn": "29.41",
        "frequency": "19.50",
        "tfidf": "0.0492",
        "context": "a:3:{i:0;s:18:\"mini serre culture\";i:1;s:23:\"serre culture plastique\";i:2;s:13:\"serre culture\";}"
      },
      "4": {
        "id": "mini serre",
        "keyword": "balcon",
        "kei": "77.62",
        "ngram": "1",
        "used": "47.06",
        "occ": "24",
        "omin": "1",
        "omax": "6",
        "omoy": "2.6",
        "osd": "1.6",
        "nbwmoy": "595",
        "intitle": "0.00",
        "inhn": "8.82",
        "frequency": "4.29",
        "tfidf": "0.0324",
        "context": "a:3:{i:0;s:15:\"balcon terrasse\";i:1;s:13:\"serres balcon\";i:2;s:12:\"serre balcon\";}"
      },
		// Bis zu 100 Begriffe können zurückgegeben werden      
    }
        
        
    },
    "response": 200,
    "message": "ok",
    "timing": 0.020776,
    "creditUsed": 1,
    "method": "tf_keyword",
    "credits": 2948
}

5. API tf_robotstxt

Beschreibung : Analyse der robots.txt-Datei einer Domain: Vorhandensein der XML-Sitemap, blockierte KI-Agenten, Content-Signale.

Endpunkt : https://www.textfocus.net/apis/tf_robotstxt/

Methode : POST

Antwort

Beispiel für eine JSON-Antwort :

{
    "version": "1.0.4",
    "params": {
        "url": "https://beweb.fr/seo/",
        "key": "Ihr API-Schlüssel"
    },
    "result": {
        "score": 75,
        "issues": [
            "Aucun Content Signal détecté dans le robots.txt"
        ],
        "details": {
            "sitemaps": [
                "https://beweb.fr/sitemap.xml"
            ],
            "blocked_bots": [],
            "content_signals": {}
        }
    },
    "response": 200,
    "message": "ok",
    "timing": 0.312,
    "creditUsed": 1,
    "method": "tf_robotstxt",
    "credits": 293
}

Felder der Antwort

6. API tf_geo

Beschreibung : Führt eine umfassende GEO-Optimierungsanalyse (Generative Engine Optimization) einer Webseite durch: Struktur der Überschriften, strukturierte Daten, Lesbarkeit, semantische Konsistenz, Leistung, Barrierefreiheit für KI-Agenten usw. Gibt einen Gesamtwert für die KI-Bereitschaft sowie Teilwerte für die einzelnen Bereiche aus.

Endpunkt : https://www.textfocus.net/apis/tf_geo/

Methode : POST

Antwort

Beispiel für eine JSON-Antwort (gekürzt):

{
    "version": "1.0.4",
    "params": {
        "url": "https://beweb.fr/seo/",
        "key": "Ihr API-Schlüssel"
    },
    "result": {
        "ia_ready_score": 68.4,
        "geo_commentary": {
            "comment": "Cette page présente une optimisation correcte pour les IA, mais plusieurs points méritent attention.",
            "priority_text": "Les principaux axes d'amélioration sont la table des matières et les données structurées (Schema.org)."
        },
        "all_scores": {
            "structure_score": 80,
            "structured_data_score": 40,
            "segmentation_markup_score": 75,
            "readability_score": 70,
            "semantic_coherence_score": 65,
            "toc_score": 30,
            "concise_answer_score": 60,
            "images_score": 55,
            "loading_score": 85,
            "accessibility_score": 90,
            "robots_txt_score": 75
        },
        "structure_and_accessibility": {
            "structure": {
                "analysis": {
                    "score": 80,
                    "issues": [],
                    "details": {
                        "nb_h1": 1,
                        "nb_h2": 2,
                        "h1_matches_topic": true
                    }
                }
            },
            "structured_data": {
                "analysis": {
                    "score": 40,
                    "issues": ["Aucun type Schema.org pertinent détecté (Article, FAQ, HowTo…)"],
                    "types": ["WebPage"]
                }
            },
            "segmentation_markup": {
                "analysis": {
                    "score": 75,
                    "issues": []
                }
            }
        },
        "content_clarity": {
            "readability": {
                "analysis": {
                    "score": 70,
                    "issues": [],
                    "details": {
                        "flesch_kincaid": 33.7,
                        "avg_sentence_length": 18.4
                    }
                }
            },
            "concise_answer": {
                "analysis": {
                    "score": 60,
                    "issues": ["Aucune réponse concise détectée en début de page"]
                }
            },
            "semantic_coherence": {
                "analysis": {
                    "score": 65,
                    "issues": [],
                    "details": {
                        "title_to_content": 0.82,
                        "description_to_content": 0.74
                    }
                }
            }
        },
        "seo_ia_optimization": {
            "toc": {
                "analysis": {
                    "score": 30,
                    "issues": ["Aucune table des matières cliquable détectée"]
                }
            }
        },
        "multimodality": {
            "alt_tags": {
                "analysis": {
                    "score": 55,
                    "issues": ["3 image(s) sans attribut alt"],
                    "details": {
                        "nb_images": 13,
                        "nb_missing_alt": 3
                    }
                }
            }
        },
        "performance": {
            "fast_loading": {
                "analysis": {
                    "score": 85,
                    "issues": [],
                    "details": {
                        "lcp_ms": 1276,
                        "ttfb_ms": 15,
                        "tti_ms": 199
                    }
                }
            },
            "main_readability_accessibility": {
                "analysis": {
                    "score": 90,
                    "issues": []
                }
            },
            "robots_txt": {
                "analysis": {
                    "score": 75,
                    "issues": ["Aucun Content Signal détecté dans le robots.txt"],
                    "details": {
                        "sitemaps": ["https://beweb.fr/sitemap.xml"],
                        "blocked_bots": [],
                        "content_signals": {}
                    }
                }
            }
        },
        "res": {
            "url": "https://beweb.fr/seo/",
            "urlDecode": "https://beweb.fr/seo/",
            "title": "Agence SEO France - Référencement Naturel Google | BEWEB",
            "description": "Besoin d'une agence SEO pour améliorer votre visibilité en ligne ?",
            "h1": "AGENCE SEO Pilotez votre référencement naturel",
            "h2": ["Les services de notre agence SEO", "Besoin d'une agence SEO ?"],
            "nbWords": 762,
            "host": "https://beweb.fr",
            "whatIsAbout": ["référencement", "agence", "naturel", "google", "seo", "visibilité"]
        },
        "lang": "fr",
        "country": "fr",
        "resume_ia": "Cette page présente l'agence SEO Beweb, spécialisée dans le référencement naturel en France..."
    },
    "response": 200,
    "message": "ok",
    "timing": 4.21,
    "creditUsed": 1,
    "method": "tf_geo",
    "credits": 292
}

Wichtigste Punkte der Antwort

Hinweis: Diese API führt eine gründliche Analyse durch, die je nach der analysierten Seite zwischen 3 und 10 Sekunden dauern kann.

8. API tf_competition

Beschreibung : Wettbewerbsanalyse für ein bestimmtes Keyword: Ruft die Seiten ab, die in den Google-Suchergebnissen ganz oben stehen, und berechnet deren SEO-Kennzahlen (SEO-Score, semantischer Score, Wortanzahl, Relevanz, Seitentyp). Die Analyse ist umfassend: Noch nicht analysierte Seiten werden abgerufen und sofort berechnet.

Endpunkt : https://www.textfocus.net/apis/tf_competition/

Methode : POST

Einstellungen :

Antwort

Beispiel für eine JSON-Antwort :

{
    "version": "1.0.4",
    "params": {
        "lang": "fr",
        "keyword": "agence seo",
        "key": "Ihr API-Schlüssel"
    },
    "result": {
        "keyword": "agence seo",
        "lang": "fr",
        "nbCompete": 10,
        "competitors": [
            {
                "url": "https://www.optimize360.fr/agence-seo/",
                "position": 1,
                "title": "Agence SEO - Optimize 360",
                "h1": "Agence SEO Optimize 360",
                "nbWords": 312,
                "nbWordsAll": 687,
                "pertinence": 45,
                "scoreSeo": 87.5,
                "scoreSemantic": 62.3,
                "typePage": "page"
            },
            {
                "url": "https://www.primelis.com/agence-seo/",
                "position": 2,
                "title": "Agence SEO - Primelis",
                "h1": "Votre agence SEO",
                "nbWords": 489,
                "nbWordsAll": 1102,
                "pertinence": 44,
                "scoreSeo": 91.0,
                "scoreSemantic": 71.8,
                "typePage": "page"
            }
            // Bis zu nbCompeteMax Teilnehmer, je nach Ihrem Abonnement        ]
    },
    "response": 200,
    "message": "ok",
    "timing": 12.4,
    "creditUsed": 1,
    "method": "tf_competition",
    "credits": 291
}

Felder der Antwort

Hinweis: Diese API kann je nach Anzahl der zu analysierenden Seiten zwischen 5 und 30 Sekunden dauern. Seiten, die kürzlich bereits analysiert wurden, werden aus dem Cache bereitgestellt.

9. API „tf_structured_data“

Beschreibung : Extrahiert und analysiert strukturierte JSON-LD-Daten (Schema.org) einer Webseite. Gibt die rohen JSON-LD-Blöcke, die erkannten Schema.org-Typen und eine umfassende Analyse der Qualität der strukturierten Daten zurück.

Endpunkt : https://www.textfocus.net/apis/tf_structured_data/

Methode : POST

Antwort

Beispiel für eine JSON-Antwort :

{
    "version": "1.0.4",
    "params": {
        "url": "https://beweb.fr/seo/",
        "key": "Ihr API-Schlüssel"
    },
    "result": {
        "jsonLd": [
            {
                "@context": "https://schema.org",
                "@type": "Article",
                "name": "Agence SEO Paris",
                "description": "Optimisation SEO pour votre site web"
            }
        ],
        "jsonLdType": ["Article"],
        "analysis": {
            "score": 60,
            "types_found": ["Article"],
            "issues": ["Missing recommended property: author"],
            "recommendations": ["Add author property to Article schema"]
        }
    },
    "response": 200,
    "message": "ok",
    "timing": 1.24,
    "creditUsed": 1,
    "method": "tf_structured_data",
    "credits": 292
}

Felder der Antwort

10. API tf_history

Beschreibung : Gibt den Verlauf der SEO-Analysen einer zuvor analysierten URL zurück: SEO-Wert, Leistungswert, semantischer Wert, KI-Wert, Wortanzahl und Datum jedes Eintrags.

Endpunkt : https://www.textfocus.net/apis/tf_history/

Methode : POST

Antwort

Beispiel für eine JSON-Antwort :

{
    "version": "1.0.4",
    "params": {
        "url": "https://beweb.fr/seo/",
        "key": "Ihr API-Schlüssel"
    },
    "result": {
        "url": "https://beweb.fr/seo/",
        "keyword": "agence seo",
        "session": "a1b2c3d4e5f6",
        "snapshots": [
            {
                "date": "2024-09-01 10:15:00",
                "scoreSeo": 72.5,
                "scorePerf": 65.0,
                "scoreSem": 58.3,
                "scoreIa": 61.0,
                "nbwordsall": 1240
            },
            {
                "date": "2025-01-15 14:30:00",
                "scoreSeo": 78.2,
                "scorePerf": 70.1,
                "scoreSem": 63.5,
                "scoreIa": 67.4,
                "nbwordsall": 1350
            }
        ]
    },
    "response": 200,
    "message": "ok",
    "timing": 0.08,
    "creditUsed": 0,
    "method": "tf_history",
    "credits": 292
}

Felder der Antwort

Hinweis: Der Verlauf ist nur verfügbar, wenn die Seite mindestens einmal über Ihr Konto gecrawlt wurde. Die Daten sind in aufsteigender Reihenfolge nach Datum sortiert.

11. API tf_perf

Beschreibung : Analysiert die mobile Leistung einer Seite mithilfe von Google Lighthouse / PageSpeed Insights. Gibt die Gesamtleistungsbewertung und die Core Web Vitals zurück: FCP, LCP, TBT, CLS, Speed Index, TTI und TTFB.

Endpunkt : https://www.textfocus.net/apis/tf_perf/

Methode : POST

Antwort

Beispiel für eine JSON-Antwort :

{
    "version": "1.0.4",
    "params": {
        "url": "https://beweb.fr/seo/",
        "key": "Ihr API-Schlüssel"
    },
    "result": {
        "url": "https://beweb.fr/seo/",
        "scorePerf": 72.0,
        "strategy": "MOBILE",
        "metrics": {
            "first-contentful-paint":    { "value": 1820, "score": 75, "unit": "ms" },
            "largest-contentful-paint":  { "value": 3200, "score": 48, "unit": "ms" },
            "total-blocking-time":       { "value": 240,  "score": 62, "unit": "ms" },
            "cumulative-layout-shift":   { "value": 0.04, "score": 90, "unit": ""   },
            "speed-index":               { "value": 2900, "score": 71, "unit": "ms" },
            "interactive":               { "value": 4100, "score": 55, "unit": "ms" },
            "server-response-time":      { "value": 310,  "score": 85, "unit": "ms" }
        }
    },
    "response": 200,
    "message": "ok",
    "timing": 8.4,
    "creditUsed": 1,
    "method": "tf_perf",
    "credits": 291
}

Felder der Antwort

Hinweis: Die Ergebnisse werden 60 Minuten lang zwischengespeichert. Verwenden Sie force_refetch=1, um eine neue Analyse zu erzwingen.

12. API tf_links

Beschreibung : Extrahiert alle ausgehenden Links einer Seite: Ankertext, aufgelöste URL (relativ → absolut), rel-Attribut, Position auf der Seite (Hauptbereich, Navigation, Fußzeile, Nebenbereich, Kopfzeile, Breadcrumb) und Typ (intern oder extern).

Endpunkt : https://www.textfocus.net/apis/tf_links/

Methode : POST

Antwort

Beispiel für eine JSON-Antwort :

{
    "version": "1.0.4",
    "params": {
        "url": "https://beweb.fr/seo/",
        "key": "Ihr API-Schlüssel"
    },
    "result": {
        "url": "https://beweb.fr/seo/",
        "total": 34,
        "internal": 22,
        "external": 12,
        "links": [
            {
                "url": "https://beweb.fr/audit-seo/",
                "anchor": "audit seo",
                "rel": null,
                "title": null,
                "location": "main",
                "type": "internal"
            },
            {
                "url": "https://www.google.fr/",
                "anchor": "google",
                "rel": "nofollow",
                "title": "Google",
                "location": "footer",
                "type": "external"
            }
        ]
    },
    "response": 200,
    "message": "ok",
    "timing": 1.8,
    "creditUsed": 1,
    "method": "tf_links",
    "credits": 290
}

Felder der Antwort

Hinweis: Die HTTP-Codes der einzelnen Links werden nicht geprüft (um Dutzende zusätzlicher Anfragen zu vermeiden). Seitenanker (#...), mailto:- und tel:-Links werden ausgeschlossen.

13. API tf_seo_bulk

Beschreibung : Massen-On-Page-SEO-Audit: Analysiert bis zu 50 URLs nacheinander und sendet die zusammengefassten Ergebnisse an eine Callback-URL. Credits werden nur für erfolgreich analysierte Seiten verbraucht.

Endpunkt : https://www.textfocus.net/apis/tf_seo_bulk/

Methode : POST

Sofortige Antwort (202)

{
    "response": 202,
    "message": "processing started",
    "urls_count": 5
}

An den Callback gesendete Nutzdaten

{
    "response": 200,
    "method": "tf_seo_bulk",
    "processed": 4,
    "errors": 1,
    "skipped": 0,
    "credits_consumed": 4,
    "timing": 38.2,
    "results": [
        {
            "url": "https://example.com/page-1",
            "status": "ok",
            "scoreSeo": 67.3,
            "scoreSem": 52.0,
            "title": "Titre de la page",
            "h1": "Titre H1",
            "description": "Meta description...",
            "nbMots": 842
        },
        {
            "url": "https://example.com/page-unreachable",
            "status": "error",
            "error": "analysis returned no result"
        }
    ]
}

Champs-Payload-Callback

Hinweis: Die Wartezeit zwischen den einzelnen URLs beträgt 1 Sekunde. Bei 50 URLs kann die Verarbeitung mehrere Minuten dauern. Stellen Sie sicher, dass Ihr Callback-Endpunkt POST-Anfragen mit dem Content-Type: application/json akzeptiert.

7. Verwaltung asynchroner Antworten

Einige APIs, wie z. B. tf_semantic, können eine asynchrone Verarbeitung erfordern.
In diesem Fall kann ein Callback festgelegt werden, der die Antwort auf Ihrem Server empfängt.

<?php
	public function my_callback(){
    		log_message('error', 'Call of my_callback');
    		$payload = file_get_contents('php://input');
    		log_message('error', 'Content : '. $payload);
    		print_r($payload);
	}
?>