{
  "openapi": "3.1.0",
  "info": {
    "title": "Automaton SEO Services",
    "version": "2.0.0",
    "description": "SEO-Daten-Services fuer AI-Agents: SERP-Reports (Top-20/Top-100), Keyword-Metrics (Suchvolumen/CPC), Keyword-Ideas, Ranked-Keywords, Backlinks-Report, Competitors. Bezahlung per x402: USDC auf Base an payTo, anschliessend Request mit Header x-payment-tx: <txHash> wiederholen.",
    "contact": {
      "email": "info@connskill.com"
    },
    "x-guidance": "Jeder /v1/*-Endpoint antwortet ohne Zahlung mit HTTP 402 (x402 v2 accepts + Preis). Zahle den geforderten USDC-Betrag (Base) an payTo, dann Request erneut mit Header x-payment-tx: <txHash>. SERP-Report hat zwei Tiers (0.10 Top-20, 0.50 Top-100), alle anderen Endpoints Festpreis laut accepts."
  },
  "paths": {
    "/v1/serp-report": {
      "post": {
        "operationId": "serpReport",
        "summary": "SERP-Report fuer ein Keyword erzeugen",
        "tags": [
          "SERP"
        ],
        "x-payment-info": {
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "min": "0.100000",
            "max": "0.500000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "keyword"
                ],
                "properties": {
                  "keyword": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Suchbegriff"
                  },
                  "location_code": {
                    "type": "integer",
                    "default": 2276,
                    "description": "DataForSEO location (2276 = Deutschland)"
                  },
                  "language_code": {
                    "type": "string",
                    "default": "de"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Report geliefert",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "report"
                  ],
                  "properties": {
                    "status": {
                      "type": "string"
                    },
                    "report": {
                      "type": "object",
                      "description": "SERP-Report mit items[] (rank,title,url,description)"
                    },
                    "costUsd": {
                      "type": "number"
                    }
                  }
                }
              }
            }
          },
          "402": {
            "description": "Payment Required"
          }
        }
      }
    },
    "/health": {
      "get": {
        "summary": "Service-Status (frei)",
        "security": [],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v1/keyword-metrics": {
      "post": {
        "operationId": "keywordMetrics",
        "summary": "Suchvolumen, CPC und Wettbewerb fuer bis zu 1000 Keywords (Google Ads Daten)",
        "tags": [
          "SEO"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.250000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "keywords"
                ],
                "properties": {
                  "keywords": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "minItems": 1,
                    "maxItems": 1000,
                    "description": "Keyword-Liste"
                  },
                  "location_code": {
                    "type": "integer",
                    "default": 2276
                  },
                  "language_code": {
                    "type": "string",
                    "default": "de"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Report geliefert"
          },
          "402": {
            "description": "Payment Required"
          }
        }
      }
    },
    "/v1/keyword-ideas": {
      "post": {
        "operationId": "keywordIdeas",
        "summary": "Keyword-Vorschlaege zu einem Seed-Keyword inkl. Suchvolumen (DataForSEO Labs)",
        "tags": [
          "SEO"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.100000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "keyword"
                ],
                "properties": {
                  "keyword": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Seed-Keyword"
                  },
                  "limit": {
                    "type": "integer",
                    "default": 50,
                    "maximum": 100
                  },
                  "location_code": {
                    "type": "integer",
                    "default": 2276
                  },
                  "language_code": {
                    "type": "string",
                    "default": "de"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Report geliefert"
          },
          "402": {
            "description": "Payment Required"
          }
        }
      }
    },
    "/v1/ranked-keywords": {
      "post": {
        "operationId": "rankedKeywords",
        "summary": "Fuer welche Keywords rankt eine Domain (Position, URL, Suchvolumen)",
        "tags": [
          "SEO"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.150000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "target"
                ],
                "properties": {
                  "target": {
                    "type": "string",
                    "minLength": 3,
                    "description": "Domain, z.B. example.com"
                  },
                  "limit": {
                    "type": "integer",
                    "default": 50,
                    "maximum": 100
                  },
                  "location_code": {
                    "type": "integer",
                    "default": 2276
                  },
                  "language_code": {
                    "type": "string",
                    "default": "de"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Report geliefert"
          },
          "402": {
            "description": "Payment Required"
          }
        }
      }
    },
    "/v1/backlinks-report": {
      "post": {
        "operationId": "backlinksReport",
        "summary": "Backlink-Profil einer Domain: Summary + Top-25 Referring Domains",
        "tags": [
          "SEO"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.300000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "target"
                ],
                "properties": {
                  "target": {
                    "type": "string",
                    "minLength": 3,
                    "description": "Domain, z.B. example.com"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Report geliefert"
          },
          "402": {
            "description": "Payment Required"
          }
        }
      }
    },
    "/v1/competitors": {
      "post": {
        "operationId": "competitors",
        "summary": "Organische Konkurrenten einer Domain mit Ueberschneidungs-Metriken",
        "tags": [
          "SEO"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.200000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "target"
                ],
                "properties": {
                  "target": {
                    "type": "string",
                    "minLength": 3,
                    "description": "Domain, z.B. example.com"
                  },
                  "limit": {
                    "type": "integer",
                    "default": 20,
                    "maximum": 50
                  },
                  "location_code": {
                    "type": "integer",
                    "default": 2276
                  },
                  "language_code": {
                    "type": "string",
                    "default": "de"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Report geliefert"
          },
          "402": {
            "description": "Payment Required"
          }
        }
      }
    }
  }
}