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.
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.