Danbooru
Login Posts Comments Notes Artists Tags Pools Wiki Forum More »
Search Changes Help | Posts (0) History
  • Help
guro
scat
furry -rating:g

Recent Changes (all)

  • robin (honkai: star rail)
  • alien stage
  • list of nijisanji official costumes
  • tag group:text
  • lauren iroas
  • oikawa ritsu
  • oikawa yuuki
  • oikawa amane
  • ienaga mugi
  • sukoya kana
  • miyafuji hitomi
  • hoshikawa sara
  • sister claire
  • itezawa asayuri
  • hokusei project
  • kumagaya rion
  • new world text
  • azul ashengrotto
  • vivi (vivinos)
  • nos (vivinos)
  • ishmael (project moon)
  • flapper girl
  • list of arknights characters
  • murasaki suzuri
  • asuka tojiko

Options

  • Wiki History
  • Discussions
  • What Links Here

help:api

Danbooru offers a REST-like API to make scripting easy. All you need is a way to GET, POST, PUT and DELETE to URLs. Responses are given in either XML or JSON format.

Important Notice

Clients should identify themselves with a unique User-Agent header that contains your user ID, for example YourBotName/1.0 (user #id), where id is your Danbooru user ID. Don't impersonate browsers or use the default header of your library.

You should reasonably rate-limit yourself when making requests to your API. Badly-behaved bots will be banned swiftly.
To avoid spamming us with requests, prefer general endpoints rather than sequential ID scans: for example, if you need to retrieve a large amount of posts, use /posts.json?tags=id:1...100, not /posts/1.json to /posts/100.json

Testing

API calls can be tested on https://testbooru.donmai.us. Scripts should be tested there before using them on the main site.

Basics

HTTP defines four basic request methods: GET, POST, PUT and DELETE. You'll be using these methods to interact with the Danbooru API. Most API calls that change the state of the database (like creating, updating, or deleting something) require an HTTP POST, PUT or DELETE call. API calls that only retrieve data can typically be done with an HTTP GET call.

A URL is considered a resource and the HTTP methods are actions you perform on the resource. For example, GET /posts/23.json returns a JSON representation of post #23. GET /posts/23.xml returns an XML representation. PUT or PATCH /posts/6.json would update the resource, for example changing its tags.

Some resources require parameters. For example, you can find tags that start with the letter 'a' by calling GET /tags.json?search[name_matches]=a*. This will give you a JSON listing of all tags with names starting with an a.

For POST, PUT and DELETE requests you must pass these parameters along in the body instead of the query parameters. Body parameters may be encoded in one of two ways. The usual way is with key-values pairs using "Content-Type: application/x-www-form-urlencoded":

curl -u "$login:$api_key" -X PUT "https://testbooru.donmai.us/posts/6.json" -d 'post[rating]=s&post[tag_string]=danboo'

Parameters may also be encoded as JSON using "Content-Type: application/json":

curl -u "$login:$api_key" -X PUT "https://testbooru.donmai.us/posts/6.json" -d '{ "post": { "rating": "s", "tag_string": "danboo" } }' -H "Content-Type: application/json" 

Responses

All API calls that change state will return a single element response (for XML calls). They are formatted like this:

<?xml version="1.0" encoding="UTF-8"?>
<response success="false" reason="duplicate"/>

For JSON responses, they'll look like this:

{ "success": false, "reason": "duplicate" }

While you can usually determine success or failure based on the response object, you can also figure out what happened based on the HTTP status code. In addition to the standard ones, Danbooru uses some custom status codes in the 4xx and 5xx range.

  • 200 OK: Request was successful
  • 204 No Content: Request was successful (returned by create actions)
  • 400 Bad Request: The given parameters could not be parsed
  • 401 Unauthorized: Authentication failed
  • 403 Forbidden: Access denied (see help:users for permissions information)
  • 404 Not Found: Not found
  • 410 Gone: Pagination limit (see help:users for pagination limits)
  • 420 Invalid Record: Record could not be saved
  • 422 Locked: The resource is locked and cannot be modified
  • 423 Already Exists: Resource already exists
  • 424 Invalid Parameters: The given parameters were invalid
  • 429 User Throttled: User is throttled, try again later (see help:users for API limits)
  • 500 Internal Server Error: A database timeout, or some unknown error occurred on the server
  • 502 Bad Gateway: Server cannot currently handle the request, try again later (returned during heavy load)
  • 503 Service Unavailable: Server cannot currently handle the request, try again later (returned during downbooru)

Authentication

You will need an API key if you need to login using the API. You can generate an API key by visiting your user profile and clicking the Generate API key button.

To authenticate with the API, pass the login and api_key URL parameters, where login is your username and api_key is your API key:

https://danbooru.donmai.us/profile.json?login=your_username&api_key=your_api_key

You can also authenticate using HTTP Basic Authentication:

curl "https://$username:$api_key@danbooru.donmai.us/profile.json"
curl --user "$username:$api_key" https://danbooru.donmai.us/profile.json

Most HTTP libraries support HTTP basic authentication out of the box. If yours doesn't, you can generate the authentication header manually. The format is Authentication: Basic $secret where $secret = base64($username + ":" + $api_key). In other words, concatenate your username and API key together, separated by a colon, then Base64 encode the result:

curl --header "Authorization: Basic $(printf "%s" "$username:$api_key" | base64)" https://danbooru.donmai.us/profile.json

If you are writing a user script for a browser, you do not need to embed an API key. You can rely on the user's session.

⚠️ IMPORTANT! Keep your API key secret. Treat it like a password. Gaining access to it allows full access to your account. Do not publicly post your API key or distribute it in scripts.

Rate Limits

There's a global rate limit on read requests of 10 requests per second regardless of account or endpoint. This is intended for short bursts of activity—for longer sessions, please try to stay at around 1 request per second, to avoid slowing down the site for other users.

The default rate limit for API writes is 1 per second for regular users, or 4 per second for Gold and above users. Most API routes will override this to take additional factors into consideration, such as whether you have made edits in the past.

Rate Limit Table

"Existing editor" means a user who has an edit of that particular resource within a specified timeframe, 24 hours or less.

ActionRate LimitBurst
Artist CommentariesBuilders24/minute60
Existing editors4/minute30
Other users1/minute20
ArtistsBuilders12/minute80
Existing editors2/minute30
Other users1/1.5 minutes10
Backup CodesCreating1/minute10
Recovering1/10 minutes3
BansModerators1/minute60
Bulk Update RequestsAdmins1/second50
Builders1/minute20
Existing editors1/minute20
Other users1/minute5
CommentsExisting editors1/minute3
Other users1/2 minutes2
Comment VotesExisting editors8/minute60
Other users1/minute30
DmailsBuilders4/minute60
Existing editors1/minute5
Other users1/2 minutes5
EmailsModerators1/5 minutes5
Other users1/10 minutes3
Popular PostsJSON listing1/minute50
Favorite GroupsCreating1/minute10
FavoritesExisting editors60/minute100
Other users8/minute60
Forum PostsBuilders1/minute10
Existing editors1/minute3
Other users1/2 minutes2
Forum Post VotesExisting editors4/minute20
Other users1/minute10
Forum TopicsExisting editors1/minute2
Other users1/3 minutes1
IP BansModerators1/minute60
Media AssetsMax queued assets250
Moderation ReportsAll users1/minute10
NotesUpdating an existing note12/minute80
Builders adding new notes to posts that have notes12/minute80
Existing editors adding new notes to posts that have notes4/minute60
Other users adding new notes to posts that have notes1/minute30
Builders12/minute60
Existing editors2/minute30
Other users1/1.5 minutes10
PasswordsAll users1/10 minutes20
Password ResetsSending1/1 minute5
Confirming1/30 minutes50
PoolsModerators8/minute120
Builders4/minute60
Existing editors2/minute30
Other users1/1.5 minutes10
PostsNear a 1 million GET1/minute1
Contributors6/minute40
Existing editors with an active post2/minute30
Other existing editors1/minute15
Other users1/2 minutes15
Reading RSS feeds1/2 seconds50
Post VotesPositive votes from existing editors60/minute100
Negative votes from existing editors30/minute100
Positive votes from other users8/minute60
Negative votes from other users1/minute40
ReportsViewing1/3 seconds15
Saved SearchesAll users12/minute80
SessionsLogging in1/5 minute5
Verifying TOTP1/30 minutes50
SourcesViewing20/minute50
TOTPAll users1/minute10
UploadsBuilders24/minute60
Existing editors with active posts8/minute60
Existing editors with non-active posts4/minute30
Existing editors with no posts2/minute15
Other users1/minute10
User FeedbacksModerators1/minute60
Other users1/minute5
UsersCreating1/5 minutes3
Wiki PagesExisting wikis4/minute10
Builders8/minute120
Existing editors2/minute30
New editors on wikis for the 500 largest tags1/1.5 minutes1
Otherwise1/1.5 minutes10

For the exact details, you can look at the app/policies folder on GitHub.

Each rate-limited endpoint has a burst pool, which lets a user make several consecutive updates or reads before being rate limited. The rate at which the pool is recharged depends on the endpoint, but most follow the rates above.

The burst pool size, recharge rate, and current limits are returned as JSON in the x-rate-limit HTTP header. They can also be found at /rate_limits, which shows the limits as of the last API call (the page won't update until the API is used again).

Rate limits are shared between accounts and IP addresses: multiple accounts with the same IP address will share the same rate limit.

Queries

Common Search Parameters

All search endpoints support a common set of parameters:

  • page Returns the given page. Subject to maximum page limits (see help:users).

You can also use b<id> and a<id> to request results before <id> or after <id>, respectively.
E.g. to get a page of posts before post #999999, you'd make a request to /posts.json?page=b999999.

  • limit The number of results to return per page. The maximum limit is 200 for /posts.json and 1000 for everything else.
  • search[id]
  • search[created_at]
  • search[updated_at]
  • search[order]=custom Returns results in the same order as given by search[id]=3,2,1.
Parameter Parsing

Numeric search parameters support ranges:

  • 100
  • >100
  • >=100
  • <100
  • <=100
  • 100,200,300
  • 100..200 (inclusive)

Date parameters also support ranges:

  • 2012-01-01
  • >2012-01-01
  • >=2012-01-01
  • <2012-01-01
  • <=2012-01-01
  • 2012-01-01,2012-01-02
  • 2012-01-01..2013-01-01 (inclusive)

Boolean parameters accept any of the following values for true or false:

  • True: true, t, yes, y, on, 1
  • False: false, f, no, n, off, 0

Most string parameters support using asterisks (*) as wildcards. Wildcards can be escaped with \*. Literal backslashes can be escaped with \\.

Versioned Types

  • API:Artists
  • API:Artist commentaries
  • API:Notes
  • API:Pools
  • API:Posts
  • API:Wiki Pages

Type Versions

  • API:Artist versions
  • API:Artist commentary versions
  • API:Note versions
  • API:Pool versions
  • API:Post versions
  • API:Wiki page versions

Non-versioned Types

  • API:Bulk update requests
  • API:Comments
  • API:Dmails
  • API:Favorite groups
  • API:Forum posts
  • API:Forum topics
  • API:Post appeals
  • API:Post flags
  • API:Tags
  • API:Tag aliases
  • API:Tag implications
  • API:Uploads
  • API:Users

Other Functions

Related Tags

Show

The base URL is GET /related_tag.json.

  • query REQUIRED The tag to find the related tags for.
  • category If specified, show only tags of a specific category. Can be: general, artist, copyright, character, meta

List of API endpoints

API Endpoints
Verb   URI Pattern                                                  Controller#Action
GET    /posts/random(.:format)                                      posts#random
GET    /posts(.:format)                                             posts#index
GET    /posts/:id(.:format)                                         posts#show
PATCH  /posts/:id(.:format)                                         posts#update
PUT    /posts/:id(.:format)                                         posts#update
DELETE /posts/:id(.:format)                                         posts#destroy
GET    /autocomplete(.:format)                                      autocomplete#index
GET    /                                                            posts#index
GET    /admin/users/:id/edit(.:format)                              admin/users#edit
PATCH  /admin/users/:id(.:format)                                   admin/users#update
PUT    /admin/users/:id(.:format)                                   admin/users#update
GET    /admin/dashboard(.:format)                                   admin/dashboards#show
GET    /moderator/dashboard(.:format)                               moderator/dashboards#show
GET    /moderator/ip_addrs/search(.:format)                         moderator/ip_addrs#search
GET    /moderator/ip_addrs(.:format)                                moderator/ip_addrs#index
POST   /moderator/post/posts/:id/expunge(.:format)                  moderator/post/posts#expunge
GET    /moderator/post/posts/:id/confirm_move_favorites(.:format)   moderator/post/posts#confirm_move_favorites
POST   /moderator/post/posts/:id/move_favorites(.:format)           moderator/post/posts#move_favorites
GET    /moderator/post/posts/:id/confirm_ban(.:format)              moderator/post/posts#confirm_ban
POST   /moderator/post/posts/:id/ban(.:format)                      moderator/post/posts#ban
POST   /moderator/post/posts/:id/unban(.:format)                    moderator/post/posts#unban
GET    /moderator/ip_addrs/search(.:format)                         moderator/ip_addrs#search
GET    /moderator/ip_addrs(.:format)                                moderator/ip_addrs#index
GET    /explore/posts/popular(.:format)                             explore/posts#popular
GET    /explore/posts/curated(.:format)                             explore/posts#curated
GET    /explore/posts/viewed(.:format)                              explore/posts#viewed
GET    /explore/posts/searches(.:format)                            explore/posts#searches
GET    /explore/posts/missed_searches(.:format)                     explore/posts#missed_searches
GET    /maintenance/user/count_fixes/new(.:format)                  maintenance/user/count_fixes#new
POST   /maintenance/user/count_fixes(.:format)                      maintenance/user/count_fixes#create
GET    /maintenance/user/email_notification(.:format)               maintenance/user/email_notifications#show
DELETE /maintenance/user/email_notification(.:format)               maintenance/user/email_notifications#destroy
GET    /maintenance/user/deletion(.:format)                         maintenance/user/deletions#show
DELETE /maintenance/user/deletion(.:format)                         maintenance/user/deletions#destroy
POST   /maintenance/user/api_key/view(.:format)                     maintenance/user/api_keys#view
GET    /maintenance/user/api_key(.:format)                          maintenance/user/api_keys#show
PATCH  /maintenance/user/api_key(.:format)                          maintenance/user/api_keys#update
PUT    /maintenance/user/api_key(.:format)                          maintenance/user/api_keys#update
DELETE /maintenance/user/api_key(.:format)                          maintenance/user/api_keys#destroy
PUT    /artists/:id/revert(.:format)                                artists#revert
PUT    /artists/:id/ban(.:format)                                   artists#ban
PUT    /artists/:id/unban(.:format)                                 artists#unban
GET    /artists/show_or_new(.:format)                               artists#show_or_new
GET    /artists/banned(.:format)                                    artists#banned
GET    /artists(.:format)                                           artists#index
POST   /artists(.:format)                                           artists#create
GET    /artists/new(.:format)                                       artists#new
GET    /artists/:id/edit(.:format)                                  artists#edit
GET    /artists/:id(.:format)                                       artists#show
PATCH  /artists/:id(.:format)                                       artists#update
PUT    /artists/:id(.:format)                                       artists#update
DELETE /artists/:id(.:format)                                       artists#destroy
GET    /artist_urls(.:format)                                       artist_urls#index
GET    /artist_versions/search(.:format)                            artist_versions#search
GET    /artist_versions(.:format)                                   artist_versions#index
GET    /artist_versions/:id(.:format)                               artist_versions#show
GET    /bans(.:format)                                              bans#index
POST   /bans(.:format)                                              bans#create
GET    /bans/new(.:format)                                          bans#new
GET    /bans/:id/edit(.:format)                                     bans#edit
GET    /bans/:id(.:format)                                          bans#show
PATCH  /bans/:id(.:format)                                          bans#update
PUT    /bans/:id(.:format)                                          bans#update
DELETE /bans/:id(.:format)                                          bans#destroy
POST   /bulk_update_requests/:id/approve(.:format)                  bulk_update_requests#approve
GET    /bulk_update_requests(.:format)                              bulk_update_requests#index
POST   /bulk_update_requests(.:format)                              bulk_update_requests#create
GET    /bulk_update_requests/new(.:format)                          bulk_update_requests#new
GET    /bulk_update_requests/:id/edit(.:format)                     bulk_update_requests#edit
GET    /bulk_update_requests/:id(.:format)                          bulk_update_requests#show
PATCH  /bulk_update_requests/:id(.:format)                          bulk_update_requests#update
PUT    /bulk_update_requests/:id(.:format)                          bulk_update_requests#update
DELETE /bulk_update_requests/:id(.:format)                          bulk_update_requests#destroy
GET    /comment_votes(.:format)                                     comment_votes#index
DELETE /comments/:comment_id/votes(.:format)                        comment_votes#destroy
POST   /comments/:comment_id/votes(.:format)                        comment_votes#create
GET    /comments/search(.:format)                                   comments#search
POST   /comments/:id/undelete(.:format)                             comments#undelete
GET    /comments(.:format)                                          comments#index
POST   /comments(.:format)                                          comments#create
GET    /comments/new(.:format)                                      comments#new
GET    /comments/:id/edit(.:format)                                 comments#edit
GET    /comments/:id(.:format)                                      comments#show
PATCH  /comments/:id(.:format)                                      comments#update
PUT    /comments/:id(.:format)                                      comments#update
DELETE /comments/:id(.:format)                                      comments#destroy
GET    /counts/posts(.:format)                                      counts#posts
GET    /counts(.:format)                                            counts#index
POST   /counts(.:format)                                            counts#create
GET    /counts/new(.:format)                                        counts#new
GET    /counts/:id/edit(.:format)                                   counts#edit
GET    /counts/:id(.:format)                                        counts#show
PATCH  /counts/:id(.:format)                                        counts#update
PUT    /counts/:id(.:format)                                        counts#update
DELETE /counts/:id(.:format)                                        counts#destroy
PUT    /delayed_jobs/:id/run(.:format)                              delayed_jobs#run
PUT    /delayed_jobs/:id/retry(.:format)                            delayed_jobs#retry
PUT    /delayed_jobs/:id/cancel(.:format)                           delayed_jobs#cancel
GET    /delayed_jobs(.:format)                                      delayed_jobs#index
DELETE /delayed_jobs/:id(.:format)                                  delayed_jobs#destroy
POST   /dmails/mark_all_as_read(.:format)                           dmails#mark_all_as_read
GET    /dmails(.:format)                                            dmails#index
POST   /dmails(.:format)                                            dmails#create
GET    /dmails/new(.:format)                                        dmails#new
GET    /dmails/:id(.:format)                                        dmails#show
PATCH  /dmails/:id(.:format)                                        dmails#update
PUT    /dmails/:id(.:format)                                        dmails#update
POST   /dtext_preview(.:format)                                     dtext_previews#create
GET    /dtext_links(.:format)                                       dtext_links#index
GET    /emails(.:format)                                            emails#index
GET    /emails/:id(.:format)                                        emails#show
GET    /favorites(.:format)                                         favorites#index
POST   /favorites(.:format)                                         favorites#create
DELETE /favorites/:id(.:format)                                     favorites#destroy
PUT    /favorite_groups/:id/add_post(.:format)                      favorite_groups#add_post
GET    /favorite_groups/:favorite_group_id/order/edit(.:format)     favorite_group_orders#edit
GET    /favorite_groups(.:format)                                   favorite_groups#index
POST   /favorite_groups(.:format)                                   favorite_groups#create
GET    /favorite_groups/new(.:format)                               favorite_groups#new
GET    /favorite_groups/:id/edit(.:format)                          favorite_groups#edit
GET    /favorite_groups/:id(.:format)                               favorite_groups#show
PATCH  /favorite_groups/:id(.:format)                               favorite_groups#update
PUT    /favorite_groups/:id(.:format)                               favorite_groups#update
DELETE /favorite_groups/:id(.:format)                               favorite_groups#destroy
POST   /forum_posts/:id/undelete(.:format)                          forum_posts#undelete
GET    /forum_posts/search(.:format)                                forum_posts#search
GET    /forum_posts(.:format)                                       forum_posts#index
POST   /forum_posts(.:format)                                       forum_posts#create
GET    /forum_posts/new(.:format)                                   forum_posts#new
GET    /forum_posts/:id/edit(.:format)                              forum_posts#edit
GET    /forum_posts/:id(.:format)                                   forum_posts#show
PATCH  /forum_posts/:id(.:format)                                   forum_posts#update
PUT    /forum_posts/:id(.:format)                                   forum_posts#update
DELETE /forum_posts/:id(.:format)                                   forum_posts#destroy
GET    /forum_post_votes(.:format)                                  forum_post_votes#index
POST   /forum_post_votes(.:format)                                  forum_post_votes#create
DELETE /forum_post_votes/:id(.:format)                              forum_post_votes#destroy
POST   /forum_topics/:id/undelete(.:format)                         forum_topics#undelete
POST   /forum_topics/mark_all_as_read(.:format)                     forum_topics#mark_all_as_read
GET    /forum_topics(.:format)                                      forum_topics#index
POST   /forum_topics(.:format)                                      forum_topics#create
GET    /forum_topics/new(.:format)                                  forum_topics#new
GET    /forum_topics/:id/edit(.:format)                             forum_topics#edit
GET    /forum_topics/:id(.:format)                                  forum_topics#show
PATCH  /forum_topics/:id(.:format)                                  forum_topics#update
PUT    /forum_topics/:id(.:format)                                  forum_topics#update
DELETE /forum_topics/:id(.:format)                                  forum_topics#destroy
GET    /forum_topic_visits(.:format)                                forum_topic_visits#index
GET    /ip_bans(.:format)                                           ip_bans#index
POST   /ip_bans(.:format)                                           ip_bans#create
GET    /ip_bans/new(.:format)                                       ip_bans#new
PATCH  /ip_bans/:id(.:format)                                       ip_bans#update
PUT    /ip_bans/:id(.:format)                                       ip_bans#update
GET    /ip_addresses(.:format)                                      ip_addresses#index
GET    /ip_addresses/:id(.:format)                                  ip_addresses#show {:id=>/.+?(?=\.json|\.xml|\.html)|.+/}
GET    /iqdb_queries/preview(.:format)                              iqdb_queries#preview
GET    /iqdb_queries/check(.:format)                                redirect(301)
GET    /iqdb_queries(.:format)                                      iqdb_queries#show
POST   /iqdb_queries(.:format)                                      iqdb_queries#create
GET    /mod_actions(.:format)                                       mod_actions#index
POST   /mod_actions(.:format)                                       mod_actions#create
GET    /mod_actions/new(.:format)                                   mod_actions#new
GET    /mod_actions/:id/edit(.:format)                              mod_actions#edit
GET    /mod_actions/:id(.:format)                                   mod_actions#show
PATCH  /mod_actions/:id(.:format)                                   mod_actions#update
PUT    /mod_actions/:id(.:format)                                   mod_actions#update
DELETE /mod_actions/:id(.:format)                                   mod_actions#destroy
GET    /moderation_reports(.:format)                                moderation_reports#index
POST   /moderation_reports(.:format)                                moderation_reports#create
GET    /moderation_reports/new(.:format)                            moderation_reports#new
GET    /moderation_reports/:id(.:format)                            moderation_reports#show
GET    /modqueue(.:format)                                          modqueue#index
GET    /news_updates(.:format)                                      news_updates#index
POST   /news_updates(.:format)                                      news_updates#create
GET    /news_updates/new(.:format)                                  news_updates#new
GET    /news_updates/:id/edit(.:format)                             news_updates#edit
GET    /news_updates/:id(.:format)                                  news_updates#show
PATCH  /news_updates/:id(.:format)                                  news_updates#update
PUT    /news_updates/:id(.:format)                                  news_updates#update
DELETE /news_updates/:id(.:format)                                  news_updates#destroy
PUT    /notes/:id/revert(.:format)                                  notes#revert
GET    /notes(.:format)                                             notes#index
POST   /notes(.:format)                                             notes#create
GET    /notes/new(.:format)                                         notes#new
GET    /notes/:id/edit(.:format)                                    notes#edit
GET    /notes/:id(.:format)                                         notes#show
PATCH  /notes/:id(.:format)                                         notes#update
PUT    /notes/:id(.:format)                                         notes#update
DELETE /notes/:id(.:format)                                         notes#destroy
GET    /note_versions(.:format)                                     note_versions#index
GET    /note_versions/:id(.:format)                                 note_versions#show
GET    /note_previews(.:format)                                     note_previews#show
GET    /password_reset(.:format)                                    password_resets#show
POST   /password_reset(.:format)                                    password_resets#create
GET    /pixiv_ugoira_frame_data(.:format)                           pixiv_ugoira_frame_data#index
PUT    /pools/:id/revert(.:format)                                  pools#revert
POST   /pools/:id/undelete(.:format)                                pools#undelete
GET    /pools/gallery(.:format)                                     pools#gallery
GET    /pools/:pool_id/order/edit(.:format)                         pool_orders#edit
GET    /pools(.:format)                                             pools#index
POST   /pools(.:format)                                             pools#create
GET    /pools/new(.:format)                                         pools#new
GET    /pools/:id/edit(.:format)                                    pools#edit
GET    /pools/:id(.:format)                                         pools#show
PATCH  /pools/:id(.:format)                                         pools#update
PUT    /pools/:id(.:format)                                         pools#update
DELETE /pools/:id(.:format)                                         pools#destroy
POST   /pool_element(.:format)                                      pool_elements#create
GET    /pool_versions/:id/diff(.:format)                            pool_versions#diff
GET    /pool_versions/search(.:format)                              pool_versions#search
GET    /pool_versions(.:format)                                     pool_versions#index
GET    /post_replacements(.:format)                                 post_replacements#index
POST   /post_replacements(.:format)                                 post_replacements#create
GET    /post_replacements/new(.:format)                             post_replacements#new
PATCH  /post_replacements/:id(.:format)                             post_replacements#update
PUT    /post_replacements/:id(.:format)                             post_replacements#update
GET    /post_votes(.:format)                                        post_votes#index
GET    /posts/:post_id/events(.:format)                             post_events#index
GET    /posts/:post_id/replacements(.:format)                       post_replacements#index
POST   /posts/:post_id/replacements(.:format)                       post_replacements#create
GET    /posts/:post_id/replacements/new(.:format)                   post_replacements#new
PUT    /posts/:post_id/artist_commentary/create_or_update(.:format) artist_commentaries#create_or_update
PUT    /posts/:post_id/artist_commentary/revert(.:format)           artist_commentaries#revert
GET    /posts/:post_id/artist_commentary(.:format)                  artist_commentaries#show
DELETE /posts/:post_id/votes(.:format)                              post_votes#destroy
POST   /posts/:post_id/votes(.:format)                              post_votes#create
PUT    /posts/:id/revert(.:format)                                  posts#revert
PUT    /posts/:id/copy_notes(.:format)                              posts#copy_notes
GET    /posts/:id/show_seq(.:format)                                posts#show_seq
PUT    /posts/:id/mark_as_translated(.:format)                      posts#mark_as_translated
GET    /posts/:post_id/similar(.:format)                            iqdb_queries#index
GET    /post_appeals(.:format)                                      post_appeals#index
POST   /post_appeals(.:format)                                      post_appeals#create
GET    /post_appeals/new(.:format)                                  post_appeals#new
GET    /post_appeals/:id/edit(.:format)                             post_appeals#edit
GET    /post_appeals/:id(.:format)                                  post_appeals#show
PATCH  /post_appeals/:id(.:format)                                  post_appeals#update
PUT    /post_appeals/:id(.:format)                                  post_appeals#update
DELETE /post_appeals/:id(.:format)                                  post_appeals#destroy
GET    /post_flags(.:format)                                        post_flags#index
POST   /post_flags(.:format)                                        post_flags#create
GET    /post_flags/new(.:format)                                    post_flags#new
GET    /post_flags/:id/edit(.:format)                               post_flags#edit
GET    /post_flags/:id(.:format)                                    post_flags#show
PATCH  /post_flags/:id(.:format)                                    post_flags#update
PUT    /post_flags/:id(.:format)                                    post_flags#update
DELETE /post_flags/:id(.:format)                                    post_flags#destroy
GET    /post_approvals(.:format)                                    post_approvals#index
POST   /post_approvals(.:format)                                    post_approvals#create
GET    /post_disapprovals(.:format)                                 post_disapprovals#index
POST   /post_disapprovals(.:format)                                 post_disapprovals#create
GET    /post_disapprovals/:id(.:format)                             post_disapprovals#show
PUT    /post_versions/:id/undo(.:format)                            post_versions#undo
GET    /post_versions/search(.:format)                              post_versions#search
GET    /post_versions(.:format)                                     post_versions#index
PUT    /artist_commentaries/create_or_update(.:format)              artist_commentaries#create_or_update
GET    /artist_commentaries/search(.:format)                        artist_commentaries#search
PUT    /artist_commentaries/:id/revert(.:format)                    artist_commentaries#revert
GET    /artist_commentaries(.:format)                               artist_commentaries#index
GET    /artist_commentaries/:id(.:format)                           artist_commentaries#show
GET    /artist_commentary_versions(.:format)                        artist_commentary_versions#index
GET    /artist_commentary_versions/:id(.:format)                    artist_commentary_versions#show
GET    /related_tag(.:format)                                       related_tags#show
PATCH  /related_tag(.:format)                                       related_tags#update
PUT    /related_tag(.:format)                                       related_tags#update
GET    /recommended_posts(.:format)                                 recommended_posts#index
GET    /robots(.:format)                                            robots#index
GET    /saved_searches(.:format)                                    saved_searches#index
POST   /saved_searches(.:format)                                    saved_searches#create
GET    /saved_searches/new(.:format)                                saved_searches#new
GET    /saved_searches/:id/edit(.:format)                           saved_searches#edit
PATCH  /saved_searches/:id(.:format)                                saved_searches#update
PUT    /saved_searches/:id(.:format)                                saved_searches#update
DELETE /saved_searches/:id(.:format)                                saved_searches#destroy
GET    /session/sign_out(.:format)                                  sessions#sign_out
GET    /session/new(.:format)                                       sessions#new
DELETE /session(.:format)                                           sessions#destroy
POST   /session(.:format)                                           sessions#create
GET    /source(.:format)                                            sources#show
GET    /status(.:format)                                            status#show
GET    /tags(.:format)                                              tags#index
POST   /tags(.:format)                                              tags#create
GET    /tags/new(.:format)                                          tags#new
GET    /tags/:id/edit(.:format)                                     tags#edit
GET    /tags/:id(.:format)                                          tags#show
PATCH  /tags/:id(.:format)                                          tags#update
PUT    /tags/:id(.:format)                                          tags#update
DELETE /tags/:id(.:format)                                          tags#destroy
GET    /tag_aliases(.:format)                                       tag_aliases#index
GET    /tag_aliases/:id(.:format)                                   tag_aliases#show
DELETE /tag_aliases/:id(.:format)                                   tag_aliases#destroy
GET    /tag_implications(.:format)                                  tag_implications#index
GET    /tag_implications/:id(.:format)                              tag_implications#show
DELETE /tag_implications/:id(.:format)                              tag_implications#destroy
POST   /uploads/preprocess(.:format)                                uploads#preprocess
GET    /uploads/batch(.:format)                                     uploads#batch
GET    /uploads/image_proxy(.:format)                               uploads#image_proxy
GET    /uploads(.:format)                                           uploads#index
POST   /uploads(.:format)                                           uploads#create
GET    /uploads/new(.:format)                                       uploads#new
GET    /uploads/:id/edit(.:format)                                  uploads#edit
GET    /uploads/:id(.:format)                                       uploads#show
PATCH  /uploads/:id(.:format)                                       uploads#update
PUT    /uploads/:id(.:format)                                       uploads#update
DELETE /uploads/:id(.:format)                                       uploads#destroy
GET    /users/:user_id/favorite_groups(.:format)                    favorite_groups#index
GET    /users/:user_id/email/verify(.:format)                       emails#verify
POST   /users/:user_id/email/send_confirmation(.:format)            emails#send_confirmation
GET    /users/:user_id/email/edit(.:format)                         emails#edit
GET    /users/:user_id/email(.:format)                              emails#show
PATCH  /users/:user_id/email(.:format)                              emails#update
PUT    /users/:user_id/email(.:format)                              emails#update
GET    /users/:user_id/password/edit(.:format)                      passwords#edit
PATCH  /users/:user_id/password(.:format)                           passwords#update
PUT    /users/:user_id/password(.:format)                           passwords#update
POST   /users/:user_id/api_key/view(.:format)                       maintenance/user/api_keys#view
GET    /users/:user_id/api_key(.:format)                            maintenance/user/api_keys#show
PATCH  /users/:user_id/api_key(.:format)                            maintenance/user/api_keys#update
PUT    /users/:user_id/api_key(.:format)                            maintenance/user/api_keys#update
DELETE /users/:user_id/api_key(.:format)                            maintenance/user/api_keys#destroy
GET    /users/custom_style(.:format)                                users#custom_style
GET    /users(.:format)                                             users#index
POST   /users(.:format)                                             users#create
GET    /users/new(.:format)                                         users#new
GET    /users/:id/edit(.:format)                                    users#edit
GET    /users/:id(.:format)                                         users#show
PATCH  /users/:id(.:format)                                         users#update
PUT    /users/:id(.:format)                                         users#update
DELETE /users/:id(.:format)                                         users#destroy
GET    /user_upgrades(.:format)                                     user_upgrades#index
POST   /user_upgrades(.:format)                                     user_upgrades#create
GET    /user_upgrades/new(.:format)                                 user_upgrades#new
GET    /user_upgrades/:id(.:format)                                 user_upgrades#show
GET    /user_feedbacks(.:format)                                    user_feedbacks#index
POST   /user_feedbacks(.:format)                                    user_feedbacks#create
GET    /user_feedbacks/new(.:format)                                user_feedbacks#new
GET    /user_feedbacks/:id/edit(.:format)                           user_feedbacks#edit
GET    /user_feedbacks/:id(.:format)                                user_feedbacks#show
PATCH  /user_feedbacks/:id(.:format)                                user_feedbacks#update
PUT    /user_feedbacks/:id(.:format)                                user_feedbacks#update
GET    /user_name_change_requests(.:format)                         user_name_change_requests#index
POST   /user_name_change_requests(.:format)                         user_name_change_requests#create
GET    /user_name_change_requests/new(.:format)                     user_name_change_requests#new
GET    /user_name_change_requests/:id(.:format)                     user_name_change_requests#show
POST   /webhooks/receive(.:format)                                  webhooks#receive
GET    /webhooks(.:format)                                          webhooks#index
POST   /webhooks(.:format)                                          webhooks#create
GET    /webhooks/new(.:format)                                      webhooks#new
GET    /webhooks/:id/edit(.:format)                                 webhooks#edit
GET    /webhooks/:id(.:format)                                      webhooks#show
PATCH  /webhooks/:id(.:format)                                      webhooks#update
PUT    /webhooks/:id(.:format)                                      webhooks#update
DELETE /webhooks/:id(.:format)                                      webhooks#destroy
PUT    /wiki_pages/:id/revert(.:format)                             wiki_pages#revert {:id=>/.+?(?=\.json|\.xml|\.html)|.+/}
GET    /wiki_pages/search(.:format)                                 wiki_pages#search
GET    /wiki_pages/show_or_new(.:format)                            wiki_pages#show_or_new
GET    /wiki_pages(.:format)                                        wiki_pages#index
POST   /wiki_pages(.:format)                                        wiki_pages#create
GET    /wiki_pages/new(.:format)                                    wiki_pages#new
GET    /wiki_pages/:id/edit(.:format)                               wiki_pages#edit {:id=>/.+?(?=\.json|\.xml|\.html)|.+/}
GET    /wiki_pages/:id(.:format)                                    wiki_pages#show {:id=>/.+?(?=\.json|\.xml|\.html)|.+/}
PATCH  /wiki_pages/:id(.:format)                                    wiki_pages#update {:id=>/.+?(?=\.json|\.xml|\.html)|.+/}
PUT    /wiki_pages/:id(.:format)                                    wiki_pages#update {:id=>/.+?(?=\.json|\.xml|\.html)|.+/}
DELETE /wiki_pages/:id(.:format)                                    wiki_pages#destroy {:id=>/.+?(?=\.json|\.xml|\.html)|.+/}
GET    /wiki_page_versions/diff(.:format)                           wiki_page_versions#diff
GET    /wiki_page_versions(.:format)                                wiki_page_versions#index
GET    /wiki_page_versions/:id(.:format)                            wiki_page_versions#show
GET    /tag/index.xml(.:format)                                     legacy#tags {:format=>/xml/}
GET    /tag/index.json(.:format)                                    legacy#tags {:format=>/json/}
GET    /post/index.xml(.:format)                                    legacy#posts {:format=>/xml/}
GET    /post/index.json(.:format)                                   legacy#posts {:format=>/json/}
GET    /artist(.:format)                                            redirect(301)
GET    /artist/show/:id(.:format)                                   redirect(301, /artists/%{id})
GET    /artist/show(.:format)                                       redirect(301)
GET    /forum(.:format)                                             redirect(301)
GET    /forum/show/:id(.:format)                                    redirect(301)
GET    /pool/show/:id(.:format)                                     redirect(301, /pools/%{id})
GET    /post/index(.:format)                                        redirect(301)
GET    /post/atom(.:format)                                         redirect(301)
GET    /post/show/:id/:tag_title(.:format)                          redirect(301, /posts/%{id})
GET    /post/show/:id(.:format)                                     redirect(301, /posts/%{id})
GET    /tag(.:format)                                               redirect(301)
GET    /tag/index(.:format)                                         redirect(301)
GET    /user/show/:id(.:format)                                     redirect(301, /users/%{id})
GET    /wiki/show(.:format)                                         redirect(301)
GET    /help/:title(.:format)                                       redirect(301)
GET    /login(.:format)                                             sessions#new
GET    /logout(.:format)                                            sessions#sign_out
GET    /profile(.:format)                                           users#profile
GET    /settings(.:format)                                          users#settings
GET    /sitemap(.:format)                                           static#sitemap_index
GET    /opensearch(.:format)                                        static#opensearch
GET    /privacy(.:format)                                           static#privacy_policy
GET    /terms_of_service(.:format)                                  static#terms_of_service
GET    /static/keyboard_shortcuts(.:format)                         static#keyboard_shortcuts
GET    /static/bookmarklet(.:format)                                static#bookmarklet
GET    /static/site_map(.:format)                                   static#site_map
GET    /static/contact(.:format)                                    static#contact
GET    /static/dtext_help(.:format)                                 static#dtext_help
GET    /static/terms_of_service(.:format)                           redirect(301)
GET    /mock/recommender/recommend/:user_id(.:format)               mock_services#recommender_recommend
GET    /mock/recommender/similiar/:post_id(.:format)                mock_services#recommender_similar
GET    /mock/reportbooru/missed_searches(.:format)                  mock_services#reportbooru_missed_searches
GET    /mock/reportbooru/post_searches/rank(.:format)               mock_services#reportbooru_post_searches
GET    /mock/reportbooru/post_views/rank(.:format)                  mock_services#reportbooru_post_views
GET    /mock/iqdbs/similar(.:format)                                mock_services#iqdbs_similar
POST   /mock/iqdbs/similar(.:format)                                mock_services#iqdbs_similar
       /*other(.:format)                                            static#not_found

See also

  • Help:Number syntax
  • Help:String syntax
  • Help:Text syntax
  • Help:Enum syntax
  • Help:Boolean syntax
  • Help:Array syntax
  • Help:Chaining syntax
  • Help:Post syntax
  • Help:User syntax
  • Help:Hash format
  • Help:Array format
  • Help:API read requests
  • Help:API write requests
  • Help:Common URL Parameters

Go Back

  • Return to Developer Guide
  • Return to the Table of Contents
  • Return to the Wiki Help Home Page
Terms / Privacy / Upgrade / Contact /