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
| 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. |
Search questions
readPOST 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
| Name | Type | Description |
|---|---|---|
| query required | string | Search words. |
| limit | integer | 1 to 50. Default: 20. |
Request
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}' result = client.call("quora", "search_questions", {"query":"bookkeeping for freelancers","limit":20}) const result = await cotlet.call('quora', 'search_questions', {"query":"bookkeeping for freelancers","limit":20}); 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
}
]
} Get question
readPOST 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
| Name | Type | Description |
|---|---|---|
| question_url required | string | Question URL on quora.com. |
| answers_limit | integer | 0 to 20. Default: 5. |
Request
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"}' result = client.call("quora", "get_question", {"question_url":"https://example.com"}) const result = await cotlet.call('quora', 'get_question', {"question_url":"https://example.com"}); 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..."
}
]
} List my answers
readPOST 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
| Name | Type | Description |
|---|---|---|
| limit | integer | 1 to 50. Default: 20. |
| cursor | string | Next page cursor from the previous call. |
Request
curl -X POST https://cotlet.dev/api/v1/quora/list_my_answers \
-H "Authorization: Bearer $COTLET_API_KEY" result = client.call("quora", "list_my_answers") const result = await cotlet.call('quora', 'list_my_answers'); 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
} List answer requests
readPOST 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
| Name | Type | Description |
|---|---|---|
| limit | integer | 1 to 50. Default: 20. |
Request
curl -X POST https://cotlet.dev/api/v1/quora/list_answer_requests \
-H "Authorization: Bearer $COTLET_API_KEY" result = client.call("quora", "list_answer_requests") const result = await cotlet.call('quora', 'list_answer_requests'); 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"
}
]
} List my Spaces
readPOST 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 -X POST https://cotlet.dev/api/v1/quora/list_my_spaces \
-H "Authorization: Bearer $COTLET_API_KEY" result = client.call("quora", "list_my_spaces") const result = await cotlet.call('quora', 'list_my_spaces'); 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"
}
]
} Get Space stats
readPOST 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
| Name | Type | Description |
|---|---|---|
| space_id required | string | Space ID from list_my_spaces. |
Request
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"}' result = client.call("quora", "get_space_stats", {"space_id":"space_8c41d2"}) const result = await cotlet.call('quora', 'get_space_stats', {"space_id":"space_8c41d2"}); 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
| Name | Type | Description |
|---|---|---|
| space_id required | string | Space ID from list_my_spaces. |
Request
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"}' result = client.call("quora", "list_space_submissions", {"space_id":"space_8c41d2"}) const result = await cotlet.call('quora', 'list_space_submissions', {"space_id":"space_8c41d2"}); 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 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
| Name | Type | Description |
|---|---|---|
| question_url required | string | Question URL on quora.com. |
| body_markdown required | string | Answer text. Images by URL. |
Request
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."}' 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."}) 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."}); 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"
} 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
| Name | Type | Description |
|---|---|---|
| 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 -X POST https://cotlet.dev/api/v1/quora/ask_question \
-H "Authorization: Bearer $COTLET_API_KEY" \
-H "Content-Type: application/json" \
-d '{"question":"question"}' result = client.call("quora", "ask_question", {"question":"question"}) const result = await cotlet.call('quora', 'ask_question', {"question":"question"}); 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 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
| Name | Type | Description |
|---|---|---|
| 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 -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"}' 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"}) 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"}); 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"
} 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
| Name | Type | Description |
|---|---|---|
| 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 -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"}' result = client.call("quora", "review_space_submission", {"space_id":"sp_5521","submission_id":"sub_8841","action":"queue"}) const result = await cotlet.call('quora', 'review_space_submission', {"space_id":"sp_5521","submission_id":"sub_8841","action":"queue"}); 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"
}