Skip to content

/get-query

Retrieves content recommendations for a given query. Works on any query, whether or not it was created via the API.

  • Method: POST
  • Endpoint: https://app.neuronwriter.com/neuron-api/0.5/writer/get-query

After creating a query with /new-query it usually takes ~60 seconds to prepare recommendations. Use /get-query to check whether analysis finished (status == "ready") and, when it has, read the recommendations from the response.

Parameters

ParameterExampleDescription
query32dee2a89374a722The ID of your query.

Response

KeyDescription
statusWhether the query has been processed. Values: not found, waiting, in progress, ready. When ready, the keys below are included.
metricsGeneral recommendations such as typical content length and readability target. Example: {'word_count': {'median': 1864, 'target': 1864}, 'readability': {'median': 40, 'target': 40}}
terms_txtContent term suggestions (title, desc_title, h1, h2, content_basic, content_extended) in plain text. Handy for feeding directly into ChatGPT/Claude prompts.
termsDetailed term data: title/desc/h1/h2/content_basic/content_extended each as a list of {t, usage_pc, sugg_usage}, plus entities with {t, importance, relevance, confidence, links}.
ideasQuestions related to the topic: suggest_questions, people_also_ask, content_questions.
competitorsBasic info about the SERP competitors: rank, url, title, desc.
serp_summaryUser intent + content-type stats across the TOP30 results. Example: {'top_intent': 'informational', 'intent_stats': {...}, 'top_content_type': 'educational', 'content_type_stats': {...}} (available for queries created after 2025-08-26).
python
import json, requests, time

API_ENDPOINT = 'https://app.neuronwriter.com/neuron-api/0.5/writer'
API_KEY = '<your-neuron-api-key>'
headers = {"X-API-KEY": API_KEY, "Accept": "application/json", "Content-Type": "application/json"}

def get_query(query_id):
    payload = json.dumps({"query": query_id})
    r = requests.post(API_ENDPOINT + "/get-query", headers=headers, data=payload)
    return r.json()

query_id = "79ca6b6b45fb9d67"
while True:
    data = get_query(query_id)
    if data.get("status") == "ready":
        break
    time.sleep(15)

print("Word count target:", data["metrics"]["word_count"]["target"])
print("Title terms:", data["terms_txt"]["title"])
print("PAA:", [q["q"] for q in data["ideas"]["people_also_ask"]])

For prompt-stuffing

terms_txt is the fastest path into an LLM prompt. The structured terms object is better when you want to programmatically check usage ranges and build a coverage score.