About

This documentation explains the specifications of Qiita API v2.

Request

Requires secure connections with TLS to access the all endpoints of our API, without exception. Use qiita.com host to access to the public Qiita data, otherwise use *.qiita.com to access to Qitia:Team data.

Parameters

Accepts GET, POST, PUT, PATCH, and DELETE HTTP methods. On GET request, include parameters as URI query parameters. On the other requests, include them into the request body in JSON format.

Rate limit

Rate limit requests from clients to protect the health of the service and maintain high service quality for other clients. The remaining number of request tokens with each request is in response header. The limitation count per hour of authenticated request is 1000, and 60 is on non-authenticated request per its IP address.

Teams using single sign-on

For a security reason, currently teams allowing only single sign-on authentication cannot be accessed via API.

Status code

The response status code can be 200, 201, 204, 400, 401, 403, 404, and 500. In successful cases, we use 200 for GET or PATCH requests, 201 for POST request, and 204 for PUT and DELETE requests.

Data format

Requires JSON format for communication with Qiita API v2. If you include any JSON data into your request body, put Content-Type request header with application/json. Note that the API doesn't send any response body on 204 response (successful cases to PUT or DELETE request). Date-time is rendered in ISO8601 format.

GET /api/v2/items?page=1&per_page=20 HTTP/1.1

Error response

If any error is occurred, it returns an error response including a machine-readable error type, and a human-readable error message.

{
  "message": "Not found",
  "type": "not_found"
}

Pagination

At some endpoints, the entire data is not returned. Instead, you can specify page (from 1 to 100, default: 1) and per_page (from 1 to 100, default: 20) parameters. At this kind of endpoints, the response includes Link header in its response header. The Link header include some links to the first, next, prev, and last pages.

Link: <https://qiita.com/api/v2/users?page=1>; rel="first",
      <https://qiita.com/api/v2/users?page=1>; rel="prev",
      <https://qiita.com/api/v2/users?page=3>; rel="next",
      <https://qiita.com/api/v2/users?page=6>; rel="last"

The response includes Total-Count header too:

Total-Count: 6

JSON Schema

The API provides a JSON Schema that describes what resources are provided via the API, what properties they have, how they are represented, and what operations they support. You can access the JSON Schema using the following URL:

Auth

Requires an access token at some endpoints such as Qiita:Team or non-GET requests. You can generate access token via the OAuth 2.0 authorization flow or /settings/applications page.

Access token

Access token can be put on Authorization request header like this:

Authorization: Bearer 1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcd

Scope

An access token is associated with some scopes.
Scopes are specified by the application you are authorizing to,
and you can confirm which types of scopes are required at the authorization page.

read_qiita       - Allow to read data associated to the authenticated user on Qiita
read_qiita_team  - Allow to read data on Qiita:Team
write_qiita      - Allow to write data on Qiita
write_qiita_team - Allow to write data on Qiita:Team

GET /api/v2/oauth/authorize

This section is for application developers. To let a user generate an access token via your application, you need to show the authorization page for your application. After a user authorized accesses via your application, the user is redirected to the URL that you registered on the application registration form. In this time, the code URL query parameter (and state parameter if needed) is included into the URL. Your application can generate an access token by sending a request to POST /api/v2/access_tokens with this code parameter.

  • client_id
    • The ID of your API client
    • Example: "a91f0396a0968ff593eafdd194e3d17d32c41b1da7b25e873b42e9058058cd9d"
  • scope
    • Space-separated scope names
    • Example: "read_qiita write_qiita_team"
  • state
    • Optional state parameter to protect CSRF
    • Example: "bb17785d811bb1913ef54b0a7657de780defaa2d"
GET /api/v2/oauth/authorize?client_id=a91f0396a0968ff593eafdd194e3d17d32c41b1da7b25e873b42e9058058cd9d&scope=read_qiita+write_qiita_team&state=bb17785d811bb1913ef54b0a7657de780defaa2d HTTP/1.1
Host: qiita.com
HTTP/1.1 200
Content-Type: text/html

...

Access token

Access token for Qiita API v2

  • client_id
    • An unique ID to identify a registered client
    • Example: "a91f0396a0968ff593eafdd194e3d17d32c41b1da7b25e873b42e9058058cd9d"
    • Type: string
    • Pattern: /^[0-9a-f]{40}$/
  • scopes
    • Authorized action scopes of the access token
    • Type: array
  • token
    • Access token identifier string
    • Example: "ea5d0a593b2655e9568f144fb1826342292f5c6b7d406fda00577b8d1530d8a5"
    • Type: string
    • Pattern: /^[0-9a-f]{40}$/

POST /api/v2/access_tokens

Create a new access token.

  • client_id
    • An unique ID to identify a registered client
    • Example: "a91f0396a0968ff593eafdd194e3d17d32c41b1da7b25e873b42e9058058cd9d"
    • Type: string
    • Pattern: /^[0-9a-f]{40}$/
  • client_secret
    • A secret key to authenticate a registered API client
    • Example: "01fc259c31fe39e72c8ef911c3432a33d51e9337ff34c4fac86c491a0d37251f"
    • Type: string
    • Pattern: /^[0-9a-f]{40}$/
  • code
    • A temporary secret code to exchange with an access token
    • Example: "fefef5f067171f247fb415e38cb0631797b82f4141dcdee66db846c3ade57a03"
    • Type: string
    • Pattern: /^[0-9a-f]{40}$/
POST /api/v2/access_tokens HTTP/1.1
Content-Type: application/json
Host: api.example.com

{
  "client_id": "a91f0396a0968ff593eafdd194e3d17d32c41b1da7b25e873b42e9058058cd9d",
  "client_secret": "01fc259c31fe39e72c8ef911c3432a33d51e9337ff34c4fac86c491a0d37251f",
  "code": "fefef5f067171f247fb415e38cb0631797b82f4141dcdee66db846c3ade57a03"
}
HTTP/1.1 201
Content-Type: application/json

{
  "client_id": "a91f0396a0968ff593eafdd194e3d17d32c41b1da7b25e873b42e9058058cd9d",
  "scopes": [
    "read_qiita"
  ],
  "token": "ea5d0a593b2655e9568f144fb1826342292f5c6b7d406fda00577b8d1530d8a5"
}

DELETE /api/v2/access_tokens/:access_token

Deactivate an access token.

DELETE /api/v2/access_tokens/:access_token HTTP/1.1
Host: api.example.com
HTTP/1.1 204

Authenticated user

An user currently authenticated by a given access token. This resources has more detailed information than normal User resource.

  • description
    • self-description
    • Example: "Hello, world."
    • Type: null, string
  • facebook_id
    • Facebook ID
    • Example: "yaotti"
    • Type: null, string
  • followees_count
    • Followees count
    • Example: 100
    • Type: integer
  • followers_count
    • Followers count
    • Example: 200
    • Type: integer
  • github_login_name
    • GitHub ID
    • Example: "yaotti"
    • Type: null, string
  • id
    • User ID
    • Example: "yaotti"
    • Type: string
  • items_count
    • How many items a user posted on qiita.com (Items on Qiita:Team are not included)
    • Example: 300
    • Type: integer
  • linkedin_id
    • LinkedIn ID
    • Example: "yaotti"
    • Type: null, string
  • location
    • Location
    • Example: "Tokyo, Japan"
    • Type: null, string
  • name
    • Customized user name
    • Example: "Hiroshige Umino"
    • Type: null, string
  • organization
    • Organization which a user belongs to
    • Example: "Increments Inc"
    • Type: null, string
  • permanent_id
    • Unique integer ID
    • Example: 1
    • Type: integer
  • profile_image_url
    • Profile image URL
    • Example: "https://si0.twimg.com/profile_images/2309761038/1ijg13pfs0dg84sk2y0h_normal.jpeg"
    • Type: string
  • twitter_screen_name
    • Twitter screen name
    • Example: "yaotti"
    • Type: null, string
  • website_url
    • Website URL
    • Example: "http://yaotti.hatenablog.com"
    • Type: null, string
  • image_monthly_upload_limit
    • Monthly image upload limit
    • Example: 1048576
    • Type: integer
  • image_monthly_upload_remaining
    • Monthly remaining image upload size
    • Example: 524288
    • Type: integer
  • team_only
    • A flag whether this user is configured as team-only
    • Example: false
    • Type: boolean

GET /api/v2/authenticated_user

Get a user associated to the current access token.

GET /api/v2/authenticated_user HTTP/1.1
Host: api.example.com
HTTP/1.1 200
Content-Type: application/json

{
  "description": "Hello, world.",
  "facebook_id": "yaotti",
  "followees_count": 100,
  "followers_count": 200,
  "github_login_name": "yaotti",
  "id": "yaotti",
  "items_count": 300,
  "linkedin_id": "yaotti",
  "location": "Tokyo, Japan",
  "name": "Hiroshige Umino",
  "organization": "Increments Inc",
  "permanent_id": 1,
  "profile_image_url": "https://si0.twimg.com/profile_images/2309761038/1ijg13pfs0dg84sk2y0h_normal.jpeg",
  "twitter_screen_name": "yaotti",
  "website_url": "http://yaotti.hatenablog.com",
  "image_monthly_upload_limit": 1048576,
  "image_monthly_upload_remaining": 524288,
  "team_only": false
}

Comment

A comment posted on an item or a project. A comment on a project is available only on Qiita:Team.

  • body
    • Comment body in Markdown
    • Example: "# Example"
    • Type: string
  • created_at
    • Date-time when this data was created
    • Example: "2000-01-01T00:00:00+00:00"
    • Type: string
    • Format: date-time
  • id
    • Comment unique ID
    • Example: "3391f50c35f953abfc4f"
    • Type: string
    • Pattern: /^[0-9a-f]{20}$/
  • rendered_body
    • Comment body in HTML
    • Example: "<h1>Example</h1>"
    • Type: string
  • updated_at
    • Date-time when this data was updated
    • Example: "2000-01-01T00:00:00+00:00"
    • Type: string
    • Format: date-time
  • user
    • A Qiita user (a.k.a. account)

DELETE /api/v2/comments/:comment_id

Delete a comment.

DELETE /api/v2/comments/:comment_id HTTP/1.1
Host: api.example.com
HTTP/1.1 204

GET /api/v2/comments/:comment_id

Get a comment.

GET /api/v2/comments/:comment_id HTTP/1.1
Host: api.example.com
HTTP/1.1 200
Content-Type: application/json

{
  "body": "# Example",
  "created_at": "2000-01-01T00:00:00+00:00",
  "id": "3391f50c35f953abfc4f",
  "rendered_body": "<h1>Example</h1>",
  "updated_at": "2000-01-01T00:00:00+00:00",
  "user": {
    "description": "Hello, world.",
    "facebook_id": "yaotti",
    "followees_count": 100,
    "followers_count": 200,
    "github_login_name": "yaotti",
    "id": "yaotti",
    "items_count": 300,
    "linkedin_id": "yaotti",
    "location": "Tokyo, Japan",
    "name": "Hiroshige Umino",
    "organization": "Increments Inc",
    "permanent_id": 1,
    "profile_image_url": "https://si0.twimg.com/profile_images/2309761038/1ijg13pfs0dg84sk2y0h_normal.jpeg",
    "twitter_screen_name": "yaotti",
    "website_url": "http://yaotti.hatenablog.com"
  }
}

PATCH /api/v2/comments/:comment_id

Update a comment.

  • body
    • Comment body in Markdown
    • Example: "# Example"
    • Type: string
PATCH /api/v2/comments/:comment_id HTTP/1.1
Content-Type: application/json
Host: api.example.com

{
  "body": "# Example"
}
HTTP/1.1 200
Content-Type: application/json

{
  "body": "# Example",
  "created_at": "2000-01-01T00:00:00+00:00",
  "id": "3391f50c35f953abfc4f",
  "rendered_body": "<h1>Example</h1>",
  "updated_at": "2000-01-01T00:00:00+00:00",
  "user": {
    "description": "Hello, world.",
    "facebook_id": "yaotti",
    "followees_count": 100,
    "followers_count": 200,
    "github_login_name": "yaotti",
    "id": "yaotti",
    "items_count": 300,
    "linkedin_id": "yaotti",
    "location": "Tokyo, Japan",
    "name": "Hiroshige Umino",
    "organization": "Increments Inc",
    "permanent_id": 1,
    "profile_image_url": "https://si0.twimg.com/profile_images/2309761038/1ijg13pfs0dg84sk2y0h_normal.jpeg",
    "twitter_screen_name": "yaotti",
    "website_url": "http://yaotti.hatenablog.com"
  }
}

DELETE /api/v2/comments/:comment_id/thank

DELETE /api/v2/comments/:comment_id/thank has been deprecated since Nov 16 2016 Delete like from a comment.

DELETE /api/v2/comments/:comment_id/thank HTTP/1.1
Host: api.example.com
HTTP/1.1 200
Content-Type: application/json

{
  "body": "# Example",
  "created_at": "2000-01-01T00:00:00+00:00",
  "id": "3391f50c35f953abfc4f",
  "rendered_body": "<h1>Example</h1>",
  "updated_at": "2000-01-01T00:00:00+00:00",
  "user": {
    "description": "Hello, world.",
    "facebook_id": "yaotti",
    "followees_count": 100,
    "followers_count": 200,
    "github_login_name": "yaotti",
    "id": "yaotti",
    "items_count": 300,
    "linkedin_id": "yaotti",
    "location": "Tokyo, Japan",
    "name": "Hiroshige Umino",
    "organization": "Increments Inc",
    "permanent_id": 1,
    "profile_image_url": "https://si0.twimg.com/profile_images/2309761038/1ijg13pfs0dg84sk2y0h_normal.jpeg",
    "twitter_screen_name": "yaotti",
    "website_url": "http://yaotti.hatenablog.com"
  }
}

PUT /api/v2/comments/:comment_id/thank

PUT /api/v2/comments/:comment_id/thank has been deprecated since Nov 16 2016 Add like to a comment.

PUT /api/v2/comments/:comment_id/thank HTTP/1.1
Host: api.example.com
HTTP/1.1 200
Content-Type: application/json

{
  "body": "# Example",
  "created_at": "2000-01-01T00:00:00+00:00",
  "id": "3391f50c35f953abfc4f",
  "rendered_body": "<h1>Example</h1>",
  "updated_at": "2000-01-01T00:00:00+00:00",
  "user": {
    "description": "Hello, world.",
    "facebook_id": "yaotti",
    "followees_count": 100,
    "followers_count": 200,
    "github_login_name": "yaotti",
    "id": "yaotti",
    "items_count": 300,
    "linkedin_id": "yaotti",
    "location": "Tokyo, Japan",
    "name": "Hiroshige Umino",
    "organization": "Increments Inc",
    "permanent_id": 1,
    "profile_image_url": "https://si0.twimg.com/profile_images/2309761038/1ijg13pfs0dg84sk2y0h_normal.jpeg",
    "twitter_screen_name": "yaotti",
    "website_url": "http://yaotti.hatenablog.com"
  }
}

GET /api/v2/items/:item_id/comments

List comments on an item in newest order.

GET /api/v2/items/:item_id/comments HTTP/1.1
Host: api.example.com
HTTP/1.1 200
Content-Type: application/json

[
  {
    "body": "# Example",
    "created_at": "2000-01-01T00:00:00+00:00",
    "id": "3391f50c35f953abfc4f",
    "rendered_body": "<h1>Example</h1>",
    "updated_at": "2000-01-01T00:00:00+00:00",
    "user": {
      "description": "Hello, world.",
      "facebook_id": "yaotti",
      "followees_count": 100,
      "followers_count": 200,
      "github_login_name": "yaotti",
      "id": "yaotti",
      "items_count": 300,
      "linkedin_id": "yaotti",
      "location": "Tokyo, Japan",
      "name": "Hiroshige Umino",
      "organization": "Increments Inc",
      "permanent_id": 1,
      "profile_image_url": "https://si0.twimg.com/profile_images/2309761038/1ijg13pfs0dg84sk2y0h_normal.jpeg",
      "twitter_screen_name": "yaotti",
      "website_url": "http://yaotti.hatenablog.com"
    }
  }
]

POST /api/v2/items/:item_id/comments

Post a comment on an item.

  • body
    • Comment body in Markdown
    • Example: "# Example"
    • Type: string
POST /api/v2/items/:item_id/comments HTTP/1.1
Content-Type: application/json
Host: api.example.com

{
  "body": "# Example"
}
HTTP/1.1 201
Content-Type: application/json

{
  "body": "# Example",
  "created_at": "2000-01-01T00:00:00+00:00",
  "id": "3391f50c35f953abfc4f",
  "rendered_body": "<h1>Example</h1>",
  "updated_at": "2000-01-01T00:00:00+00:00",
  "user": {
    "description": "Hello, world.",
    "facebook_id": "yaotti",
    "followees_count": 100,
    "followers_count": 200,
    "github_login_name": "yaotti",
    "id": "yaotti",
    "items_count": 300,
    "linkedin_id": "yaotti",
    "location": "Tokyo, Japan",
    "name": "Hiroshige Umino",
    "organization": "Increments Inc",
    "permanent_id": 1,
    "profile_image_url": "https://si0.twimg.com/profile_images/2309761038/1ijg13pfs0dg84sk2y0h_normal.jpeg",
    "twitter_screen_name": "yaotti",
    "website_url": "http://yaotti.hatenablog.com"
  }
}

POST /api/v2/items/:item_id/imported_comments

Create a comment by a specific user (only available on Qiita:Team. administrative privileges required).

  • body
    • Comment body in Markdown
    • Example: "# Example"
    • Type: string
  • user_id
    • User ID
    • Example: "yaotti"
    • Type: string
  • created_at
    • Date-time when this data was created
    • Example: "2000-01-01T00:00:00+00:00"
    • Type: string
    • Format: date-time
  • updated_at
    • Date-time when this data was updated
    • Example: "2000-01-01T00:00:00+00:00"
    • Type: string
    • Format: date-time
POST /api/v2/items/:item_id/imported_comments HTTP/1.1
Content-Type: application/json
Host: api.example.com

{
  "body": "# Example",
  "user_id": "yaotti",
  "created_at": "2000-01-01T00:00:00+00:00",
  "updated_at": "2000-01-01T00:00:00+00:00"
}
HTTP/1.1 201
Content-Type: application/json

{
  "body": "# Example",
  "created_at": "2000-01-01T00:00:00+00:00",
  "id": "3391f50c35f953abfc4f",
  "rendered_body": "<h1>Example</h1>",
  "updated_at": "2000-01-01T00:00:00+00:00",
  "user": {
    "description": "Hello, world.",
    "facebook_id": "yaotti",
    "followees_count": 100,
    "followers_count": 200,
    "github_login_name": "yaotti",
    "id": "yaotti",
    "items_count": 300,
    "linkedin_id": "yaotti",
    "location": "Tokyo, Japan",
    "name": "Hiroshige Umino",
    "organization": "Increments Inc",
    "permanent_id": 1,
    "profile_image_url": "https://si0.twimg.com/profile_images/2309761038/1ijg13pfs0dg84sk2y0h_normal.jpeg",
    "twitter_screen_name": "yaotti",
    "website_url": "http://yaotti.hatenablog.com"
  }
}

GET /api/v2/projects/:project_id/comments

List comments on a project in newest order.

GET /api/v2/projects/:project_id/comments HTTP/1.1
Host: api.example.com
HTTP/1.1 200
Content-Type: application/json

[
  {
    "body": "# Example",
    "created_at": "2000-01-01T00:00:00+00:00",
    "id": "3391f50c35f953abfc4f",
    "rendered_body": "<h1>Example</h1>",
    "updated_at": "2000-01-01T00:00:00+00:00",
    "user": {
      "description": "Hello, world.",
      "facebook_id": "yaotti",
      "followees_count": 100,
      "followers_count": 200,
      "github_login_name": "yaotti",
      "id": "yaotti",
      "items_count": 300,
      "linkedin_id": "yaotti",
      "location": "Tokyo, Japan",
      "name": "Hiroshige Umino",
      "organization": "Increments Inc",
      "permanent_id": 1,
      "profile_image_url": "https://si0.twimg.com/profile_images/2309761038/1ijg13pfs0dg84sk2y0h_normal.jpeg",
      "twitter_screen_name": "yaotti",
      "website_url": "http://yaotti.hatenablog.com"
    }
  }
]

POST /api/v2/projects/:project_id/comments

Post a comment on a project.

  • body
    • Comment body in Markdown
    • Example: "# Example"
    • Type: string
POST /api/v2/projects/:project_id/comments HTTP/1.1
Content-Type: application/json
Host: api.example.com

{
  "body": "# Example"
}
HTTP/1.1 201
Content-Type: application/json

{
  "body": "# Example",
  "created_at": "2000-01-01T00:00:00+00:00",
  "id": "3391f50c35f953abfc4f",
  "rendered_body": "<h1>Example</h1>",
  "updated_at": "2000-01-01T00:00:00+00:00",
  "user": {
    "description": "Hello, world.",
    "facebook_id": "yaotti",
    "followees_count": 100,
    "followers_count": 200,
    "github_login_name": "yaotti",
    "id": "yaotti",
    "items_count": 300,
    "linkedin_id": "yaotti",
    "location": "Tokyo, Japan",
    "name": "Hiroshige Umino",
    "organization": "Increments Inc",
    "permanent_id": 1,
    "profile_image_url": "https://si0.twimg.com/profile_images/2309761038/1ijg13pfs0dg84sk2y0h_normal.jpeg",
    "twitter_screen_name": "yaotti",
    "website_url": "http://yaotti.hatenablog.com"
  }
}

POST /api/v2/projects/:project_id/imported_comments

Create a comment to a project by a specific user (only available on Qiita:Team. administrative privileges required).

  • body
    • Comment body in Markdown
    • Example: "# Example"
    • Type: string
  • user_id
    • User ID
    • Example: "yaotti"
    • Type: string
  • created_at
    • Date-time when this data was created
    • Example: "2000-01-01T00:00:00+00:00"
    • Type: string
    • Format: date-time
  • updated_at
    • Date-time when this data was updated
    • Example: "2000-01-01T00:00:00+00:00"
    • Type: string
    • Format: date-time
POST /api/v2/projects/:project_id/imported_comments HTTP/1.1
Content-Type: application/json
Host: api.example.com

{
  "body": "# Example",
  "user_id": "yaotti",
  "created_at": "2000-01-01T00:00:00+00:00",
  "updated_at": "2000-01-01T00:00:00+00:00"
}
HTTP/1.1 201
Content-Type: application/json

{
  "body": "# Example",
  "created_at": "2000-01-01T00:00:00+00:00",
  "id": "3391f50c35f953abfc4f",
  "rendered_body": "<h1>Example</h1>",
  "updated_at": "2000-01-01T00:00:00+00:00",
  "user": {
    "description": "Hello, world.",
    "facebook_id": "yaotti",
    "followees_count": 100,
    "followers_count": 200,
    "github_login_name": "yaotti",
    "id": "yaotti",
    "items_count": 300,
    "linkedin_id": "yaotti",
    "location": "Tokyo, Japan",
    "name": "Hiroshige Umino",
    "organization": "Increments Inc",
    "permanent_id": 1,
    "profile_image_url": "https://si0.twimg.com/profile_images/2309761038/1ijg13pfs0dg84sk2y0h_normal.jpeg",
    "twitter_screen_name": "yaotti",
    "website_url": "http://yaotti.hatenablog.com"
  }
}

Emoji reaction

An emoji reaction on Qiita:Team (only availabble on Qiita:Team).

  • created_at
    • Date-time when this data was created
    • Example: "2000-01-01T00:00:00+00:00"
    • Type: string
    • Format: date-time
  • image_url
    • An emoji image URL
    • Example: "https://cdn.qiita.com/emoji/twemoji/unicode/1f44d.png"
    • Type: string
  • name
    • A unique emoji name
    • Example: "+1"
    • Type: string
  • user
    • A Qiita user (a.k.a. account)

POST /api/v2/comments/:comment_id/reactions

Add an emoji reaction to a comment.

  • name
    • A unique emoji name
    • Example: "+1"
    • Type: string
POST /api/v2/comments/:comment_id/reactions HTTP/1.1
Content-Type: application/json
Host: api.example.com

{
  "name": "+1"
}
HTTP/1.1 201
Content-Type: application/json

{
  "created_at": "2000-01-01T00:00:00+00:00",
  "image_url": "https://cdn.qiita.com/emoji/twemoji/unicode/1f44d.png",
  "name": "+1",
  "user": {
    "description": "Hello, world.",
    "facebook_id": "yaotti",
    "followees_count": 100,
    "followers_count": 200,
    "github_login_name": "yaotti",
    "id": "yaotti",
    "items_count": 300,
    "linkedin_id": "yaotti",
    "location": "Tokyo, Japan",
    "name": "Hiroshige Umino",
    "organization": "Increments Inc",
    "permanent_id": 1,
    "profile_image_url": "https://si0.twimg.com/profile_images/2309761038/1ijg13pfs0dg84sk2y0h_normal.jpeg",
    "twitter_screen_name": "yaotti",
    "website_url": "http://yaotti.hatenablog.com"
  }
}

POST /api/v2/items/:item_id/reactions

Add an emoji reaction to an item.

  • name
    • A unique emoji name
    • Example: "+1"
    • Type: string
POST /api/v2/items/:item_id/reactions HTTP/1.1
Content-Type: application/json
Host: api.example.com

{
  "name": "+1"
}
HTTP/1.1 201
Content-Type: application/json

{
  "created_at": "2000-01-01T00:00:00+00:00",
  "image_url": "https://cdn.qiita.com/emoji/twemoji/unicode/1f44d.png",
  "name": "+1",
  "user": {
    "description": "Hello, world.",
    "facebook_id": "yaotti",
    "followees_count": 100,
    "followers_count": 200,
    "github_login_name": "yaotti",
    "id": "yaotti",
    "items_count": 300,
    "linkedin_id": "yaotti",
    "location": "Tokyo, Japan",
    "name": "Hiroshige Umino",
    "organization": "Increments Inc",
    "permanent_id": 1,
    "profile_image_url": "https://si0.twimg.com/profile_images/2309761038/1ijg13pfs0dg84sk2y0h_normal.jpeg",
    "twitter_screen_name": "yaotti",
    "website_url": "http://yaotti.hatenablog.com"
  }
}

POST /api/v2/projects/:project_id/reactions

Add an emoji reaction to an project.

  • name
    • A unique emoji name
    • Example: "+1"
    • Type: string
POST /api/v2/projects/:project_id/reactions HTTP/1.1
Content-Type: application/json
Host: api.example.com

{
  "name": "+1"
}
HTTP/1.1 201
Content-Type: application/json

{
  "created_at": "2000-01-01T00:00:00+00:00",
  "image_url": "https://cdn.qiita.com/emoji/twemoji/unicode/1f44d.png",
  "name": "+1",
  "user": {
    "description": "Hello, world.",
    "facebook_id": "yaotti",
    "followees_count": 100,
    "followers_count": 200,
    "github_login_name": "yaotti",
    "id": "yaotti",
    "items_count": 300,
    "linkedin_id": "yaotti",
    "location": "Tokyo, Japan",
    "name": "Hiroshige Umino",
    "organization": "Increments Inc",
    "permanent_id": 1,
    "profile_image_url": "https://si0.twimg.com/profile_images/2309761038/1ijg13pfs0dg84sk2y0h_normal.jpeg",
    "twitter_screen_name": "yaotti",
    "website_url": "http://yaotti.hatenablog.com"
  }
}

DELETE /api/v2/comments/:comment_id/reactions/:reaction_name

Delete an emoji reaction from a comment.

DELETE /api/v2/comments/:comment_id/reactions/:reaction_name HTTP/1.1
Host: api.example.com
HTTP/1.1 200
Content-Type: application/json

{
  "created_at": "2000-01-01T00:00:00+00:00",
  "image_url": "https://cdn.qiita.com/emoji/twemoji/unicode/1f44d.png",
  "name": "+1",
  "user": {
    "description": "Hello, world.",
    "facebook_id": "yaotti",
    "followees_count": 100,
    "followers_count": 200,
    "github_login_name": "yaotti",
    "id": "yaotti",
    "items_count": 300,
    "linkedin_id": "yaotti",
    "location": "Tokyo, Japan",
    "name": "Hiroshige Umino",
    "organization": "Increments Inc",
    "permanent_id": 1,
    "profile_image_url": "https://si0.twimg.com/profile_images/2309761038/1ijg13pfs0dg84sk2y0h_normal.jpeg",
    "twitter_screen_name": "yaotti",
    "website_url": "http://yaotti.hatenablog.com"
  }
}

DELETE /api/v2/items/:item_id/reactions/:reaction_name

Delete an emoji reaction from an item.

DELETE /api/v2/items/:item_id/reactions/:reaction_name HTTP/1.1
Host: api.example.com
HTTP/1.1 200
Content-Type: application/json

{
  "created_at": "2000-01-01T00:00:00+00:00",
  "image_url": "https://cdn.qiita.com/emoji/twemoji/unicode/1f44d.png",
  "name": "+1",
  "user": {
    "description": "Hello, world.",
    "facebook_id": "yaotti",
    "followees_count": 100,
    "followers_count": 200,
    "github_login_name": "yaotti",
    "id": "yaotti",
    "items_count": 300,
    "linkedin_id": "yaotti",
    "location": "Tokyo, Japan",
    "name": "Hiroshige Umino",
    "organization": "Increments Inc",
    "permanent_id": 1,
    "profile_image_url": "https://si0.twimg.com/profile_images/2309761038/1ijg13pfs0dg84sk2y0h_normal.jpeg",
    "twitter_screen_name": "yaotti",
    "website_url": "http://yaotti.hatenablog.com"
  }
}

DELETE /api/v2/projects/:project_id/reactions/:reaction_name

Delete an emoji reaction from an project.

DELETE /api/v2/projects/:project_id/reactions/:reaction_name HTTP/1.1
Host: api.example.com
HTTP/1.1 200
Content-Type: application/json

{
  "created_at": "2000-01-01T00:00:00+00:00",
  "image_url": "https://cdn.qiita.com/emoji/twemoji/unicode/1f44d.png",
  "name": "+1",
  "user": {
    "description": "Hello, world.",
    "facebook_id": "yaotti",
    "followees_count": 100,
    "followers_count": 200,
    "github_login_name": "yaotti",
    "id": "yaotti",
    "items_count": 300,
    "linkedin_id": "yaotti",
    "location": "Tokyo, Japan",
    "name": "Hiroshige Umino",
    "organization": "Increments Inc",
    "permanent_id": 1,
    "profile_image_url": "https://si0.twimg.com/profile_images/2309761038/1ijg13pfs0dg84sk2y0h_normal.jpeg",
    "twitter_screen_name": "yaotti",
    "website_url": "http://yaotti.hatenablog.com"
  }
}

GET /api/v2/comments/:comment_id/reactions

List emoji reactions of an comment in recently-created order.

GET /api/v2/comments/:comment_id/reactions HTTP/1.1
Host: api.example.com
HTTP/1.1 200
Content-Type: application/json

[
  {
    "created_at": "2000-01-01T00:00:00+00:00",
    "image_url": "https://cdn.qiita.com/emoji/twemoji/unicode/1f44d.png",
    "name": "+1",
    "user": {
      "description": "Hello, world.",
      "facebook_id": "yaotti",
      "followees_count": 100,
      "followers_count": 200,
      "github_login_name": "yaotti",
      "id": "yaotti",
      "items_count": 300,
      "linkedin_id": "yaotti",
      "location": "Tokyo, Japan",
      "name": "Hiroshige Umino",
      "organization": "Increments Inc",
      "permanent_id": 1,
      "profile_image_url": "https://si0.twimg.com/profile_images/2309761038/1ijg13pfs0dg84sk2y0h_normal.jpeg",
      "twitter_screen_name": "yaotti",
      "website_url": "http://yaotti.hatenablog.com"
    }
  }
]

GET /api/v2/items/:item_id/reactions

List emoji reactions of an item in recently-created order.

GET /api/v2/items/:item_id/reactions HTTP/1.1
Host: api.example.com
HTTP/1.1 200
Content-Type: application/json

[
  {
    "created_at": "2000-01-01T00:00:00+00:00",
    "image_url": "https://cdn.qiita.com/emoji/twemoji/unicode/1f44d.png",
    "name": "+1",
    "user": {
      "description": "Hello, world.",
      "facebook_id": "yaotti",
      "followees_count": 100,
      "followers_count": 200,
      "github_login_name": "yaotti",
      "id": "yaotti",
      "items_count": 300,
      "linkedin_id": "yaotti",
      "location": "Tokyo, Japan",
      "name": "Hiroshige Umino",
      "organization": "Increments Inc",
      "permanent_id": 1,
      "profile_image_url": "https://si0.twimg.com/profile_images/2309761038/1ijg13pfs0dg84sk2y0h_normal.jpeg",
      "twitter_screen_name": "yaotti",
      "website_url": "http://yaotti.hatenablog.com"
    }
  }
]

GET /api/v2/projects/:project_id/reactions

List emoji reactions of an project in recently-created order.

GET /api/v2/projects/:project_id/reactions HTTP/1.1
Host: api.example.com
HTTP/1.1 200
Content-Type: application/json

[
  {
    "created_at": "2000-01-01T00:00:00+00:00",
    "image_url": "https://cdn.qiita.com/emoji/twemoji/unicode/1f44d.png",
    "name": "+1",
    "user": {
      "description": "Hello, world.",
      "facebook_id": "yaotti",
      "followees_count": 100,
      "followers_count": 200,
      "github_login_name": "yaotti",
      "id": "yaotti",
      "items_count": 300,
      "linkedin_id": "yaotti",
      "location": "Tokyo, Japan",
      "name": "Hiroshige Umino",
      "organization": "Increments Inc",
      "permanent_id": 1,
      "profile_image_url": "https://si0.twimg.com/profile_images/2309761038/1ijg13pfs0dg84sk2y0h_normal.jpeg",
      "twitter_screen_name": "yaotti",
      "website_url": "http://yaotti.hatenablog.com"
    }
  }
]

Expanded template

You can preview the expanded result of a given template. This is available only on Qiita:Team.

  • expanded_body
    • An item body where variables are expanded
    • Example: "Weekly MTG on 2000/01/01"
    • Type: string
  • expanded_tags
    • A list of tags where variables are expanded
    • Example: [{"name"=>"MTG/2000/01/01", "versions"=>["0.0.1"]}]
    • Type: array
  • expanded_title
    • An item title where variables are expanded
    • Example: "Weekly MTG on 2015/06/03"
    • Type: string

POST /api/v2/expanded_templates

Get a template where its variables are expanded.

  • body
    • The body of this template
    • Example: "Weekly MTG on %{Year}/%{month}/%{day}"
    • Type: string
  • tags
    • A list of tags
    • Example: [{"name"=>"MTG/%{Year}/%{month}/%{day}", "versions"=>["0.0.1"]}]
    • Type: array
  • title
    • A template title where variables are to be expanded
    • Example: "Weekly MTG on %{Year}/%{month}/%{day}"
    • Type: string
POST /api/v2/expanded_templates HTTP/1.1
Content-Type: application/json
Host: api.example.com

{
  "body": "Weekly MTG on %{Year}/%{month}/%{day}",
  "tags": [
    {
      "name": "MTG/%{Year}/%{month}/%{day}",
      "versions": [
        "0.0.1"
      ]
    }
  ],
  "title": "Weekly MTG on %{Year}/%{month}/%{day}"
}
HTTP/1.1 201
Content-Type: application/json

{
  "expanded_body": "Weekly MTG on 2000/01/01",
  "expanded_tags": [
    {
      "name": "MTG/2000/01/01",
      "versions": [
        "0.0.1"
      ]
    }
  ],
  "expanded_title": "Weekly MTG on 2015/06/03"
}

Group

Represents a group on Qiita:Team

  • created_at
    • Date-time when this data was created
    • Example: "2000-01-01T00:00:00+00:00"
    • Type: string
    • Format: date-time
  • id
    • A group unique ID
    • Example: 1
    • Type: integer
  • name
    • Group name for display.
    • Example: "Dev"
    • Type: string
  • private
    • A flag to tell which this group is private or public.
    • Example: false
    • Type: boolean
  • updated_at
    • Date-time when this data was updated
    • Example: "2000-01-01T00:00:00+00:00"
    • Type: string
    • Format: date-time
  • url_name
    • Unique name on a team.
    • Example: "dev"
    • Type: string

Invited member

Represents members who are invited to on Qiita:Team (only available on Qiita:Team. administrative privileges required).

  • email
    • Email address of the invited member
    • Example: "example@example.com"
    • Type: string
  • url
    • Invitation URL. The expiration date is one day.
    • Example: "https://team-name.qiita.com/registration/confirm?id=3&token=456c84ae60070161a36c08c9e710050abe5852cc"
    • Type: string

GET api/v2/team_invitations

Return list of invited members

GET api/v2/team_invitations HTTP/1.1
Host: api.example.com
HTTP/1.1 200
Content-Type: application/json

[
  {
    "email": "example@example.com",
    "url": "https://team-name.qiita.com/registration/confirm?id=3&token=456c84ae60070161a36c08c9e710050abe5852cc"
  }
]

POST api/v2/team_invitations

Invite a member to the team

POST api/v2/team_invitations HTTP/1.1
Host: api.example.com
HTTP/1.1 201
Content-Type: application/json

{
  "email": "example@example.com",
  "url": "https://team-name.qiita.com/registration/confirm?id=3&token=456c84ae60070161a36c08c9e710050abe5852cc"
}

DELETE api/v2/team_invitations/:email

Revoke the invitation

DELETE api/v2/team_invitations/:email HTTP/1.1
Host: api.example.com
HTTP/1.1 204

Item

Represents an item posted from a user

  • rendered_body
    • Item body in HTML
    • Example: "<h1>Example</h1>"
    • Type: string
  • body
    • Item body in Markdown
    • Example: "# Example"
    • Type: string
  • coediting
    • A flag whether this item is co-edit mode (only available on Qiita:Team)
    • Example: false
    • Type: boolean
  • comments_count
    • Comments count
    • Example: 100
    • Type: integer
  • created_at
    • Date-time when this data was created
    • Example: "2000-01-01T00:00:00+00:00"
    • Type: string
    • Format: date-time
  • group
    • Represents a group on Qiita:Team
  • id
    • An unique item ID
    • Example: "4bd431809afb1bb99e4f"
    • Type: string
    • Pattern: /^[0-9a-f]{20}$/
  • likes_count
    • Likes count (only available on Qiita)
    • Example: 100
    • Type: integer
  • private
    • A flag whether this item is private (only available on Qiita)
    • Example: false
    • Type: boolean
  • reactions_count
    • Emoji reactions count (only availabble on Qiita:Team)
    • Example: 100
    • Type: integer
  • tags
    • A list of tags
    • Example: [{"name"=>"Ruby", "versions"=>["0.0.1"]}]
    • Type: array
  • title
    • The title of this item
    • Example: "Example title"
    • Type: string
  • updated_at
    • Date-time when this data was updated
    • Example: "2000-01-01T00:00:00+00:00"
    • Type: string
    • Format: date-time
  • url
    • The URL of this item
    • Example: "https://qiita.com/yaotti/items/4bd431809afb1bb99e4f"
    • Type: string
  • user
    • A Qiita user (a.k.a. account)
  • page_views_count
    • The number of views.
    • Example: 100
    • Type: null, integer

GET /api/v2/authenticated_user/items

List the authenticated user's items in newest order

  • page
    • Page number (from 1 to 100)
    • Example: 1
    • Type: string
    • Pattern: /^[0-9]+$/
  • per_page
    • Records count per page (from 1 to 100)
    • Example: 20
    • Type: string
    • Pattern: /^[0-9]+$/
GET /api/v2/authenticated_user/items?page=1&per_page=20 HTTP/1.1
Host: api.example.com
HTTP/1.1 200
Content-Type: application/json

[
  {
    "rendered_body": "<h1>Example</h1>",
    "body": "# Example",
    "coediting": false,
    "comments_count": 100,
    "created_at": "2000-01-01T00:00:00+00:00",
    "group": {
      "created_at": "2000-01-01T00:00:00+00:00",
      "id": 1,
      "name": "Dev",
      "private": false,
      "updated_at": "2000-01-01T00:00:00+00:00",
      "url_name": "dev"
    },
    "id": "4bd431809afb1bb99e4f",
    "likes_count": 100,
    "private": false,
    "reactions_count": 100,
    "tags": [
      {
        "name": "Ruby",
        "versions": [
          "0.0.1"
        ]
      }
    ],
    "title": "Example title",
    "updated_at": "2000-01-01T00:00:00+00:00",
    "url": "https://qiita.com/yaotti/items/4bd431809afb1bb99e4f",
    "user": {
      "description": "Hello, world.",
      "facebook_id": "yaotti",
      "followees_count": 100,
      "followers_count": 200,
      "github_login_name": "yaotti",
      "id": "yaotti",
      "items_count": 300,
      "linkedin_id": "yaotti",
      "location": "Tokyo, Japan",
      "name": "Hiroshige Umino",
      "organization": "Increments Inc",
      "permanent_id": 1,
      "profile_image_url": "https://si0.twimg.com/profile_images/2309761038/1ijg13pfs0dg84sk2y0h_normal.jpeg",
      "twitter_screen_name": "yaotti",
      "website_url": "http://yaotti.hatenablog.com"
    },
    "page_views_count": 100
  }
]

GET /api/v2/items

List items.

  • page
    • Page number (from 1 to 100)
    • Example: 1
    • Type: string
    • Pattern: /^[0-9]+$/
  • per_page
    • Records count per page (from 1 to 100)
    • Example: 20
    • Type: string
    • Pattern: /^[0-9]+$/
  • query
    • Search query
    • Example: "qiita user:yaotti"
    • Type: string
GET /api/v2/items?page=1&per_page=20&query=qiita+user%3Ayaotti HTTP/1.1
Host: api.example.com
HTTP/1.1 200
Content-Type: application/json

[
  {
    "rendered_body": "<h1>Example</h1>",
    "body": "# Example",
    "coediting": false,
    "comments_count": 100,
    "created_at": "2000-01-01T00:00:00+00:00",
    "group": {
      "created_at": "2000-01-01T00:00:00+00:00",
      "id": 1,
      "name": "Dev",
      "private": false,
      "updated_at": "2000-01-01T00:00:00+00:00",
      "url_name": "dev"
    },
    "id": "4bd431809afb1bb99e4f",
    "likes_count": 100,
    "private": false,
    "reactions_count": 100,
    "tags": [
      {
        "name": "Ruby",
        "versions": [
          "0.0.1"
        ]
      }
    ],
    "title": "Example title",
    "updated_at": "2000-01-01T00:00:00+00:00",
    "url": "https://qiita.com/yaotti/items/4bd431809afb1bb99e4f",
    "user": {
      "description": "Hello, world.",
      "facebook_id": "yaotti",
      "followees_count": 100,
      "followers_count": 200,
      "github_login_name": "yaotti",
      "id": "yaotti",
      "items_count": 300,
      "linkedin_id": "yaotti",
      "location": "Tokyo, Japan",
      "name": "Hiroshige Umino",
      "organization": "Increments Inc",
      "permanent_id": 1,
      "profile_image_url": "https://si0.twimg.com/profile_images/2309761038/1ijg13pfs0dg84sk2y0h_normal.jpeg",
      "twitter_screen_name": "yaotti",
      "website_url": "http://yaotti.hatenablog.com"
    },
    "page_views_count": 100
  }
]

POST /api/v2/items

Create an item.

  • body
    • Item body in Markdown
    • Example: "# Example"
    • Type: string
  • coediting
    • A flag whether this item is co-edit mode (only available on Qiita:Team)
    • Example: false
    • Type: boolean
  • gist
    • A flag to post data to Gist (only available if GitHub integration is enabled)
    • Example: false
    • Type: boolean
  • group_url_name
    • A group's url_name on which share this item (pass null to make public; only available on Qiita:Team)
    • Example: "dev"
    • Type: null, string
  • private
    • A flag whether this item is private (only available on Qiita)
    • Example: false
    • Type: boolean
  • tags
    • A list of tags
    • Example: [{"name"=>"Ruby", "versions"=>["0.0.1"]}]
    • Type: array
  • title
    • The title of this item
    • Example: "Example title"
    • Type: string
  • tweet
    • A flag to post a tweet (only availabble if Twitter integration is enabled)
    • Example: false
    • Type: boolean
POST /api/v2/items HTTP/1.1
Content-Type: application/json
Host: api.example.com

{
  "body": "# Example",
  "coediting": false,
  "gist": false,
  "group_url_name": "dev",
  "private": false,
  "tags": [
    {
      "name": "Ruby",
      "versions": [
        "0.0.1"
      ]
    }
  ],
  "title": "Example title",
  "tweet": false
}
HTTP/1.1 201
Content-Type: application/json

{
  "rendered_body": "<h1>Example</h1>",
  "body": "# Example",
  "coediting": false,
  "comments_count": 100,
  "created_at": "2000-01-01T00:00:00+00:00",
  "group": {
    "created_at": "2000-01-01T00:00:00+00:00",
    "id": 1,
    "name": "Dev",
    "private": false,
    "updated_at": "2000-01-01T00:00:00+00:00",
    "url_name": "dev"
  },
  "id": "4bd431809afb1bb99e4f",
  "likes_count": 100,
  "private": false,
  "reactions_count": 100,
  "tags": [
    {
      "name": "Ruby",
      "versions": [
        "0.0.1"
      ]
    }
  ],
  "title": "Example title",
  "updated_at": "2000-01-01T00:00:00+00:00",
  "url": "https://qiita.com/yaotti/items/4bd431809afb1bb99e4f",
  "user": {
    "description": "Hello, world.",
    "facebook_id": "yaotti",
    "followees_count": 100,
    "followers_count": 200,
    "github_login_name": "yaotti",
    "id": "yaotti",
    "items_count": 300,
    "linkedin_id": "yaotti",
    "location": "Tokyo, Japan",
    "name": "Hiroshige Umino",
    "organization": "Increments Inc",
    "permanent_id": 1,
    "profile_image_url": "https://si0.twimg.com/profile_images/2309761038/1ijg13pfs0dg84sk2y0h_normal.jpeg",
    "twitter_screen_name": "yaotti",
    "website_url": "http://yaotti.hatenablog.com"
  },
  "page_views_count": 100
}

DELETE /api/v2/items/:item_id

Delete an item.

DELETE /api/v2/items/:item_id HTTP/1.1
Host: api.example.com
HTTP/1.1 200
Content-Type: application/json

{
  "rendered_body": "<h1>Example</h1>",
  "body": "# Example",
  "coediting": false,
  "comments_count": 100,
  "created_at": "2000-01-01T00:00:00+00:00",
  "group": {
    "created_at": "2000-01-01T00:00:00+00:00",
    "id": 1,
    "name": "Dev",
    "private": false,
    "updated_at": "2000-01-01T00:00:00+00:00",
    "url_name": "dev"
  },
  "id": "4bd431809afb1bb99e4f",
  "likes_count": 100,
  "private": false,
  "reactions_count": 100,
  "tags": [
    {
      "name": "Ruby",
      "versions": [
        "0.0.1"
      ]
    }
  ],
  "title": "Example title",
  "updated_at": "2000-01-01T00:00:00+00:00",
  "url": "https://qiita.com/yaotti/items/4bd431809afb1bb99e4f",
  "user": {
    "description": "Hello, world.",
    "facebook_id": "yaotti",
    "followees_count": 100,
    "followers_count": 200,
    "github_login_name": "yaotti",
    "id": "yaotti",
    "items_count": 300,
    "linkedin_id": "yaotti",
    "location": "Tokyo, Japan",
    "name": "Hiroshige Umino",
    "organization": "Increments Inc",
    "permanent_id": 1,
    "profile_image_url": "https://si0.twimg.com/profile_images/2309761038/1ijg13pfs0dg84sk2y0h_normal.jpeg",
    "twitter_screen_name": "yaotti",
    "website_url": "http://yaotti.hatenablog.com"
  },
  "page_views_count": 100
}

GET /api/v2/items/:item_id

Get an item.

GET /api/v2/items/:item_id HTTP/1.1
Host: api.example.com
HTTP/1.1 200
Content-Type: application/json

{
  "rendered_body": "<h1>Example</h1>",
  "body": "# Example",
  "coediting": false,
  "comments_count": 100,
  "created_at": "2000-01-01T00:00:00+00:00",
  "group": {
    "created_at": "2000-01-01T00:00:00+00:00",
    "id": 1,
    "name": "Dev",
    "private": false,
    "updated_at": "2000-01-01T00:00:00+00:00",
    "url_name": "dev"
  },
  "id": "4bd431809afb1bb99e4f",
  "likes_count": 100,
  "private": false,
  "reactions_count": 100,
  "tags": [
    {
      "name": "Ruby",
      "versions": [
        "0.0.1"
      ]
    }
  ],
  "title": "Example title",
  "updated_at": "2000-01-01T00:00:00+00:00",
  "url": "https://qiita.com/yaotti/items/4bd431809afb1bb99e4f",
  "user": {
    "description": "Hello, world.",
    "facebook_id": "yaotti",
    "followees_count": 100,
    "followers_count": 200,
    "github_login_name": "yaotti",
    "id": "yaotti",
    "items_count": 300,
    "linkedin_id": "yaotti",
    "location": "Tokyo, Japan",
    "name": "Hiroshige Umino",
    "organization": "Increments Inc",
    "permanent_id": 1,
    "profile_image_url": "https://si0.twimg.com/profile_images/2309761038/1ijg13pfs0dg84sk2y0h_normal.jpeg",
    "twitter_screen_name": "yaotti",
    "website_url": "http://yaotti.hatenablog.com"
  },
  "page_views_count": 100
}

PATCH /api/v2/items/:item_id

Update an item.

  • body
    • Item body in Markdown
    • Example: "# Example"
    • Type: string
  • coediting
    • A flag whether this item is co-edit mode (only available on Qiita:Team)
    • Example: false
    • Type: boolean
  • group_url_name
    • A group's url_name on which share this item (pass null to make public; only available on Qiita:Team)
    • Example: "dev"
    • Type: null, string
  • private
    • A flag whether this item is private (only available on Qiita)
    • Example: false
    • Type: boolean
  • tags
    • A list of tags
    • Example: [{"name"=>"Ruby", "versions"=>["0.0.1"]}]
    • Type: array
  • title
    • The title of this item
    • Example: "Example title"
    • Type: string
PATCH /api/v2/items/:item_id HTTP/1.1
Content-Type: application/json
Host: api.example.com

{
  "body": "# Example",
  "coediting": false,
  "group_url_name": "dev",
  "private": false,
  "tags": [
    {
      "name": "Ruby",
      "versions": [
        "0.0.1"
      ]
    }
  ],
  "title": "Example title"
}
HTTP/1.1 200
Content-Type: application/json

{
  "rendered_body": "<h1>Example</h1>",
  "body": "# Example",
  "coediting": false,
  "comments_count": 100,
  "created_at": "2000-01-01T00:00:00+00:00",
  "group": {
    "created_at": "2000-01-01T00:00:00+00:00",
    "id": 1,
    "name": "Dev",
    "private": false,
    "updated_at": "2000-01-01T00:00:00+00:00",
    "url_name": "dev"
  },
  "id": "4bd431809afb1bb99e4f",
  "likes_count": 100,
  "private": false,
  "reactions_count": 100,
  "tags": [
    {
      "name": "Ruby",
      "versions": [
        "0.0.1"
      ]
    }
  ],
  "title": "Example title",
  "updated_at": "2000-01-01T00:00:00+00:00",
  "url": "https://qiita.com/yaotti/items/4bd431809afb1bb99e4f",
  "user": {
    "description": "Hello, world.",
    "facebook_id": "yaotti",
    "followees_count": 100,
    "followers_count": 200,
    "github_login_name": "yaotti",
    "id": "yaotti",
    "items_count": 300,
    "linkedin_id": "yaotti",
    "location": "Tokyo, Japan",
    "name": "Hiroshige Umino",
    "organization": "Increments Inc",
    "permanent_id": 1,
    "profile_image_url": "https://si0.twimg.com/profile_images/2309761038/1ijg13pfs0dg84sk2y0h_normal.jpeg",
    "twitter_screen_name": "yaotti",
    "website_url": "http://yaotti.hatenablog.com"
  },
  "page_views_count": 100
}

POST /api/v2/imported_items

Create an item by a specific user (only available on Qiita:Team. administrative privileges required).

  • body
    • Item body in Markdown
    • Example: "# Example"
    • Type: string
  • coediting
    • A flag whether this item is co-edit mode (only available on Qiita:Team)
    • Example: false
    • Type: boolean
  • group_url_name
    • A group's url_name on which share this item (pass null to make public; only available on Qiita:Team)
    • Example: "dev"
    • Type: null, string
  • tags
    • A list of tags
    • Example: [{"name"=>"Ruby", "versions"=>["0.0.1"]}]
    • Type: array
  • title
    • The title of this item
    • Example: "Example title"
    • Type: string
  • user_id
    • User ID
    • Example: "yaotti"
    • Type: string
  • created_at
    • Date-time when this data was created
    • Example: "2000-01-01T00:00:00+00:00"
    • Type: string
    • Format: date-time
  • updated_at
    • Date-time when this data was updated
    • Example: "2000-01-01T00:00:00+00:00"
    • Type: string
    • Format: date-time
POST /api/v2/imported_items HTTP/1.1
Content-Type: application/json
Host: api.example.com

{
  "body": "# Example",
  "coediting": false,
  "group_url_name": "dev",
  "tags": [
    {
      "name": "Ruby",
      "versions": [
        "0.0.1"
      ]
    }
  ],
  "title": "Example title",
  "user_id": "yaotti",
  "created_at": "2000-01-01T00:00:00+00:00",
  "updated_at": "2000-01-01T00:00:00+00:00"
}
HTTP/1.1 201
Content-Type: application/json

{
  "rendered_body": "<h1>Example</h1>",
  "body": "# Example",
  "coediting": false,
  "comments_count": 100,
  "created_at": "2000-01-01T00:00:00+00:00",
  "group": {
    "created_at": "2000-01-01T00:00:00+00:00",
    "id": 1,
    "name": "Dev",
    "private": false,
    "updated_at": "2000-01-01T00:00:00+00:00",
    "url_name": "dev"
  },
  "id": "4bd431809afb1bb99e4f",
  "likes_count": 100,
  "private": false,
  "reactions_count": 100,
  "tags": [
    {
      "name": "Ruby",
      "versions": [
        "0.0.1"
      ]
    }
  ],
  "title": "Example title",
  "updated_at": "2000-01-01T00:00:00+00:00",
  "url": "https://qiita.com/yaotti/items/4bd431809afb1bb99e4f",
  "user": {
    "description": "Hello, world.",
    "facebook_id": "yaotti",
    "followees_count": 100,
    "followers_count": 200,
    "github_login_name": "yaotti",
    "id": "yaotti",
    "items_count": 300,
    "linkedin_id": "yaotti",
    "location": "Tokyo, Japan",
    "name": "Hiroshige Umino",
    "organization": "Increments Inc",
    "permanent_id": 1,
    "profile_image_url": "https://si0.twimg.com/profile_images/2309761038/1ijg13pfs0dg84sk2y0h_normal.jpeg",
    "twitter_screen_name": "yaotti",
    "website_url": "http://yaotti.hatenablog.com"
  },
  "page_views_count": 100
}

DELETE /api/v2/items/:item_id/like

The Like API on Qiita:Team has been deprecated since Oct 24 2017. Please use the Emoji reaction API instead. Unlike an item.

DELETE /api/v2/items/:item_id/like HTTP/1.1
Host: api.example.com
HTTP/1.1 204

PUT /api/v2/items/:item_id/like

The Like API on Qiita:Team has been deprecated since Oct 24 2017. Please use the Emoji reaction API instead. Like an item

PUT /api/v2/items/:item_id/like HTTP/1.1
Host: api.example.com
HTTP/1.1 204

PUT /api/v2/items/:item_id/stock

Stock an item.

PUT /api/v2/items/:item_id/stock HTTP/1.1
Host: api.example.com
HTTP/1.1 204

DELETE /api/v2/items/:item_id/stock

Unstock an item.

DELETE /api/v2/items/:item_id/stock HTTP/1.1
Host: api.example.com
HTTP/1.1 204

GET /api/v2/items/:item_id/stock

Check if you stocked an item.

GET /api/v2/items/:item_id/stock HTTP/1.1
Host: api.example.com
HTTP/1.1 204

GET /api/v2/items/:item_id/like

The Like API on Qiita:Team has been deprecated since Oct 24 2017. Please use the Emoji reaction API instead. Check if you liked an item.

GET /api/v2/items/:item_id/like HTTP/1.1
Host: api.example.com
HTTP/1.1 204

PUT /api/v2/items/:item_id/stock

Stock an item.

PUT /api/v2/items/:item_id/stock HTTP/1.1
Host: api.example.com
HTTP/1.1 204

GET /api/v2/tags/:tag_id/items

List tagged items in recently-tagged order.

  • page
    • Page number (from 1 to 100)
    • Example: 1
    • Type: string
    • Pattern: /^[0-9]+$/
  • per_page
    • Records count per page (from 1 to 100)
    • Example: 20
    • Type: string
    • Pattern: /^[0-9]+$/
GET /api/v2/tags/:tag_id/items?page=1&per_page=20 HTTP/1.1
Host: api.example.com
HTTP/1.1 200
Content-Type: application/json

[
  {
    "rendered_body": "<h1>Example</h1>",
    "body": "# Example",
    "coediting": false,
    "comments_count": 100,
    "created_at": "2000-01-01T00:00:00+00:00",
    "group": {
      "created_at": "2000-01-01T00:00:00+00:00",
      "id": 1,
      "name": "Dev",
      "private": false,
      "updated_at": "2000-01-01T00:00:00+00:00",
      "url_name": "dev"
    },
    "id": "4bd431809afb1bb99e4f",
    "likes_count": 100,
    "private": false,
    "reactions_count": 100,
    "tags": [
      {
        "name": "Ruby",
        "versions": [
          "0.0.1"
        ]
      }
    ],
    "title": "Example title",
    "updated_at": "2000-01-01T00:00:00+00:00",
    "url": "https://qiita.com/yaotti/items/4bd431809afb1bb99e4f",
    "user": {
      "description": "Hello, world.",
      "facebook_id": "yaotti",
      "followees_count": 100,
      "followers_count": 200,
      "github_login_name": "yaotti",
      "id": "yaotti",
      "items_count": 300,
      "linkedin_id": "yaotti",
      "location": "Tokyo, Japan",
      "name": "Hiroshige Umino",
      "organization": "Increments Inc",
      "permanent_id": 1,
      "profile_image_url": "https://si0.twimg.com/profile_images/2309761038/1ijg13pfs0dg84sk2y0h_normal.jpeg",
      "twitter_screen_name": "yaotti",
      "website_url": "http://yaotti.hatenablog.com"
    },
    "page_views_count": 100
  }
]

GET /api/v2/users/:user_id/items

List a user's items in newest order.

  • page
    • Page number (from 1 to 100)
    • Example: 1
    • Type: string
    • Pattern: /^[0-9]+$/
  • per_page
    • Records count per page (from 1 to 100)
    • Example: 20
    • Type: string
    • Pattern: /^[0-9]+$/
GET /api/v2/users/:user_id/items?page=1&per_page=20 HTTP/1.1
Host: api.example.com
HTTP/1.1 200
Content-Type: application/json

[
  {
    "rendered_body": "<h1>Example</h1>",
    "body": "# Example",
    "coediting": false,
    "comments_count": 100,
    "created_at": "2000-01-01T00:00:00+00:00",
    "group": {
      "created_at": "2000-01-01T00:00:00+00:00",
      "id": 1,
      "name": "Dev",
      "private": false,
      "updated_at": "2000-01-01T00:00:00+00:00",
      "url_name": "dev"
    },
    "id": "4bd431809afb1bb99e4f",
    "likes_count": 100,
    "private": false,
    "reactions_count": 100,
    "tags": [
      {
        "name": "Ruby",
        "versions": [
          "0.0.1"
        ]
      }
    ],
    "title": "Example title",
    "updated_at": "2000-01-01T00:00:00+00:00",
    "url": "https://qiita.com/yaotti/items/4bd431809afb1bb99e4f",
    "user": {
      "description": "Hello, world.",
      "facebook_id": "yaotti",
      "followees_count": 100,
      "followers_count": 200,
      "github_login_name": "yaotti",
      "id": "yaotti",
      "items_count": 300,
      "linkedin_id": "yaotti",
      "location": "Tokyo, Japan",
      "name": "Hiroshige Umino",
      "organization": "Increments Inc",
      "permanent_id": 1,
      "profile_image_url": "https://si0.twimg.com/profile_images/2309761038/1ijg13pfs0dg84sk2y0h_normal.jpeg",
      "twitter_screen_name": "yaotti",
      "website_url": "http://yaotti.hatenablog.com"
    },
    "page_views_count": 100
  }
]

GET /api/v2/users/:user_id/stocks

List a user's stocked items in recently-stocked order.

  • page
    • Page number (from 1 to 100)
    • Example: 1
    • Type: string
    • Pattern: /^[0-9]+$/
  • per_page
    • Records count per page (from 1 to 100)
    • Example: 20
    • Type: string
    • Pattern: /^[0-9]+$/
GET /api/v2/users/:user_id/stocks?page=1&per_page=20 HTTP/1.1
Host: api.example.com
HTTP/1.1 200
Content-Type: application/json

[
  {
    "rendered_body": "<h1>Example</h1>",
    "body": "# Example",
    "coediting": false,
    "comments_count": 100,
    "created_at": "2000-01-01T00:00:00+00:00",
    "group": {
      "created_at": "2000-01-01T00:00:00+00:00",
      "id": 1,
      "name": "Dev",
      "private": false,
      "updated_at": "2000-01-01T00:00:00+00:00",
      "url_name": "dev"
    },
    "id": "4bd431809afb1bb99e4f",
    "likes_count": 100,
    "private": false,
    "reactions_count": 100,
    "tags": [
      {
        "name": "Ruby",
        "versions": [
          "0.0.1"
        ]
      }
    ],
    "title": "Example title",
    "updated_at": "2000-01-01T00:00:00+00:00",
    "url": "https://qiita.com/yaotti/items/4bd431809afb1bb99e4f",
    "user": {
      "description": "Hello, world.",
      "facebook_id": "yaotti",
      "followees_count": 100,
      "followers_count": 200,
      "github_login_name": "yaotti",
      "id": "yaotti",
      "items_count": 300,
      "linkedin_id": "yaotti",
      "location": "Tokyo, Japan",
      "name": "Hiroshige Umino",
      "organization": "Increments Inc",
      "permanent_id": 1,
      "profile_image_url": "https://si0.twimg.com/profile_images/2309761038/1ijg13pfs0dg84sk2y0h_normal.jpeg",
      "twitter_screen_name": "yaotti",
      "website_url": "http://yaotti.hatenablog.com"
    },
    "page_views_count": 100
  }
]

Like

The Like API on Qiita:Team has been deprecated since Oct 24 2017. Please use the Emoji reaction API instead. Represents a like to an item.

  • created_at
    • Date-time when this data was created
    • Example: "2000-01-01T00:00:00+00:00"
    • Type: string
    • Format: date-time
  • user
    • A Qiita user (a.k.a. account)

GET /api/v2/items/:item_id/likes

List likes in newest order.

GET /api/v2/items/:item_id/likes HTTP/1.1
Host: api.example.com
HTTP/1.1 200
Content-Type: application/json

[
  {
    "created_at": "2000-01-01T00:00:00+00:00",
    "user": {
      "description": "Hello, world.",
      "facebook_id": "yaotti",
      "followees_count": 100,
      "followers_count": 200,
      "github_login_name": "yaotti",
      "id": "yaotti",
      "items_count": 300,
      "linkedin_id": "yaotti",
      "location": "Tokyo, Japan",
      "name": "Hiroshige Umino",
      "organization": "Increments Inc",
      "permanent_id": 1,
      "profile_image_url": "https://si0.twimg.com/profile_images/2309761038/1ijg13pfs0dg84sk2y0h_normal.jpeg",
      "twitter_screen_name": "yaotti",
      "website_url": "http://yaotti.hatenablog.com"
    }
  }
]

Project

Represents a project on Qiita:Team (only available on Qiita:Team).

  • rendered_body
    • The projects page body in HTML
    • Example: "<h1>Example</h1>"
    • Type: string
  • archived
    • A flag whether this project is archived
    • Example: false
    • Type: boolean
  • body
    • The project page body in Markdown
    • Example: "# Example"
    • Type: string
  • created_at
    • Date-time when this data was created
    • Example: "2000-01-01T00:00:00+00:00"
    • Type: string
    • Format: date-time
  • id
    • A project ID unique in its team
    • Example: 1
    • Type: integer
  • name
    • The name of a project
    • Example: "Kobiro Project"
    • Type: string
  • reactions_count
    • Emoji reactions count
    • Example: 100
    • Type: integer
  • updated_at
    • Date-time when this data was updated
    • Example: "2000-01-01T00:00:00+00:00"
    • Type: string
    • Format: date-time

GET /api/v2/projects

List projects in newest order.

  • page
    • Page number (from 1 to 100)
    • Example: 1
    • Type: string
    • Pattern: /^[0-9]+$/
  • per_page
    • Records count per page (from 1 to 100)
    • Example: 20
    • Type: string
    • Pattern: /^[0-9]+$/
GET /api/v2/projects?page=1&per_page=20 HTTP/1.1
Host: api.example.com
HTTP/1.1 200
Content-Type: application/json

[
  {
    "rendered_body": "<h1>Example</h1>",
    "archived": false,
    "body": "# Example",
    "created_at": "2000-01-01T00:00:00+00:00",
    "id": 1,
    "name": "Kobiro Project",
    "reactions_count": 100,
    "updated_at": "2000-01-01T00:00:00+00:00"
  }
]

POST /api/v2/projects

Create a new project.

  • archived
    • A flag whether this project is archived
    • Example: false
    • Type: boolean
  • body
    • The project page body in Markdown
    • Example: "# Example"
    • Type: string
  • name
    • The name of a project
    • Example: "Kobiro Project"
    • Type: string
  • tags
    • A list of tags
    • Example: [{"name"=>"Ruby", "versions"=>["0.0.1"]}]
    • Type: array
POST /api/v2/projects HTTP/1.1
Content-Type: application/json
Host: api.example.com

{
  "archived": false,
  "body": "# Example",
  "name": "Kobiro Project",
  "tags": [
    {
      "name": "Ruby",
      "versions": [
        "0.0.1"
      ]
    }
  ]
}
HTTP/1.1 201
Content-Type: application/json

{
  "rendered_body": "<h1>Example</h1>",
  "archived": false,
  "body": "# Example",
  "created_at": "2000-01-01T00:00:00+00:00",
  "id": 1,
  "name": "Kobiro Project",
  "reactions_count": 100,
  "updated_at": "2000-01-01T00:00:00+00:00"
}

DELETE /api/v2/projects/:project_id

Delete a project.

DELETE /api/v2/projects/:project_id HTTP/1.1
Host: api.example.com
HTTP/1.1 204

GET /api/v2/projects/:project_id

Get a project.

GET /api/v2/projects/:project_id HTTP/1.1
Host: api.example.com
HTTP/1.1 200
Content-Type: application/json

{
  "rendered_body": "<h1>Example</h1>",
  "archived": false,
  "body": "# Example",
  "created_at": "2000-01-01T00:00:00+00:00",
  "id": 1,
  "name": "Kobiro Project",
  "reactions_count": 100,
  "updated_at": "2000-01-01T00:00:00+00:00"
}

PATCH /api/v2/projects/:project_id

Update a project

  • archived
    • A flag whether this project is archived
    • Example: false
    • Type: boolean
  • body
    • The project page body in Markdown
    • Example: "# Example"
    • Type: string
  • name
    • The name of a project
    • Example: "Kobiro Project"
    • Type: string
  • tags
    • A list of tags
    • Example: [{"name"=>"Ruby", "versions"=>["0.0.1"]}]
    • Type: array
PATCH /api/v2/projects/:project_id HTTP/1.1
Content-Type: application/json
Host: api.example.com

{
  "archived": false,
  "body": "# Example",
  "name": "Kobiro Project",
  "tags": [
    {
      "name": "Ruby",
      "versions": [
        "0.0.1"
      ]
    }
  ]
}
HTTP/1.1 200
Content-Type: application/json

{
  "rendered_body": "<h1>Example</h1>",
  "archived": false,
  "body": "# Example",
  "created_at": "2000-01-01T00:00:00+00:00",
  "id": 1,
  "name": "Kobiro Project",
  "reactions_count": 100,
  "updated_at": "2000-01-01T00:00:00+00:00"
}

POST /api/v2/imported_projects

Create a project by a specific user.

  • archived
    • A flag whether this project is archived
    • Example: false
    • Type: boolean
  • body
    • The project page body in Markdown
    • Example: "# Example"
    • Type: string
  • name
    • The name of a project
    • Example: "Kobiro Project"
    • Type: string
  • tags
    • A list of tags
    • Example: [{"name"=>"Ruby", "versions"=>["0.0.1"]}]
    • Type: array
  • user_id
    • User ID
    • Example: "yaotti"
    • Type: string
  • created_at
    • Date-time when this data was created
    • Example: "2000-01-01T00:00:00+00:00"
    • Type: string
    • Format: date-time
  • updated_at
    • Date-time when this data was updated
    • Example: "2000-01-01T00:00:00+00:00"
    • Type: string
    • Format: date-time
POST /api/v2/imported_projects HTTP/1.1
Content-Type: application/json
Host: api.example.com

{
  "archived": false,
  "body": "# Example",
  "name": "Kobiro Project",
  "tags": [
    {
      "name": "Ruby",
      "versions": [
        "0.0.1"
      ]
    }
  ],
  "user_id": "yaotti",
  "created_at": "2000-01-01T00:00:00+00:00",
  "updated_at": "2000-01-01T00:00:00+00:00"
}
HTTP/1.1 201
Content-Type: application/json

{
  "rendered_body": "<h1>Example</h1>",
  "archived": false,
  "body": "# Example",
  "created_at": "2000-01-01T00:00:00+00:00",
  "id": 1,
  "name": "Kobiro Project",
  "reactions_count": 100,
  "updated_at": "2000-01-01T00:00:00+00:00"
}

Tag

A tag attached to an item

  • followers_count
    • Followes count
    • Example: 100
    • Type: integer
  • icon_url
    • Tag Icon URL
    • Example: "https://s3-ap-northeast-1.amazonaws.com/qiita-tag-image/9de6a11d330f5694820082438f88ccf4a1b289b2/medium.jpg"
    • Type: null, string
  • id
    • Tag name
    • Example: "qiita"
    • Type: string
  • items_count
    • Items count
    • Example: 200
    • Type: integer

GET /api/v2/tags

List tags in newest order.

  • page
    • Page number (from 1 to 100)
    • Example: 1
    • Type: string
    • Pattern: /^[0-9]+$/
  • per_page
    • Records count per page (from 1 to 100)
    • Example: 20
    • Type: string
    • Pattern: /^[0-9]+$/
  • sort
    • Sort order ("count" and "name" are available)
    • Example: "count"
    • Type: string
GET /api/v2/tags?page=1&per_page=20&sort=count HTTP/1.1
Host: api.example.com
HTTP/1.1 200
Content-Type: application/json

[
  {
    "followers_count": 100,
    "icon_url": "https://s3-ap-northeast-1.amazonaws.com/qiita-tag-image/9de6a11d330f5694820082438f88ccf4a1b289b2/medium.jpg",
    "id": "qiita",
    "items_count": 200
  }
]

GET /api/v2/tags/:tag_id

Get a tag.

GET /api/v2/tags/:tag_id HTTP/1.1
Host: api.example.com
HTTP/1.1 200
Content-Type: application/json

{
  "followers_count": 100,
  "icon_url": "https://s3-ap-northeast-1.amazonaws.com/qiita-tag-image/9de6a11d330f5694820082438f88ccf4a1b289b2/medium.jpg",
  "id": "qiita",
  "items_count": 200
}

GET /api/v2/users/:user_id/following_tags

List tags a user is following to in recently-tagged order.

  • page
    • Page number (from 1 to 100)
    • Example: 1
    • Type: string
    • Pattern: /^[0-9]+$/
  • per_page
    • Records count per page (from 1 to 100)
    • Example: 20
    • Type: string
    • Pattern: /^[0-9]+$/
GET /api/v2/users/:user_id/following_tags?page=1&per_page=20 HTTP/1.1
Host: api.example.com
HTTP/1.1 200
Content-Type: application/json

[
  {
    "followers_count": 100,
    "icon_url": "https://s3-ap-northeast-1.amazonaws.com/qiita-tag-image/9de6a11d330f5694820082438f88ccf4a1b289b2/medium.jpg",
    "id": "qiita",
    "items_count": 200
  }
]

DELETE /api/v2/tags/:tag_id/following

Unfollow a tag.

DELETE /api/v2/tags/:tag_id/following HTTP/1.1
Host: api.example.com
HTTP/1.1 204

GET /api/v2/tags/:tag_id/following

Check if you are following a tag or not.

GET /api/v2/tags/:tag_id/following HTTP/1.1
Host: api.example.com
HTTP/1.1 200
Content-Type: application/json

{
  "followers_count": 100,
  "icon_url": "https://s3-ap-northeast-1.amazonaws.com/qiita-tag-image/9de6a11d330f5694820082438f88ccf4a1b289b2/medium.jpg",
  "id": "qiita",
  "items_count": 200
}

PUT /api/v2/tags/:tag_id/following

Follow a tag.

PUT /api/v2/tags/:tag_id/following HTTP/1.1
Host: api.example.com
HTTP/1.1 204

Tagging

Represents an association between an item and a tag.

  • name
    • Tag name
    • Example: "qiita"
    • Type: string
  • versions
    • Example: ["0.0.1"]
    • Type: array

POST /api/v2/items/:item_id/taggings

Add a tag to an item (only available on Qiita:Team)

  • name
    • Tag name
    • Example: "qiita"
    • Type: string
  • versions
    • Example: ["0.0.1"]
    • Type: array
POST /api/v2/items/:item_id/taggings HTTP/1.1
Content-Type: application/json
Host: api.example.com

{
  "name": "qiita",
  "versions": [
    "0.0.1"
  ]
}
HTTP/1.1 201
Content-Type: application/json

{
  "name": "qiita",
  "versions": [
    "0.0.1"
  ]
}

DELETE /api/v2/items/:item_id/taggings/:tagging_id

Remove a tag from an item (only available on Qiita:Team)

DELETE /api/v2/items/:item_id/taggings/:tagging_id HTTP/1.1
Host: api.example.com
HTTP/1.1 204

Team

Represents a team on Qiita:Team (only available on Qiita:Team).

  • active
    • A flag whether this team is active or not
    • Example: true
    • Type: boolean
  • id
    • A unique team ID
    • Example: "increments"
    • Type: string
  • name
    • The team name configured for this team
    • Example: "Increments Inc."
    • Type: string

GET /api/v2/teams

List teams the user belongs to in newest order.

GET /api/v2/teams HTTP/1.1
Host: api.example.com
HTTP/1.1 200
Content-Type: application/json

[
  {
    "active": true,
    "id": "increments",
    "name": "Increments Inc."
  }
]

Template

Represents a template for generating an item boilerplate (only available on Qiita:Team).

  • body
    • The body of this template
    • Example: "Weekly MTG on %{Year}/%{month}/%{day}"
    • Type: string
  • id
    • A unique template ID
    • Example: 1
    • Type: integer
  • name
    • A template name
    • Example: "Weekly MTG"
    • Type: string
  • expanded_body
    • An item body where variables are expanded
    • Example: "Weekly MTG on 2000/01/01"
    • Type: string
  • expanded_tags
    • A list of tags where variables are expanded
    • Example: [{"name"=>"MTG/2000/01/01", "versions"=>["0.0.1"]}]
    • Type: array
  • expanded_title
    • An item title where variables are expanded
    • Example: "Weekly MTG on 2015/06/03"
    • Type: string
  • tags
    • A list of tags
    • Example: [{"name"=>"MTG/%{Year}/%{month}/%{day}", "versions"=>["0.0.1"]}]
    • Type: array
  • title
    • A template title where variables are to be expanded
    • Example: "Weekly MTG on %{Year}/%{month}/%{day}"
    • Type: string

GET /api/v2/templates

List templates in a team.

  • page
    • Page number (from 1 to 100)
    • Example: 1
    • Type: string
    • Pattern: /^[0-9]+$/
  • per_page
    • Records count per page (from 1 to 100)
    • Example: 20
    • Type: string
    • Pattern: /^[0-9]+$/
GET /api/v2/templates?page=1&per_page=20 HTTP/1.1
Host: api.example.com
HTTP/1.1 200
Content-Type: application/json

[
  {
    "body": "Weekly MTG on %{Year}/%{month}/%{day}",
    "id": 1,
    "name": "Weekly MTG",
    "expanded_body": "Weekly MTG on 2000/01/01",
    "expanded_tags": [
      {
        "name": "MTG/2000/01/01",
        "versions": [
          "0.0.1"
        ]
      }
    ],
    "expanded_title": "Weekly MTG on 2015/06/03",
    "tags": [
      {
        "name": "MTG/%{Year}/%{month}/%{day}",
        "versions": [
          "0.0.1"
        ]
      }
    ],
    "title": "Weekly MTG on %{Year}/%{month}/%{day}"
  }
]

DELETE /api/v2/templates/:template_id

Delete a template.

DELETE /api/v2/templates/:template_id HTTP/1.1
Host: api.example.com
HTTP/1.1 204

GET /api/v2/templates/:template_id

Get a template.

GET /api/v2/templates/:template_id HTTP/1.1
Host: api.example.com
HTTP/1.1 200
Content-Type: application/json

{
  "body": "Weekly MTG on %{Year}/%{month}/%{day}",
  "id": 1,
  "name": "Weekly MTG",
  "expanded_body": "Weekly MTG on 2000/01/01",
  "expanded_tags": [
    {
      "name": "MTG/2000/01/01",
      "versions": [
        "0.0.1"
      ]
    }
  ],
  "expanded_title": "Weekly MTG on 2015/06/03",
  "tags": [
    {
      "name": "MTG/%{Year}/%{month}/%{day}",
      "versions": [
        "0.0.1"
      ]
    }
  ],
  "title": "Weekly MTG on %{Year}/%{month}/%{day}"
}

POST /api/v2/templates

Create a new template.

  • body
    • The body of this template
    • Example: "Weekly MTG on %{Year}/%{month}/%{day}"
    • Type: string
  • name
    • A template name
    • Example: "Weekly MTG"
    • Type: string
  • tags
    • A list of tags
    • Example: [{"name"=>"MTG/%{Year}/%{month}/%{day}", "versions"=>["0.0.1"]}]
    • Type: array
  • title
    • A template title where variables are to be expanded
    • Example: "Weekly MTG on %{Year}/%{month}/%{day}"
    • Type: string
POST /api/v2/templates HTTP/1.1
Content-Type: application/json
Host: api.example.com

{
  "body": "Weekly MTG on %{Year}/%{month}/%{day}",
  "name": "Weekly MTG",
  "tags": [
    {
      "name": "MTG/%{Year}/%{month}/%{day}",
      "versions": [
        "0.0.1"
      ]
    }
  ],
  "title": "Weekly MTG on %{Year}/%{month}/%{day}"
}
HTTP/1.1 201
Content-Type: application/json

{
  "body": "Weekly MTG on %{Year}/%{month}/%{day}",
  "id": 1,
  "name": "Weekly MTG",
  "expanded_body": "Weekly MTG on 2000/01/01",
  "expanded_tags": [
    {
      "name": "MTG/2000/01/01",
      "versions": [
        "0.0.1"
      ]
    }
  ],
  "expanded_title": "Weekly MTG on 2015/06/03",
  "tags": [
    {
      "name": "MTG/%{Year}/%{month}/%{day}",
      "versions": [
        "0.0.1"
      ]
    }
  ],
  "title": "Weekly MTG on %{Year}/%{month}/%{day}"
}

PATCH /api/v2/templates/:template_id

Update a template.

  • body
    • The body of this template
    • Example: "Weekly MTG on %{Year}/%{month}/%{day}"
    • Type: string
  • name
    • A template name
    • Example: "Weekly MTG"
    • Type: string
  • tags
    • A list of tags
    • Example: [{"name"=>"MTG/%{Year}/%{month}/%{day}", "versions"=>["0.0.1"]}]
    • Type: array
  • title
    • A template title where variables are to be expanded
    • Example: "Weekly MTG on %{Year}/%{month}/%{day}"
    • Type: string
PATCH /api/v2/templates/:template_id HTTP/1.1
Content-Type: application/json
Host: api.example.com

{
  "body": "Weekly MTG on %{Year}/%{month}/%{day}",
  "name": "Weekly MTG",
  "tags": [
    {
      "name": "MTG/%{Year}/%{month}/%{day}",
      "versions": [
        "0.0.1"
      ]
    }
  ],
  "title": "Weekly MTG on %{Year}/%{month}/%{day}"
}
HTTP/1.1 200
Content-Type: application/json

{
  "body": "Weekly MTG on %{Year}/%{month}/%{day}",
  "id": 1,
  "name": "Weekly MTG",
  "expanded_body": "Weekly MTG on 2000/01/01",
  "expanded_tags": [
    {
      "name": "MTG/2000/01/01",
      "versions": [
        "0.0.1"
      ]
    }
  ],
  "expanded_title": "Weekly MTG on 2015/06/03",
  "tags": [
    {
      "name": "MTG/%{Year}/%{month}/%{day}",
      "versions": [
        "0.0.1"
      ]
    }
  ],
  "title": "Weekly MTG on %{Year}/%{month}/%{day}"
}

User

A Qiita user (a.k.a. account)

  • description
    • self-description
    • Example: "Hello, world."
    • Type: null, string
  • facebook_id
    • Facebook ID
    • Example: "yaotti"
    • Type: null, string
  • followees_count
    • Followees count
    • Example: 100
    • Type: integer
  • followers_count
    • Followers count
    • Example: 200
    • Type: integer
  • github_login_name
    • GitHub ID
    • Example: "yaotti"
    • Type: null, string
  • id
    • User ID
    • Example: "yaotti"
    • Type: string
  • items_count
    • How many items a user posted on qiita.com (Items on Qiita:Team are not included)
    • Example: 300
    • Type: integer
  • linkedin_id
    • LinkedIn ID
    • Example: "yaotti"
    • Type: null, string
  • location
    • Location
    • Example: "Tokyo, Japan"
    • Type: null, string
  • name
    • Customized user name
    • Example: "Hiroshige Umino"
    • Type: null, string
  • organization
    • Organization which a user belongs to
    • Example: "Increments Inc"
    • Type: null, string
  • permanent_id
    • Unique integer ID
    • Example: 1
    • Type: integer
  • profile_image_url
    • Profile image URL
    • Example: "https://si0.twimg.com/profile_images/2309761038/1ijg13pfs0dg84sk2y0h_normal.jpeg"
    • Type: string
  • twitter_screen_name
    • Twitter screen name
    • Example: "yaotti"
    • Type: null, string
  • website_url
    • Website URL
    • Example: "http://yaotti.hatenablog.com"
    • Type: null, string

GET /api/v2/items/:item_id/stockers

List users who stocked an item in recent-stocked order.

  • page
    • Page number (from 1 to 100)
    • Example: 1
    • Type: string
    • Pattern: /^[0-9]+$/
  • per_page
    • Records count per page (from 1 to 100)
    • Example: 20
    • Type: string
    • Pattern: /^[0-9]+$/
GET /api/v2/items/:item_id/stockers?page=1&per_page=20 HTTP/1.1
Host: api.example.com
HTTP/1.1 200
Content-Type: application/json

[
  {
    "description": "Hello, world.",
    "facebook_id": "yaotti",
    "followees_count": 100,
    "followers_count": 200,
    "github_login_name": "yaotti",
    "id": "yaotti",
    "items_count": 300,
    "linkedin_id": "yaotti",
    "location": "Tokyo, Japan",
    "name": "Hiroshige Umino",
    "organization": "Increments Inc",
    "permanent_id": 1,
    "profile_image_url": "https://si0.twimg.com/profile_images/2309761038/1ijg13pfs0dg84sk2y0h_normal.jpeg",
    "twitter_screen_name": "yaotti",
    "website_url": "http://yaotti.hatenablog.com"
  }
]

GET /api/v2/users

List users in newest order.

  • page
    • Page number (from 1 to 100)
    • Example: 1
    • Type: string
    • Pattern: /^[0-9]+$/
  • per_page
    • Records count per page (from 1 to 100)
    • Example: 20
    • Type: string
    • Pattern: /^[0-9]+$/
GET /api/v2/users?page=1&per_page=20 HTTP/1.1
Host: api.example.com
HTTP/1.1 200
Content-Type: application/json

[
  {
    "description": "Hello, world.",
    "facebook_id": "yaotti",
    "followees_count": 100,
    "followers_count": 200,
    "github_login_name": "yaotti",
    "id": "yaotti",
    "items_count": 300,
    "linkedin_id": "yaotti",
    "location": "Tokyo, Japan",
    "name": "Hiroshige Umino",
    "organization": "Increments Inc",
    "permanent_id": 1,
    "profile_image_url": "https://si0.twimg.com/profile_images/2309761038/1ijg13pfs0dg84sk2y0h_normal.jpeg",
    "twitter_screen_name": "yaotti",
    "website_url": "http://yaotti.hatenablog.com"
  }
]

GET /api/v2/users/:user_id

Get a user.

GET /api/v2/users/:user_id HTTP/1.1
Host: api.example.com
HTTP/1.1 200
Content-Type: application/json

{
  "description": "Hello, world.",
  "facebook_id": "yaotti",
  "followees_count": 100,
  "followers_count": 200,
  "github_login_name": "yaotti",
  "id": "yaotti",
  "items_count": 300,
  "linkedin_id": "yaotti",
  "location": "Tokyo, Japan",
  "name": "Hiroshige Umino",
  "organization": "Increments Inc",
  "permanent_id": 1,
  "profile_image_url": "https://si0.twimg.com/profile_images/2309761038/1ijg13pfs0dg84sk2y0h_normal.jpeg",
  "twitter_screen_name": "yaotti",
  "website_url": "http://yaotti.hatenablog.com"
}

GET /api/v2/users/:user_id/followees

List users a user is following.

  • page
    • Page number (from 1 to 100)
    • Example: 1
    • Type: string
    • Pattern: /^[0-9]+$/
  • per_page
    • Records count per page (from 1 to 100)
    • Example: 20
    • Type: string
    • Pattern: /^[0-9]+$/
GET /api/v2/users/:user_id/followees?page=1&per_page=20 HTTP/1.1
Host: api.example.com
HTTP/1.1 200
Content-Type: application/json

[
  {
    "description": "Hello, world.",
    "facebook_id": "yaotti",
    "followees_count": 100,
    "followers_count": 200,
    "github_login_name": "yaotti",
    "id": "yaotti",
    "items_count": 300,
    "linkedin_id": "yaotti",
    "location": "Tokyo, Japan",
    "name": "Hiroshige Umino",
    "organization": "Increments Inc",
    "permanent_id": 1,
    "profile_image_url": "https://si0.twimg.com/profile_images/2309761038/1ijg13pfs0dg84sk2y0h_normal.jpeg",
    "twitter_screen_name": "yaotti",
    "website_url": "http://yaotti.hatenablog.com"
  }
]

GET /api/v2/users/:user_id/followers

List users who are following a user.

  • page
    • Page number (from 1 to 100)
    • Example: 1
    • Type: string
    • Pattern: /^[0-9]+$/
  • per_page
    • Records count per page (from 1 to 100)
    • Example: 20
    • Type: string
    • Pattern: /^[0-9]+$/
GET /api/v2/users/:user_id/followers?page=1&per_page=20 HTTP/1.1
Host: api.example.com
HTTP/1.1 200
Content-Type: application/json

[
  {
    "description": "Hello, world.",
    "facebook_id": "yaotti",
    "followees_count": 100,
    "followers_count": 200,
    "github_login_name": "yaotti",
    "id": "yaotti",
    "items_count": 300,
    "linkedin_id": "yaotti",
    "location": "Tokyo, Japan",
    "name": "Hiroshige Umino",
    "organization": "Increments Inc",
    "permanent_id": 1,
    "profile_image_url": "https://si0.twimg.com/profile_images/2309761038/1ijg13pfs0dg84sk2y0h_normal.jpeg",
    "twitter_screen_name": "yaotti",
    "website_url": "http://yaotti.hatenablog.com"
  }
]

DELETE /api/v2/users/:user_id/following

Unfollow a user.

DELETE /api/v2/users/:user_id/following HTTP/1.1
Host: api.example.com
HTTP/1.1 204

GET /api/v2/users/:user_id/following

Check if the current user is following a user.

GET /api/v2/users/:user_id/following HTTP/1.1
Host: api.example.com
HTTP/1.1 200
Content-Type: application/json

{
  "description": "Hello, world.",
  "facebook_id": "yaotti",
  "followees_count": 100,
  "followers_count": 200,
  "github_login_name": "yaotti",
  "id": "yaotti",
  "items_count": 300,
  "linkedin_id": "yaotti",
  "location": "Tokyo, Japan",
  "name": "Hiroshige Umino",
  "organization": "Increments Inc",
  "permanent_id": 1,
  "profile_image_url": "https://si0.twimg.com/profile_images/2309761038/1ijg13pfs0dg84sk2y0h_normal.jpeg",
  "twitter_screen_name": "yaotti",
  "website_url": "http://yaotti.hatenablog.com"
}

PUT /api/v2/users/:user_id/following

Follow a user.

PUT /api/v2/users/:user_id/following HTTP/1.1
Host: api.example.com
HTTP/1.1 204