Create a queue

POST /queues

Creates a new queue associated.

This endpoint returns the queue's unique identifier, the queue_id. This identifier can be used for subsequent requests to

Additionally, the queue_id is necessary to create and update Listeners and Messages.Thus, the creation of a queue is a prerequisite for the following endpoints:

Authentication

The target organization for this request will be determined by the supplied access token.

As a prerequisite you need to create an accountopen in new window and follow the onboarding process to also create an organization and an API key.

See also: Authentication.

Examples

curl -X POST http://api.discue.io/v1/queues \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'X-API-KEY: API_KEY' \
  -d '{
  "name": "myapp.io/deletion-request-queue",
  "schema": {
    "person": {
      "type": "object",
      "props": {
        "name": {
          "type": "string",
          "pattern": "abc",
          "required": true
        },
        "street": {
          "type": "string",
          "min": 5,
          "max": 10
        },
        "city": {
          "type": "string",
          "enum": [
            "Berlin"
          ]
        }
      }
    },
    "count": {
      "type": "number",
      "min": 0,
      "max": 15,
      "required": false
    },
    "list": {
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "abc",
        "required": true
      }
    }
  }
}' 
const body = {
  "name": "myapp.io/deletion-request-queue",
  "schema": {
    "person": {
      "type": "object",
      "props": {
        "name": {
          "type": "string",
          "pattern": "abc",
          "required": true
        },
        "street": {
          "type": "string",
          "min": 5,
          "max": 10
        },
        "city": {
          "type": "string",
          "enum": [
            "Berlin"
          ]
        }
      }
    },
    "count": {
      "type": "number",
      "min": 0,
      "max": 15,
      "required": false
    },
    "list": {
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "abc",
        "required": true
      }
    }
  }
}

const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'X-API-KEY':'API_KEY'
}

const response = await fetch('http://api.discue.io/v1/queues', {
  method: 'POST',  body,  headers
})

const body = await response.json()
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'X-API-KEY': 'API_KEY'
}

r = requests.post('http://api.discue.io/v1/queues', headers = headers)
package main

import (
  "bytes"
  "net/http"
)

func main() {

  headers := map[string][]string{
      "Content-Type": []string{"application/json"},
      "Accept": []string{"application/json"},
      "X-API-KEY": []string{"API_KEY"},
  }

  data := bytes.NewBuffer([]byte{jsonReq})
  req, err := http.NewRequest("POST", "http://api.discue.io/v1/queues", data)
  req.Header = headers

  client := &http.Client{}
  resp, err := client.Do(req)
}

Body

{
  "name": "myapp.io/deletion-request-queue",
  "schema": {
    "person": {
      "type": "object",
      "props": {
        "name": {
          "type": "string",
          "pattern": "abc",
          "required": true
        },
        "street": {
          "type": "string",
          "min": 5,
          "max": 10
        },
        "city": {
          "type": "string",
          "enum": [
            "Berlin"
          ]
        }
      }
    },
    "count": {
      "type": "number",
      "min": 0,
      "max": 15,
      "required": false
    },
    "list": {
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "abc",
        "required": true
      }
    }
  }
}

Parameters

NameInTypeRequiredDescription
prettyquerybooleanReturn the response pretty printed
bodybodyUpdateQueueRequestnone
» namebodystringnone
» schemabodyQueueMessageSchemanone

Responses

200 Response

{
  "queue": {
    "id": "string",
    "name": "string",
    "schema": {
      "person": {
        "type": "object",
        "props": {
          "name": {
            "type": "string",
            "pattern": "abc",
            "required": true
          },
          "street": {
            "type": "string",
            "min": 5,
            "max": 10
          },
          "city": {
            "type": "string",
            "enum": [
              "Berlin"
            ]
          }
        }
      },
      "count": {
        "type": "number",
        "min": 0,
        "max": 15,
        "required": false
      },
      "list": {
        "type": "array",
        "items": {
          "type": "string",
          "pattern": "abc",
          "required": true
        }
      }
    }
  },
  "_links": {
    "self": {
      "href": "https://api.discue.io/queues/180994c-b6b2-4d0e-b7ad-414716e83386"
    },
    "myapp.io/delete-user-listener-64fae19": {
      "href": "https://api.discue.io/queues/180994c-b6b2-4d0e-b7ad-414716e83386/listeners/0644659f-b47b-4668-86dd-a496cb7fbc76"
    }
  }
}

400 Response

{
  "title": "Bad Request",
  "status": 400
}

401 Response

{
  "title": "Unauthorized",
  "status": 401
}

402 Response

{
  "title": "Payment Required",
  "status": 402
}

403 Response

{
  "title": "Forbidden",
  "status": 403
}

404 Response

{
  "title": "Not Found",
  "status": 404
}

405 Response

{
  "title": "Method Not Allowed",
  "status": 405
}

406 Response

{
  "title": "Not Acceptable",
  "status": 406
}

409 Response

{
  "title": "Conflict",
  "status": 409
}

415 Response

{
  "title": "Unsupported Media Type",
  "status": 415
}

422 Response

{
  "title": "Unprocessable Entity",
  "status": 422
}

423 Response

{
  "title": "Locked",
  "status": 423
}

429 Response

{
  "title": "Too Many Requests",
  "status": 429
}

500 Response

{
  "title": "Internal Server Error",
  "status": 500
}

501 Response

{
  "title": "Not Implemented",
  "status": 501
}

503 Response

{
  "title": "Service Unavailable",
  "status": 503
}
StatusMeaningDescriptionSchema
200OKopen in new windowOkGetQueueResponse
400Bad Requestopen in new windowBad RequestInline
401Unauthorizedopen in new windowUnauthorizedInline
402Payment Requiredopen in new windowPayment RequiredInline
403Forbiddenopen in new windowForbiddenInline
404Not Foundopen in new windowNot FoundInline
405Method Not Allowedopen in new windowMethod Not AllowedInline
406Not Acceptableopen in new windowNot AcceptableInline
409Conflictopen in new windowConflictInline
415Unsupported Media Typeopen in new windowUnsupported Media TypeInline
422Unprocessable Entityopen in new windowUnprocessable EntityInline
423Lockedopen in new windowLockedInline
429Too Many Requestsopen in new windowToo Many RequestsInline
500Internal Server Erroropen in new windowInternal Server ErrorInline
501Not Implementedopen in new windowNot ImplementedInline
503Service Unavailableopen in new windowService UnavailableInline

Last Updated:
Contributors: Stefan Pfaffel