swagger: "2.0"
schemes:
  - https
host: dweet.io
basePath: /
info:
  description: Dweet.io allows users to share data from mobile, tablets, and pcs, and them to other devices and accounts across social media platforms. Dweet.io provides an API to access the different functionality of the Dweet.io service. Users can make REST calls to read and create dweets, lock and unlock things, and perform other calls. The API returns JSON and JSONP.
  title: dweet.io
  version: "2.0"
  x-apisguru-categories:
    - iot
  x-logo:
    url: https://twitter.com/dweet_io/profile_image?size=original
  x-origin:
    - converter:
        url: https://github.com/lucybot/api-spec-converter
        version: 2.7.31
      format: swagger
      url: https://dweet.io/play/definition
      version: "1.2"
  x-providerName: dweet.io
tags:
  - description: Alerts for things.
    name: alerts
  - description: Create or read dweets in short term cache.
    name: dweets
  - description: Lock and unlock your things.
    name: locks
  - description: Read dweets from long term storage.
    name: storage
paths:
  "/alert/{who}/when/{thing}/{condition}":
    get:
      operationId: createAlertGET
      parameters:
        - description: A comma separated list of Email addresses to send the alert to.
          in: path
          name: who
          required: true
          type: string
        - description: A unique name of a thing. It is recommended that you use a GUID as to avoid name collisions.
          in: path
          name: thing
          required: true
          type: string
        - description: A condition that returns a string or a true value if a condition is met.
          in: path
          name: condition
          required: true
          type: string
        - description: A valid key for a locked thing. If the thing is not locked, this can be ignored.
          in: query
          name: key
          required: true
          type: string
      responses:
        "200":
          description: No response was specified
      summary: Create an alert for a thing. A thing must be locked before an alert can be set.
      tags:
        - alerts
  "/dweet/for/{thing}":
    post:
      parameters:
        - description: A unique name of a thing. It is recommended that you use a GUID as to avoid name collisions.
          in: path
          name: thing
          required: true
          type: string
        - description: A valid key for a locked thing. If the thing is not locked, this can be ignored.
          in: query
          name: key
          required: false
          type: string
        - description: The actual content of the string. Can be any valid JSON string.
          in: body
          name: content
          required: true
          schema:
            type: string
      responses:
        "200":
          description: No response was specified
      summary: Create a dweet for a thing.
      tags:
        - dweets
  "/dweet/quietly/for/{thing}":
    post:
      parameters:
        - description: A unique name of a thing. It is recommended that you use a GUID as to avoid name collisions.
          in: path
          name: thing
          required: true
          type: string
        - description: A valid key for a locked thing. If the thing is not locked, this can be ignored.
          in: query
          name: key
          required: false
          type: string
        - description: The actual content of the string. Can be any valid JSON string.
          in: body
          name: content
          required: true
          schema:
            type: string
      responses:
        "200":
          description: No response was specified
      summary: Create a dweet for a thing.  This method differs from /dweet/for/{thing} only in that successful dweets result in an HTTP 204 response rather than the typical verbose response.
      tags:
        - dweets
  "/get/alert/for/{thing}":
    get:
      operationId: getAlert
      parameters:
        - description: A unique name of a thing.
          in: path
          name: thing
          required: true
          type: string
        - description: A valid key for a locked thing. If the thing is not locked, this can be ignored.
          in: query
          name: key
          required: true
          type: string
      responses:
        "200":
          description: No response was specified
      summary: Get the alert attached to a thing.
      tags:
        - alerts
  "/get/dweets/for/{thing}":
    get:
      parameters:
        - description: A unique name of a thing.
          in: path
          name: thing
          required: true
          type: string
        - description: A valid key for a locked thing. If the thing is not locked, this can be ignored.
          in: query
          name: key
          required: false
          type: string
      responses:
        "200":
          description: No response was specified
      summary: Read the last 5 cached dweets for a thing.
      tags:
        - dweets
  "/get/latest/dweet/for/{thing}":
    get:
      operationId: getLatestDweet
      parameters:
        - description: A unique name of a thing.
          in: path
          name: thing
          required: true
          type: string
        - description: A valid key for a locked thing. If the thing is not locked, this can be ignored.
          in: query
          name: key
          required: false
          type: string
      responses:
        "200":
          description: No response was specified
      summary: Read the latest dweet for a thing.
      tags:
        - dweets
  "/get/stored/alerts/for/{thing}":
    get:
      operationId: getStoredAlerts
      parameters:
        - description: A unique name of a thing.
          in: path
          name: thing
          required: true
          type: string
        - description: A valid key for a locked thing. If the thing is not locked, this can be ignored.
          in: query
          name: key
          required: true
          type: string
        - description: The calendar date (YYYY-MM-DD) from which you'd like to start your query.  The response will be a maximum of one day.
          in: query
          name: date
          required: true
          type: string
        - description: The hour of the day represented in the date parameter in 24-hour (00-23) format.  If this parameter is included, a maximum of 1 hour will be returned starting at this hour.
          in: query
          name: hour
          required: false
          type: string
        - description: Current valid parameters for this are 'csv' and 'json'.  If this parameter is left blank, all responses default to hapi-json dweet-speak.
          in: query
          name: responseType
          required: false
          type: string
      responses:
        "200":
          description: No response was specified
      summary: Read all the saved alerts for a thing from long term storage.  You can query a maximum of 1 day per request and a granularly of 1 hour.
      tags:
        - storage
  "/get/stored/dweets/for/{thing}":
    get:
      parameters:
        - description: A unique name of a thing.
          in: path
          name: thing
          required: true
          type: string
        - description: A valid key for a locked thing. If the thing is not locked, this can be ignored.
          in: query
          name: key
          required: true
          type: string
        - description: The calendar date (YYYY-MM-DD) from which you'd like to start your query.  The response will be a maximum of one day.
          in: query
          name: date
          required: true
          type: string
        - description: The hour of the day represented in the date parameter in 24-hour (00-23) format.  If this parameter is included, a maximum of 1 hour will be returned starting at this hour.
          in: query
          name: hour
          required: false
          type: string
        - description: Current valid parameters for this are 'csv' and 'json'.  If this parameter is left blank, all responses default to hapi-json dweet-speak.
          in: query
          name: responseType
          required: false
          type: string
      responses:
        "200":
          description: No response was specified
      summary: Read all the saved dweets for a thing from long term storage.  You can query a maximum of 1 day per request and a granularly of 1 hour.
      tags:
        - storage
  "/listen/for/dweets/from/{thing}":
    get:
      description: "Sorry, this function uses HTTP chunked responses and cannot be tested here. Try something like: <pre>curl --raw https://dweet.io/listen/for/dweets/from/{thing}</pre>"
      operationId: listenForDweets
      parameters:
        - in: path
          name: thing
          required: true
          type: string
      responses:
        "200":
          description: No response was specified
      summary: Listen for dweets from a thing.
      tags:
        - dweets
  "/lock/{thing}":
    get:
      operationId: lockThing
      parameters:
        - description: A unique name of a thing.
          in: path
          name: thing
          required: true
          type: string
        - description: A valid dweet.io lock.
          in: query
          name: lock
          required: true
          type: string
        - description: A valid dweet.io master key.
          in: query
          name: key
          required: true
          type: string
      responses:
        "200":
          description: No response was specified
      summary: Reserve and lock a thing.
      tags:
        - locks
  "/remove/alert/for/{thing}":
    get:
      operationId: removeAlert
      parameters:
        - description: A unique name of a thing.
          in: path
          name: thing
          required: true
          type: string
        - description: A valid key for a locked thing. If the thing is not locked, this can be ignored.
          in: query
          name: key
          required: true
          type: string
      responses:
        "200":
          description: No response was specified
      summary: Remove an alert for a thing.
      tags:
        - alerts
  "/remove/lock/{lock}":
    get:
      operationId: removeLock
      parameters:
        - description: A valid dweet.io lock.
          in: path
          name: lock
          required: true
          type: string
        - description: A valid dweet.io master key.
          in: query
          name: key
          required: true
          type: string
      responses:
        "200":
          description: No response was specified
      summary: Remove a lock from thing.
      tags:
        - locks
  "/unlock/{thing}":
    get:
      operationId: unlockThing
      parameters:
        - description: A unique name of a thing.
          in: path
          name: thing
          required: true
          type: string
        - description: A valid dweet.io master key.
          in: query
          name: key
          required: true
          type: string
      responses:
        "200":
          description: No response was specified
      summary: Unlock a thing.
      tags:
        - locks
