REST API reference

Quora API

11 endpoints for Quora. Each one is a POST with a JSON body, called with your API key.

Base URL
https://cotlet.dev/api/v1/quora
Connects with
Your own Quora account (Space admin or moderator role for stats and submissions)
Integration page
Quora
Quora Endpoints
Endpoint Access Description
search_questions read Questions matching a keyword, with answer counts.
get_question read Question text and its top answers with author and upvotes.
list_my_answers read Your answers with question and URL, from your Your Content page.
list_answer_requests read Questions other people asked you to answer.
list_my_spaces read Spaces you follow or help run, with your role.
get_space_stats read Views, followers, upvotes, comments and notification clicks, all-time and last 7 days, plus top content.
list_space_submissions read Answers, posts and questions followers submitted to your Space, waiting for review.
post_answer write Publish an answer as you under a question.
ask_question write Add a new public question to Quora.
post_to_space write New post in a Space you contribute to, posted now or added to its queue.
review_space_submission write Approve, queue or pass on a follower submission. Space admins and moderators only.

POST https://cotlet.dev/api/v1/quora/search_questions

Searches Quora for questions matching your words and returns them in the order Quora shows them, with the number of answers each has. Use question_url from an item with get_question. Pages hold up to 50 questions.

Parameters

Parameters: search_questions
NameTypeDescription
query required string Search words.
limit integer 1 to 50. Default: 20.

Request

cURL
curl -X POST https://cotlet.dev/api/v1/quora/search_questions \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query":"bookkeeping for freelancers","limit":20}'
Python
result = client.call("quora", "search_questions", {"query":"bookkeeping for freelancers","limit":20})
Node.js
const result = await cotlet.call('quora', 'search_questions', {"query":"bookkeeping for freelancers","limit":20});
CLI
cotlet call quora search_questions --data '{"query":"bookkeeping for freelancers","limit":20}'

Example response

{
  "questions": [
    {
      "question": "How do freelancers track expenses for taxes?",
      "question_url": "https://www.quora.com/How-do-freelancers-track-expenses-for-taxes",
      "answers": 3
    },
    {
      "question": "Do I need bookkeeping software as a freelancer?",
      "question_url": "https://www.quora.com/Do-I-need-bookkeeping-software-as-a-freelancer",
      "answers": 1
    }
  ]
}

POST https://cotlet.dev/api/v1/quora/get_question

Returns one question with its text, answer count and the top answers in the order Quora shows them. Use it before answering, so your agent sees what is already said. answers_limit set to 0 returns the question only.

Parameters

Parameters: get_question
NameTypeDescription
question_url required string Question URL on quora.com.
answers_limit integer 0 to 20. Default: 5.

Request

cURL
curl -X POST https://cotlet.dev/api/v1/quora/get_question \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"question_url":"https://example.com"}'
Python
result = client.call("quora", "get_question", {"question_url":"https://example.com"})
Node.js
const result = await cotlet.call('quora', 'get_question', {"question_url":"https://example.com"});
CLI
cotlet call quora get_question --data '{"question_url":"https://example.com"}'

Example response

{
  "question": "How do freelancers track expenses for taxes?",
  "question_url": "https://www.quora.com/How-do-freelancers-track-expenses-for-taxes",
  "answers": 3,
  "top_answers": [
    {
      "author": "Dana Reyes",
      "upvotes": 41,
      "preview": "Use a separate account for business costs and keep every receipt..."
    }
  ]
}

POST https://cotlet.dev/api/v1/quora/list_my_answers

Lists the answers on your Your Content page, newest first, with the question each answers and its URL. Pass next_cursor back as cursor for the next page.

Parameters

Parameters: list_my_answers
NameTypeDescription
limit integer 1 to 50. Default: 20.
cursor string Next page cursor from the previous call.

Request

cURL
curl -X POST https://cotlet.dev/api/v1/quora/list_my_answers \
  -H "Authorization: Bearer $COTLET_API_KEY"
Python
result = client.call("quora", "list_my_answers")
Node.js
const result = await cotlet.call('quora', 'list_my_answers');
CLI
cotlet call quora list_my_answers

Example response

{
  "answers": [
    {
      "answer_id": "391847562",
      "question": "How do freelancers track expenses for taxes?",
      "url": "https://www.quora.com/How-do-freelancers-track-expenses-for-taxes/answer/Your-Name",
      "created_at": "2026-10-10T14:20:00Z"
    }
  ],
  "next_cursor": null
}

POST https://cotlet.dev/api/v1/quora/list_answer_requests

Lists the requests on your Answer Requests page, with the question and who asked. Anyone on Quora can send a request to anyone, so expect questions outside your topics. Pass question_url to get_question.

Parameters

Parameters: list_answer_requests
NameTypeDescription
limit integer 1 to 50. Default: 20.

Request

cURL
curl -X POST https://cotlet.dev/api/v1/quora/list_answer_requests \
  -H "Authorization: Bearer $COTLET_API_KEY"
Python
result = client.call("quora", "list_answer_requests")
Node.js
const result = await cotlet.call('quora', 'list_answer_requests');
CLI
cotlet call quora list_answer_requests

Example response

{
  "requests": [
    {
      "question": "What is the best way to invoice a client abroad?",
      "question_url": "https://www.quora.com/What-is-the-best-way-to-invoice-a-client-abroad",
      "requested_by": "Sam Ortiz",
      "requested_at": "2026-10-09T08:12:00Z"
    }
  ]
}

POST https://cotlet.dev/api/v1/quora/list_my_spaces

Lists your Spaces with your role in each: owner, admin, moderator, contributor or follower. The role decides what you can do: only owners, admins, moderators and contributors can post, and only owners, admins and moderators see stats and submissions. Use space_id in the other Space tools.

Parameters

No parameters.

Request

cURL
curl -X POST https://cotlet.dev/api/v1/quora/list_my_spaces \
  -H "Authorization: Bearer $COTLET_API_KEY"
Python
result = client.call("quora", "list_my_spaces")
Node.js
const result = await cotlet.call('quora', 'list_my_spaces');
CLI
cotlet call quora list_my_spaces

Example response

{
  "spaces": [
    {
      "space_id": "sp_5521",
      "name": "Freelance Finance",
      "role": "admin",
      "url": "https://freelancefinance.quora.com"
    },
    {
      "space_id": "sp_1190",
      "name": "Small Business Tips",
      "role": "follower",
      "url": "https://smallbiztips.quora.com"
    }
  ]
}

POST https://cotlet.dev/api/v1/quora/get_space_stats

Returns the five statistics Quora lists for a Space, as totals and for the last 7 days, plus Top Content ranked by views and upvotes. Visible to Space owners, admins and moderators.

Parameters

Parameters: get_space_stats
NameTypeDescription
space_id required string Space ID from list_my_spaces.

Request

cURL
curl -X POST https://cotlet.dev/api/v1/quora/get_space_stats \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"space_id":"space_8c41d2"}'
Python
result = client.call("quora", "get_space_stats", {"space_id":"space_8c41d2"})
Node.js
const result = await cotlet.call('quora', 'get_space_stats', {"space_id":"space_8c41d2"});
CLI
cotlet call quora get_space_stats --data '{"space_id":"space_8c41d2"}'

Example response

{
  "space_id": "sp_5521",
  "all_time": {
    "views": 182400,
    "followers": 3120,
    "upvotes": 5210,
    "comments": 640,
    "notification_clicks": 1870
  },
  "last_7_days": {
    "views": 4120,
    "followers": 38,
    "upvotes": 96,
    "comments": 12,
    "notification_clicks": 41
  },
  "top_content": [
    {
      "title": "Month-end checklist",
      "views": 9300,
      "upvotes": 210
    }
  ]
}

POST https://cotlet.dev/api/v1/quora/list_space_submissions

Lists the submissions in the Space inbox: answers, posts and questions followers sent for consideration. Admins and moderators only. Spaces do not accept submissions unless the Space turned them on. Pass submission_id to review_space_submission.

Parameters

Parameters: list_space_submissions
NameTypeDescription
space_id required string Space ID from list_my_spaces.

Request

cURL
curl -X POST https://cotlet.dev/api/v1/quora/list_space_submissions \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"space_id":"space_8c41d2"}'
Python
result = client.call("quora", "list_space_submissions", {"space_id":"space_8c41d2"})
Node.js
const result = await cotlet.call('quora', 'list_space_submissions', {"space_id":"space_8c41d2"});
CLI
cotlet call quora list_space_submissions --data '{"space_id":"space_8c41d2"}'

Example response

{
  "submissions": [
    {
      "submission_id": "sub_8841",
      "type": "post",
      "title": "Invoice template for freelancers",
      "author": "Ana Lopez",
      "submitted_at": "2026-10-09T10:30:00Z"
    }
  ]
}

Post answer

write Confirm

POST https://cotlet.dev/api/v1/quora/post_answer

Publishes an answer under your name below the question you name. Images go in the body as URLs. The answer is public at once and follows Quora's answer rules. By default you confirm each call; you can switch that off for this tool.

Parameters

Parameters: post_answer
NameTypeDescription
question_url required string Question URL on quora.com.
body_markdown required string Answer text. Images by URL.

Request

cURL
curl -X POST https://cotlet.dev/api/v1/quora/post_answer \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"question_url":"https://www.quora.com/How-do-freelancers-track-expenses-for-taxes","body_markdown":"I keep one card for business costs only and export it to a spreadsheet every month."}'
Python
result = client.call("quora", "post_answer", {"question_url":"https://www.quora.com/How-do-freelancers-track-expenses-for-taxes","body_markdown":"I keep one card for business costs only and export it to a spreadsheet every month."})
Node.js
const result = await cotlet.call('quora', 'post_answer', {"question_url":"https://www.quora.com/How-do-freelancers-track-expenses-for-taxes","body_markdown":"I keep one card for business costs only and export it to a spreadsheet every month."});
CLI
cotlet call quora post_answer --data '{"question_url":"https://www.quora.com/How-do-freelancers-track-expenses-for-taxes","body_markdown":"I keep one card for business costs only and export it to a spreadsheet every month."}'

Example response

{
  "answer_id": "391847562",
  "status": "published",
  "url": "https://www.quora.com/How-do-freelancers-track-expenses-for-taxes/answer/Your-Name",
  "created_at": "2026-10-11T14:20:00Z"
}

Ask question

write Confirm

POST https://cotlet.dev/api/v1/quora/ask_question

Adds a new question under your name. In a Space where you are not a contributor, a question needs approval from an admin or moderator before it appears. By default you confirm each call; you can switch that off for this tool.

Parameters

Parameters: ask_question
NameTypeDescription
question required string Question text, ending with a question mark.
space_id string Post it in this Space instead of Quora at large.

Request

cURL
curl -X POST https://cotlet.dev/api/v1/quora/ask_question \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"question":"question"}'
Python
result = client.call("quora", "ask_question", {"question":"question"})
Node.js
const result = await cotlet.call('quora', 'ask_question', {"question":"question"});
CLI
cotlet call quora ask_question --data '{"question":"question"}'

Example response

{
  "question": "How do I split a client invoice across two currencies?",
  "question_url": "https://www.quora.com/How-do-I-split-a-client-invoice-across-two-currencies",
  "status": "published"
}

Post to Space

write Confirm

POST https://cotlet.dev/api/v1/quora/post_to_space

Creates a post in a Space where you are an owner, admin, moderator or contributor. Mode post publishes it at once. Mode queue adds it to the Space queue, which posts it over a staggered period; queue needs an admin or moderator role. By default you confirm each call; you can switch that off for this tool.

Parameters

Parameters: post_to_space
NameTypeDescription
space_id required string Space ID from list_my_spaces.
body_markdown required string Post text. Images by URL.
title string Optional post title.
mode enum post or queue. Default: post.

Request

cURL
curl -X POST https://cotlet.dev/api/v1/quora/post_to_space \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"space_id":"sp_5521","title":"Month-end checklist","body_markdown":"Five things to reconcile before you close the books.","mode":"queue"}'
Python
result = client.call("quora", "post_to_space", {"space_id":"sp_5521","title":"Month-end checklist","body_markdown":"Five things to reconcile before you close the books.","mode":"queue"})
Node.js
const result = await cotlet.call('quora', 'post_to_space', {"space_id":"sp_5521","title":"Month-end checklist","body_markdown":"Five things to reconcile before you close the books.","mode":"queue"});
CLI
cotlet call quora post_to_space --data '{"space_id":"sp_5521","title":"Month-end checklist","body_markdown":"Five things to reconcile before you close the books.","mode":"queue"}'

Example response

{
  "post_id": "sp_post_2207",
  "space_id": "sp_5521",
  "status": "queued"
}

Review Space submission

write Confirm

POST https://cotlet.dev/api/v1/quora/review_space_submission

Approve publishes the submission at once. Queue adds it to the Space queue. Pass removes it from the pending list, and Quora does not notify the submitter. By default you confirm each call; you can switch that off for this tool.

Parameters

Parameters: review_space_submission
NameTypeDescription
space_id required string Space ID from list_my_spaces.
submission_id required string Submission ID from list_space_submissions.
action required enum approve, queue or pass.

Request

cURL
curl -X POST https://cotlet.dev/api/v1/quora/review_space_submission \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"space_id":"sp_5521","submission_id":"sub_8841","action":"queue"}'
Python
result = client.call("quora", "review_space_submission", {"space_id":"sp_5521","submission_id":"sub_8841","action":"queue"})
Node.js
const result = await cotlet.call('quora', 'review_space_submission', {"space_id":"sp_5521","submission_id":"sub_8841","action":"queue"});
CLI
cotlet call quora review_space_submission --data '{"space_id":"sp_5521","submission_id":"sub_8841","action":"queue"}'

Example response

{
  "submission_id": "sub_8841",
  "space_id": "sp_5521",
  "status": "queued"
}