swagger: "2.0"
schemes:
  - http
host: api.thenounproject.com
basePath: /
x-hasEquivalentPaths: true
info:
  description: Icons for Everything
  title: The Noun Project
  version: 1.0.0
  x-apisguru-categories:
    - media
  x-logo:
    url: https://twitter.com/nounproject/profile_image?size=original
  x-origin:
    - converter:
        url: https://github.com/lucybot/api-spec-converter
        version: 2.7.11
      format: swagger
      url: http://api.thenounproject.com/config/api-doc
      version: "1.2"
  x-providerName: thenounproject.com
externalDocs:
  url: https://thenounproject.com/developers/
produces:
  - application/json
tags:
  - description: Operations on collection endpoints
    name: collection
  - description: Operations on collections endpoints
    name: collections
  - description: Operations on icon endpoints
    name: icon
  - description: Operations on icons endpoints
    name: icons
  - description: Operations on oauth endpoints
    name: oauth
  - description: Operations on user endpoints
    name: user
paths:
  "/collection/{id}":
    get:
      description: Returns a single collection
      operationId: getCollectionById
      parameters:
        - description: Collection id
          format: int32
          in: path
          name: id
          required: true
          type: integer
      responses:
        "200":
          description: No response was specified
      summary: Get collection by id
      tags:
        - collection
  "/collection/{id}/icons":
    get:
      description: Returns a list of icons associated with a collection
      operationId: getCollectionIconsById
      parameters:
        - description: Collection id
          format: int32
          in: path
          name: id
          required: true
          type: integer
        - description: Maximum number of results
          format: int32
          in: query
          name: limit
          required: false
          type: integer
        - description: Number of results to displace or skip over
          format: int32
          in: query
          name: offset
          required: false
          type: integer
        - description: Number of results of limit length to displace or skip over
          format: int32
          in: query
          name: page
          required: false
          type: integer
      responses:
        "200":
          description: No response was specified
      summary: Get collection icons by id
      tags:
        - collection
  "/collection/{slug}":
    get:
      description: Returns a single collection
      operationId: getCollectionBySlug
      parameters:
        - description: Collection slug
          in: path
          name: slug
          required: true
          type: string
      responses:
        "200":
          description: No response was specified
      summary: Get collection by slug
      tags:
        - collection
  "/collection/{slug}/icons":
    get:
      description: Returns a list of icons associated with a collection
      operationId: getCollectionIconsBySlug
      parameters:
        - description: Collection slug
          in: path
          name: slug
          required: true
          type: string
        - description: Maximum number of results
          format: int32
          in: query
          name: limit
          required: false
          type: integer
        - description: Number of results to displace or skip over
          format: int32
          in: query
          name: offset
          required: false
          type: integer
        - description: Number of results of limit length to displace or skip over
          format: int32
          in: query
          name: page
          required: false
          type: integer
      responses:
        "200":
          description: No response was specified
      summary: Get collection icons by slug
      tags:
        - collection
  /collections:
    get:
      description: Return's a list of all collections
      operationId: getAllCollections
      parameters:
        - description: Maximum number of results
          format: int32
          in: query
          name: limit
          required: false
          type: integer
        - description: Number of results to displace or skip over
          format: int32
          in: query
          name: offset
          required: false
          type: integer
        - description: Number of results of limit length to displace or skip over
          format: int32
          in: query
          name: page
          required: false
          type: integer
      responses:
        "200":
          description: No response was specified
      summary: Get all collections
      tags:
        - collections
  "/icon/{id}":
    get:
      description: Returns a single icon
      operationId: getIconById
      parameters:
        - description: Icon id
          format: int32
          in: path
          name: id
          required: true
          type: integer
      responses:
        "200":
          description: No response was specified
      summary: Get icon by id
      tags:
        - icon
  "/icon/{term}":
    get:
      description: Returns a single icon
      operationId: getIconByTerm
      parameters:
        - description: Icon term
          in: path
          name: term
          required: true
          type: string
      responses:
        "200":
          description: No response was specified
      summary: Get icon by term
      tags:
        - icon
  /icons/recent_uploads:
    get:
      description: Returns list of most recently uploaded icons
      operationId: getRecentIcons
      parameters:
        - description: Maximum number of results
          format: int32
          in: query
          name: limit
          required: false
          type: integer
        - description: Number of results to displace or skip over
          format: int32
          in: query
          name: offset
          required: false
          type: integer
        - description: Number of results of limit length to displace or skip over
          format: int32
          in: query
          name: page
          required: false
          type: integer
      responses:
        "200":
          description: No response was specified
      summary: Get recent icons
      tags:
        - icons
  "/icons/{term}":
    get:
      description: Returns a list of icons
      operationId: getIconsByTerm
      parameters:
        - description: Icon term
          in: path
          name: term
          required: true
          type: string
        - description: Limit results to public domain icons only
          format: int32
          in: query
          name: limit_to_public_domain
          required: false
          type: integer
        - description: Maximum number of results
          format: int32
          in: query
          name: limit
          required: false
          type: integer
        - description: Number of results to displace or skip over
          format: int32
          in: query
          name: offset
          required: false
          type: integer
        - description: Number of results of limit length to displace or skip over
          format: int32
          in: query
          name: page
          required: false
          type: integer
      responses:
        "200":
          description: No response was specified
      summary: Get icons by term
      tags:
        - icons
  /oauth/usage:
    get:
      description: Returns current oauth usage and limits
      operationId: getApiQuotaStatus
      responses:
        "200":
          description: No response was specified
      summary: Get api quota status
      tags:
        - oauth
  "/user/{user_id}/collections":
    get:
      description: Returns a list of collections associated with a user
      operationId: getUserCollections
      parameters:
        - description: User id
          format: int32
          in: path
          name: user_id
          required: true
          type: integer
      responses:
        "200":
          description: No response was specified
      summary: Get user collections
      tags:
        - user
  "/user/{user_id}/collections/{slug}":
    get:
      description: Returns a single collection associated with a user
      operationId: getUserCollection
      parameters:
        - description: User id
          format: int32
          in: path
          name: user_id
          required: true
          type: integer
        - description: Collection slug
          in: path
          name: slug
          required: true
          type: string
      responses:
        "200":
          description: No response was specified
      summary: Get user collection
      tags:
        - user
  "/user/{username}/uploads":
    get:
      description: Returns a list of uploads associated with a user
      operationId: getUserUploadsWithUser
      parameters:
        - description: Username
          in: path
          name: username
          required: true
          type: string
        - description: Maximum number of results
          format: int32
          in: query
          name: limit
          required: false
          type: integer
        - description: Number of results to displace or skip over
          format: int32
          in: query
          name: offset
          required: false
          type: integer
        - description: Number of results of limit length to displace or skip over
          format: int32
          in: query
          name: page
          required: false
          type: integer
      responses:
        "200":
          description: No response was specified
      summary: Get user uploads with user
      tags:
        - user
