skip to Main Content

I am trying to make a POST request for Indexnow protocol, which allows the user to send link massive to search engine (BING) for instant indexing. As I read all documentation, I found that this protocol suggests such JSON request construction:

POST /indexnow HTTP/1.1
Content-Type: application/json; charset=utf-8
Host: <searchengine>
{
  "host": "www.example.com",
  "key": "265f7fb3bd6c41118f6bf05568d9c825",
  "urlList": [
      "https://www.example.com/url1",
      "https://www.example.com/folder/url2",
      "https://www.example.com/url3"
      ]
}

I chose to use Python, and here is my code for this POST request:

import advertools as adv
import pandas as pd
import requests
import json
import time


def submit_url_set(set_:list, key, location, host="https://www.bing.com", headers={"Content-type":"application/json", "charset":"utf-8"}):
     key = "91ca7c564b334f38b0b1ed90eec8g8b2"
     data = {
     "host": "www.bing.com",
     "key": key,
     "keyLocation": "https://uchet.kz/91ca7c564b334f38b0b1ed90eec8g8b2.txt",
     "urlList": [
    'https://uchet.kz/news/formirovanie-obshchestva-chistogo-ot-korruptsii-dobivaetsya-tokaev/',
    'https://uchet.kz/news/pravila-polucheniya-iin-inostrantsu-v-rk-izmeneny/',
    'https://uchet.kz/news/zabolevaemost-koronavirusom-sredi-shkolnikov-vyrosla-v-13-raza/',
    'https://uchet.kz/news/izmeneny-pravila-provedeniya-tamozhennoy-ekspertizy/'
      ]
     }
     r = requests.post(host, data=data, headers=headers)
     return r.status_code

After script runs, nothing returns.
I expected the script to return server response code HTTP-code 200 OK

What was I really expected

Getting the server response code for each indexing url.

2

Answers


  1. Chosen as BEST ANSWER

    Go to the Post Requests Online

    1. Type your search engine URL

    2. Put your code in the window below in this format:

      {
        "host": "your_site",
        "key": "your_key",
        "urlList": [
             "https://your_site/1",
             "https://your_site/2",
             "https://your_site/3"
            ]
       }
      
    3. Press SEND.

    4. Done

    SCREENSHOT


  2. I am the author of the code.

    IndexNow API doesn’t return a response, if you don’t take an error message it means that the request has been taken.

    You can check your log files to validate that.

    Also, https://www.searchenginejournal.com/indexnow-api-python/429726/ in the article, this is stated.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search