API documentation
All endpoints return JSON. Read endpoints are public; write endpoints require an API key from
your API keys page, sent as
Authorization: Bearer tc_....
Keys can be scoped to read-only or full access when generated — a read-only key
is rejected with a 403 on any write endpoint (like POST /api/v1/ask.php),
so it's safe to hand out to scripts that should never be able to post content.
Q&A
/api/v1/questions.php?page=1&tag=php&category=technology
List recent questions, optionally filtered by tag or category.
/api/v1/question.php?slug=your-question-slug
Fetch a single question with its answers.
/api/v1/ask.php
Create a question. Requires API key. Body: title, body, category, tags (comma-separated).
/api/v1/answers.php?slug=your-question-slug
List a question's answers.
/api/v1/answer.php
Post an answer. Requires API key. Body: slug, body.
/api/v1/comments.php?parent_type=question&parent_id=1
List comments on a question or answer.
/api/v1/comment.php
Post a comment. Requires API key. Body: parent_type (question|answer), parent_id, body.
/api/v1/vote.php
Upvote/downvote a question or answer (toggles on repeat). Requires API key. Body: votable_type, votable_id, value (1 or -1).
/api/v1/save_question.php
Bookmark/unbookmark a question (toggle). Requires API key. Body: slug.
Discovery & taxonomy
/api/v1/tags.php
List the top 100 tags by usage.
/api/v1/categories.php
List active categories.
/api/v1/search.php?q=keyword
Full-text search across questions.
/api/v1/leaderboard.php
Top 50 users by reputation.
/api/v1/roadmap.php
Public roadmap items and their vote counts.
/api/v1/changelog.php
Published changelog entries.
/api/v1/testimonials.php
Published testimonials.
/api/v1/currencies.php
Supported currencies and exchange rates.
/api/v1/site_info.php
Public site settings (name, tagline, base currency) for building third-party clients.
People
/api/v1/users.php?username=someone
Fetch a public profile summary.
/api/v1/me.php
Confirm your API key is valid and see which account it belongs to.
/api/v1/reputation.php?username=someone
A user's reputation event history.
/api/v1/badges.php
The full badge catalog.
/api/v1/user_badges.php?username=someone
Badges a specific user has earned.
/api/v1/follow.php
Follow a user or tag. Requires API key. Body: followable_type (user|tag), followable.
/api/v1/unfollow.php
Unfollow a user or tag. Requires API key. Same body as follow.
/api/v1/notifications.php
Your own notifications. Requires API key.
Groups, jobs & experts
/api/v1/groups.php
List public groups.
/api/v1/group.php?slug=group-slug
Fetch a single public group.
/api/v1/jobs.php
List active job listings.
/api/v1/job.php?slug=job-slug
Fetch a single job listing.
/api/v1/experts.php
List approved experts.
/api/v1/expert.php?username=someone
Fetch a single expert's profile.
/api/v1/group_members.php?slug=group-slug
Members of a public group.
/api/v1/group_join.php
Join a public group. Requires API key. Body: slug.
/api/v1/group_leave.php
Leave a group. Requires API key. Body: slug.
Content & collections
/api/v1/blog_posts.php?page=1
List published blog posts.
/api/v1/blog_post.php?slug=post-slug
Fetch a single published blog post.
/api/v1/collections.php?username=someone
A user's public collections.
/api/v1/collection.php?username=someone&slug=collection-slug
A single public collection and its questions.
/api/v1/question_revisions.php?slug=your-question-slug
Edit history for a question.
/api/v1/answer_revisions.php?answer_id=1
Edit history for an answer.
/api/v1/site_poll.php
The currently active site-wide poll with live vote counts.
/api/v1/announcements.php
Currently enabled site announcements.
/api/v1/convert_currency.php?amount_cents=1000&to=EUR
Convert a base-currency cent amount into another supported currency.
Your account (requires API key)
/api/v1/drafts.php
List your own draft questions.
/api/v1/draft_save.php
Create or update a draft. Body: title, body, category (optional), id (optional, to update).
/api/v1/saved_searches.php
List your saved searches.
/api/v1/saved_search_save.php
Save a search. Body: label, query.
/api/v1/saved_search_delete.php
Delete a saved search you own. Body: id.
/api/v1/roadmap_vote.php
Vote for a roadmap item (toggles on repeat). Body: id.
/api/v1/account_summary.php
One-call overview: reputation, Pro status, question/answer/badge counts, unread notifications.
/api/v1/orders.php
Your own past orders.
/api/v1/invoices.php
Your own invoices.
/api/v1/subscription.php
Your Pro membership status.
/api/v1/notification_prefs.php
Your notification email preferences.
/api/v1/notification_prefs_update.php
Update preferences. Body: any of email_on_answer, email_on_mention, email_on_message, email_tag_digest (booleans).
/api/v1/notifications_mark_read.php
Mark one notification (body: id) or all of yours read (omit id).
/api/v1/is_following.php?followable_type=question&followable=slug
Check whether you follow a user, tag, or question.
/api/v1/block_user.php
Block a user. Body: username.
/api/v1/unblock_user.php
Unblock a user. Body: username.
/api/v1/blocked_users.php
Users you have blocked.
/api/v1/consultations.php
Your consultations, as requester or expert.
/api/v1/consultation_request.php
Request a paid consultation with an expert. Body: expert_username, message (optional).
Moderation & admin (requires an admin/moderator API key)
/api/v1/reports.php
Open user-submitted reports queue.
/api/v1/spam_flags.php
Pending automated spam flags.
/api/v1/suggested_edits.php
Pending community-suggested edits.
/api/v1/audit_log.php
Recent admin action log. Admin-only (moderators are not allowed).
/api/v1/webhooks.php
List configured webhooks (secrets never included). Admin-only.
/api/v1/webhook_create.php
Register a webhook. Admin-only. Body: label, url (https only), events (comma-separated). Returns the secret once.
/api/v1/webhook_delete.php
Remove a webhook. Admin-only. Body: id.
/api/v1/webhook_deliveries.php?webhook_id=1
Delivery log for one webhook. Admin-only.
Rate limits
Write endpoints are limited per API key, typically 20-60 requests/hour depending on the endpoint. A 429 response with
{"error":"Rate limit exceeded"} means back off and retry later.
Read endpoints need no API key and are rate-limited by IP at 120 requests/minute.