Skip to content

Latest commit

 

History

History
3058 lines (2381 loc) · 80.4 KB

File metadata and controls

3058 lines (2381 loc) · 80.4 KB
title Routegy API v1
language_tabs
http
HTTP
shell
Shell
python
Python
ruby
Ruby
go
Go
language_clients
shell
curl
python
requests
toc_footers
includes
search true
highlight_theme darkula
headingLevel 2

Routegy API v1

Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

Welcome to the Routegy API docs!

These documents include both the Management API and the Public API.

For more information, be sure to check out our documentation website at https://docs.routegy.com.

Base URLs:

Terms of service Email: Support

Authentication

Scope Scope Description

Public API

Public API endpoints for retrieving a Routegy app for a given code, and creating events for them.

Get app from a code short id

Code samples

GET https://api.routegy.com/public/codes/{short_id}/app HTTP/1.1
Host: api.routegy.com
Accept: application/json
# You can also use wget
curl -X GET https://api.routegy.com/public/codes/{short_id}/app \
  -H 'Accept: application/json'
import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://api.routegy.com/public/codes/{short_id}/app', headers = headers)

print(r.json())
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.get 'https://api.routegy.com/public/codes/{short_id}/app',
  params: {
  }, headers: headers

p JSON.parse(result)
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.routegy.com/public/codes/{short_id}/app", data)
    req.Header = headers

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

GET /public/codes/{short_id}/app

Get app from code short id.

Parameters

Name In Type Required Description
short_id path integer true A short ID identifying this code.

Example responses

200 Response

{
  "name": "Out of coffee?",
  "slug": "out-of-coffee",
  "description": "Let us know so we can refill the pot",
  "group": {
    "name": "Break room",
    "slug": "break-room",
    "description": "Employee break room",
    "breadcrumbs": "Office / Floor 1"
  },
  "pattern": {
    "name": "Coffee Machine",
    "slug": "coffee-machine",
    "description": "Report supply chain issues related to coffee machines",
    "document": {
      "type": "object",
      "title": "Out of coffee?",
      "required": [
        "problem"
      ],
      "additionalProperties": false,
      "properties": {
        "problem": [
          "No coffee beans",
          "No filters",
          "No cups",
          "Machine isn't working",
          "Something else"
        ],
        "type": "string",
        "attrs": {
          "type": "radio"
        },
        "title": "What is the problem?",
        "comments": {
          "type": "string",
          "attrs": {
            "type": "textarea",
            "placeholder": "Please provide any additional comments here"
          },
          "title": "Additional comments"
        }
      }
    }
  }
}

Responses

Status Meaning Description Schema
200 OK Success GetCodeAppResponse
400 Bad Request Bad Request BadRequestResponse
401 Unauthorized Unauthorized UnauthorizedResponse
403 Forbidden Forbidden ForbiddenResponse
404 Not Found Not Found NotFoundResponse
This operation does not require authentication

Create event for an app from a code short id

Code samples

POST https://api.routegy.com/public/codes/{short_id}/event HTTP/1.1
Host: api.routegy.com
Accept: application/json
# You can also use wget
curl -X POST https://api.routegy.com/public/codes/{short_id}/event \
  -H 'Accept: application/json'
import requests
headers = {
  'Accept': 'application/json'
}

r = requests.post('https://api.routegy.com/public/codes/{short_id}/event', headers = headers)

print(r.json())
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.post 'https://api.routegy.com/public/codes/{short_id}/event',
  params: {
  }, headers: headers

p JSON.parse(result)
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.routegy.com/public/codes/{short_id}/event", data)
    req.Header = headers

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

POST /public/codes/{short_id}/event

Create a new event for an app referenced from a code short id.

Parameters

Name In Type Required Description
short_id path integer true A short ID identifying this code.

Example responses

201 Response

{
  "id": "5A29D4AB-99AE-49A7-810B-CDA71FBBF9ED"
}

Responses

Status Meaning Description Schema
201 Created Created CodeEventCreatedResponse
400 Bad Request Bad Request BadRequestResponse
401 Unauthorized Unauthorized UnauthorizedResponse
403 Forbidden Forbidden ForbiddenResponse
404 Not Found Not Found NotFoundResponse
This operation does not require authentication

Management API

Management API endpoints for operations on Routegy organizations, workspaces, apps, patterns, actions, action types, and events.

Get code by id

Code samples

GET https://api.routegy.com/codes/{id} HTTP/1.1
Host: api.routegy.com
Accept: application/json
# You can also use wget
curl -X GET https://api.routegy.com/codes/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.routegy.com/codes/{id}', headers = headers)

print(r.json())
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.routegy.com/codes/{id}',
  params: {
  }, headers: headers

p JSON.parse(result)
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.routegy.com/codes/{id}", data)
    req.Header = headers

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

GET /codes/{id}

Get code by its ID.

Check out the Codes page for more information.

Parameters

Name In Type Required Description
id path string(uuid) true A UUID string identifying this code.

Example responses

200 Response

{
  "id": "5C74E22E-D7ED-497E-8DE3-09FF4E9AEBEC",
  "url": "https://api.routegy.com/codes/5C74E22E-D7ED-497E-8DE3-09FF4E9AEBEC",
  "created_at": "2020-03-27T23:09:35+0000",
  "updated_at": "2020-03-27T23:09:35+0000",
  "short_id": "ax7dkEg",
  "app": "BADD03B4-CAEB-49DB-8B91-BEFAC4EB9EEB"
}

Responses

Status Meaning Description Schema
200 OK Success GetCodeResponse
400 Bad Request Bad Request BadRequestResponse
401 Unauthorized Unauthorized UnauthorizedResponse
403 Forbidden Forbidden ForbiddenResponse
404 Not Found Not Found NotFoundResponse
To perform this operation, you must be authenticated by means of one of the following methods: OAuth2

Get code by short id

Code samples

GET https://api.routegy.com/codes/{short_id} HTTP/1.1
Host: api.routegy.com
Accept: application/json
# You can also use wget
curl -X GET https://api.routegy.com/codes/{short_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.routegy.com/codes/{short_id}', headers = headers)

print(r.json())
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.routegy.com/codes/{short_id}',
  params: {
  }, headers: headers

p JSON.parse(result)
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.routegy.com/codes/{short_id}", data)
    req.Header = headers

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

GET /codes/{short_id}

Get code by its short ID.

Check out the Codes page for more information.

Parameters

Name In Type Required Description
short_id path integer true A short ID identifying this code.

Example responses

200 Response

{
  "id": "5C74E22E-D7ED-497E-8DE3-09FF4E9AEBEC",
  "url": "https://api.routegy.com/codes/5C74E22E-D7ED-497E-8DE3-09FF4E9AEBEC",
  "created_at": "2020-03-27T23:09:35+0000",
  "updated_at": "2020-03-27T23:09:35+0000",
  "short_id": "ax7dkEg",
  "app": "BADD03B4-CAEB-49DB-8B91-BEFAC4EB9EEB"
}

Responses

Status Meaning Description Schema
200 OK Success GetCodeResponse
400 Bad Request Bad Request BadRequestResponse
401 Unauthorized Unauthorized UnauthorizedResponse
403 Forbidden Forbidden ForbiddenResponse
404 Not Found Not Found NotFoundResponse
To perform this operation, you must be authenticated by means of one of the following methods: OAuth2

List organizations

Code samples

GET https://api.routegy.com/organizations HTTP/1.1
Host: api.routegy.com
Accept: application/json
# You can also use wget
curl -X GET https://api.routegy.com/organizations \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.routegy.com/organizations', headers = headers)

print(r.json())
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.routegy.com/organizations',
  params: {
  }, headers: headers

p JSON.parse(result)
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.routegy.com/organizations", data)
    req.Header = headers

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

GET /organizations

List all organizations for the authenticated user.

Example responses

200 Response

{
  "next": "https://api.routegy.com/organizations?next=XXXXXX",
  "previous": null,
  "items": [
    {
      "id": "1E96C10E-658B-40C5-B7FF-A9D9A8F6BB93",
      "url": "https://api.routegy.com/organizations/1E96C10E-658B-40C5-B7FF-A9D9A8F6BB93",
      "name": "My Test Organization",
      "slug": "my-test-organization",
      "description": "Organization where I test things"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Success ListOrganizationsResponse
400 Bad Request Bad Request BadRequestResponse
401 Unauthorized Unauthorized UnauthorizedResponse
403 Forbidden Forbidden ForbiddenResponse
404 Not Found Not Found NotFoundResponse
To perform this operation, you must be authenticated by means of one of the following methods: OAuth2

Create new organization

Code samples

POST https://api.routegy.com/organizations HTTP/1.1
Host: api.routegy.com
Content-Type: application/json
Accept: application/json
# You can also use wget
curl -X POST https://api.routegy.com/organizations \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.routegy.com/organizations', headers = headers)

print(r.json())
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.routegy.com/organizations',
  params: {
  }, headers: headers

p JSON.parse(result)
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.routegy.com/organizations", data)
    req.Header = headers

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

POST /organizations

Create a new organization.

Related:

Body parameter

{
  "name": "My Test Organization",
  "description": "Organization where I test things",
  "owner": "A56C801E-D814-41E0-8A4F-70FBF25B7C13",
  "plan": "0BF5E76C-4423-44D6-BF29-BA2DC7D7CF2D"
}

Parameters

Name In Type Required Description
body body CreateOrganizationRequest true Object defining the resource to create

Example responses

201 Response

{
  "id": "1E96C10E-658B-40C5-B7FF-A9D9A8F6BB93",
  "url": "https://api.routegy.com/organizations/1E96C10E-658B-40C5-B7FF-A9D9A8F6BB93",
  "created_at": "2020-03-27T23:09:35+0000",
  "updated_at": "2020-03-27T23:09:35+0000",
  "name": "My Test Organization",
  "slug": "my-test-organization",
  "description": "Organization where I test things",
  "owner": {
    "id": "27B4CF49-88CD-4960-B397-13443DD24402",
    "name": "John Smith",
    "email": "john.smith@example.org"
  },
  "plan": {
    "id": "0BF5E76C-4423-44D6-BF29-BA2DC7D7CF2D",
    "expires_at": "2020-04-27T23:09:35+0000",
    "active": true,
    "plan_type": {
      "id": "e38b1667-8246-4b92-b0d8-6a2a13d32c5a",
      "url": "https://api.routegy.com/plan-types/e38b1667-8246-4b92-b0d8-6a2a13d32c5a",
      "name": "Trial",
      "slug": "trial",
      "description": "Trial plan that enables limited use of the service",
      "meta_data": {
        "stripe_plan_id": "plan_GV4hyt7qWfXHps"
      },
      "quotas": [
        {
          "id": "303b3a7b-c03f-41e2-967d-1569e1a312e6",
          "name": "Apps (20)",
          "slug": "apps-20",
          "description": "Limit the number of apps to 20",
          "value": 20
        }
      ]
    }
  }
}

Responses

Status Meaning Description Schema
201 Created Created CreateOrganizationResponse
400 Bad Request Bad Request BadRequestResponse
401 Unauthorized Unauthorized UnauthorizedResponse
403 Forbidden Forbidden ForbiddenResponse
To perform this operation, you must be authenticated by means of one of the following methods: OAuth2

Get organization by id

Code samples

GET https://api.routegy.com/organizations/{id} HTTP/1.1
Host: api.routegy.com
Accept: application/json
# You can also use wget
curl -X GET https://api.routegy.com/organizations/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.routegy.com/organizations/{id}', headers = headers)

print(r.json())
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.routegy.com/organizations/{id}',
  params: {
  }, headers: headers

p JSON.parse(result)
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.routegy.com/organizations/{id}", data)
    req.Header = headers

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

GET /organizations/{id}

Get organization by its ID.

Related:

Parameters

Name In Type Required Description
id path string(uuid) true A UUID string identifying this organization.

Example responses

200 Response

{
  "id": "1E96C10E-658B-40C5-B7FF-A9D9A8F6BB93",
  "url": "https://api.routegy.com/organizations/1E96C10E-658B-40C5-B7FF-A9D9A8F6BB93",
  "created_at": "2020-03-27T23:09:35+0000",
  "updated_at": "2020-03-27T23:09:35+0000",
  "name": "My Test Organization",
  "slug": "my-test-organization",
  "description": "Organization where I test things",
  "owner": {
    "id": "27B4CF49-88CD-4960-B397-13443DD24402",
    "name": "John Smith",
    "email": "john.smith@example.org"
  },
  "plan": {
    "id": "0BF5E76C-4423-44D6-BF29-BA2DC7D7CF2D",
    "expires_at": "2020-04-27T23:09:35+0000",
    "active": true,
    "plan_type": {
      "id": "e38b1667-8246-4b92-b0d8-6a2a13d32c5a",
      "url": "https://api.routegy.com/plan-types/e38b1667-8246-4b92-b0d8-6a2a13d32c5a",
      "name": "Trial",
      "slug": "trial",
      "description": "Trial plan that enables limited use of the service",
      "meta_data": {
        "stripe_plan_id": "plan_GV4hyt7qWfXHps"
      },
      "quotas": [
        {
          "id": "303b3a7b-c03f-41e2-967d-1569e1a312e6",
          "name": "Apps (20)",
          "slug": "apps-20",
          "description": "Limit the number of apps to 20",
          "value": 20
        }
      ]
    }
  }
}

Responses

Status Meaning Description Schema
200 OK Success GetOrganizationResponse
400 Bad Request Bad Request BadRequestResponse
401 Unauthorized Unauthorized UnauthorizedResponse
403 Forbidden Forbidden ForbiddenResponse
404 Not Found Not Found NotFoundResponse
To perform this operation, you must be authenticated by means of one of the following methods: OAuth2

Update organization by id

Code samples

PUT https://api.routegy.com/organizations/{id} HTTP/1.1
Host: api.routegy.com
Content-Type: application/json
Accept: application/json
# You can also use wget
curl -X PUT https://api.routegy.com/organizations/{id} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.put('https://api.routegy.com/organizations/{id}', headers = headers)

print(r.json())
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.put 'https://api.routegy.com/organizations/{id}',
  params: {
  }, headers: headers

p JSON.parse(result)
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://api.routegy.com/organizations/{id}", data)
    req.Header = headers

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

PUT /organizations/{id}

Update organization by its id

Body parameter

{
  "name": "My Test Organization",
  "description": "Organization where I test things",
  "owner": "27B4CF49-88CD-4960-B397-13443DD24402",
  "plan": "0BF5E76C-4423-44D6-BF29-BA2DC7D7CF2D"
}

Parameters

Name In Type Required Description
body body UpdateOrganizationRequest true none
id path string(uuid) true A UUID string identifying this organization.

Example responses

200 Response

{
  "id": "1E96C10E-658B-40C5-B7FF-A9D9A8F6BB93",
  "url": "https://api.routegy.com/organizations/1E96C10E-658B-40C5-B7FF-A9D9A8F6BB93",
  "created_at": "2020-03-27T23:09:35+0000",
  "updated_at": "2020-03-27T23:09:35+0000",
  "name": "My Test Organization",
  "slug": "my-test-organization",
  "description": "Organization where I test things",
  "owner": {
    "id": "27B4CF49-88CD-4960-B397-13443DD24402",
    "name": "John Smith",
    "email": "john.smith@example.org"
  },
  "plan": {
    "id": "0BF5E76C-4423-44D6-BF29-BA2DC7D7CF2D",
    "expires_at": "2020-04-27T23:09:35+0000",
    "active": true,
    "plan_type": {
      "id": "e38b1667-8246-4b92-b0d8-6a2a13d32c5a",
      "url": "https://api.routegy.com/plan-types/e38b1667-8246-4b92-b0d8-6a2a13d32c5a",
      "name": "Trial",
      "slug": "trial",
      "description": "Trial plan that enables limited use of the service",
      "meta_data": {
        "stripe_plan_id": "plan_GV4hyt7qWfXHps"
      },
      "quotas": [
        {
          "id": "303b3a7b-c03f-41e2-967d-1569e1a312e6",
          "name": "Apps (20)",
          "slug": "apps-20",
          "description": "Limit the number of apps to 20",
          "value": 20
        }
      ]
    }
  }
}

Responses

Status Meaning Description Schema
200 OK Success UpdateOrganizationResponse
400 Bad Request Bad Request BadRequestResponse
401 Unauthorized Unauthorized UnauthorizedResponse
403 Forbidden Forbidden ForbiddenResponse
404 Not Found Not Found NotFoundResponse
To perform this operation, you must be authenticated by means of one of the following methods: OAuth2

Patch organization by id

Code samples

PATCH https://api.routegy.com/organizations/{id} HTTP/1.1
Host: api.routegy.com
Content-Type: application/json
Accept: application/json
# You can also use wget
curl -X PATCH https://api.routegy.com/organizations/{id} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.patch('https://api.routegy.com/organizations/{id}', headers = headers)

print(r.json())
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.patch 'https://api.routegy.com/organizations/{id}',
  params: {
  }, headers: headers

p JSON.parse(result)
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://api.routegy.com/organizations/{id}", data)
    req.Header = headers

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

PATCH /organizations/{id}

Patch organization by its id

Body parameter

{
  "name": "My Test Organization",
  "description": "Organization where I test things",
  "owner": "27B4CF49-88CD-4960-B397-13443DD24402",
  "plan": "0BF5E76C-4423-44D6-BF29-BA2DC7D7CF2D"
}

Parameters

Name In Type Required Description
body body PatchUpdateOrganizationRequest true none
id path string(uuid) true A UUID string identifying this organization.

Example responses

200 Response

{
  "id": "1E96C10E-658B-40C5-B7FF-A9D9A8F6BB93",
  "url": "https://api.routegy.com/organizations/1E96C10E-658B-40C5-B7FF-A9D9A8F6BB93",
  "created_at": "2020-03-27T23:09:35+0000",
  "updated_at": "2020-03-27T23:09:35+0000",
  "name": "My Test Organization",
  "slug": "my-test-organization",
  "description": "Organization where I test things",
  "owner": {
    "id": "27B4CF49-88CD-4960-B397-13443DD24402",
    "name": "John Smith",
    "email": "john.smith@example.org"
  },
  "plan": {
    "id": "0BF5E76C-4423-44D6-BF29-BA2DC7D7CF2D",
    "expires_at": "2020-04-27T23:09:35+0000",
    "active": true,
    "plan_type": {
      "id": "e38b1667-8246-4b92-b0d8-6a2a13d32c5a",
      "url": "https://api.routegy.com/plan-types/e38b1667-8246-4b92-b0d8-6a2a13d32c5a",
      "name": "Trial",
      "slug": "trial",
      "description": "Trial plan that enables limited use of the service",
      "meta_data": {
        "stripe_plan_id": "plan_GV4hyt7qWfXHps"
      },
      "quotas": [
        {
          "id": "303b3a7b-c03f-41e2-967d-1569e1a312e6",
          "name": "Apps (20)",
          "slug": "apps-20",
          "description": "Limit the number of apps to 20",
          "value": 20
        }
      ]
    }
  }
}

Responses

Status Meaning Description Schema
200 OK Success PatchUpdateOrganizationResponse
400 Bad Request Bad Request BadRequestResponse
401 Unauthorized Unauthorized UnauthorizedResponse
403 Forbidden Forbidden ForbiddenResponse
404 Not Found Not Found NotFoundResponse
To perform this operation, you must be authenticated by means of one of the following methods: OAuth2

Delete organization by id

Code samples

DELETE https://api.routegy.com/organizations/{id} HTTP/1.1
Host: api.routegy.com
Accept: application/json
# You can also use wget
curl -X DELETE https://api.routegy.com/organizations/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.delete('https://api.routegy.com/organizations/{id}', headers = headers)

print(r.json())
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.delete 'https://api.routegy.com/organizations/{id}',
  params: {
  }, headers: headers

p JSON.parse(result)
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://api.routegy.com/organizations/{id}", data)
    req.Header = headers

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

DELETE /organizations/{id}

Delete organization by its id

Parameters

Name In Type Required Description
id path string(uuid) true A UUID string identifying this organization.

Example responses

400 Response

{
  "detail": "Bad Request.",
  "status_code": 400,
  "error_id": null
}

Responses

Status Meaning Description Schema
204 No Content Success None
400 Bad Request Bad Request BadRequestResponse
401 Unauthorized Unauthorized UnauthorizedResponse
403 Forbidden Forbidden ForbiddenResponse
404 Not Found Not Found NotFoundResponse
To perform this operation, you must be authenticated by means of one of the following methods: OAuth2

Get organization activity stream by id

Code samples

GET https://api.routegy.com/organizations/{id}/activity HTTP/1.1
Host: api.routegy.com
Accept: application/json
# You can also use wget
curl -X GET https://api.routegy.com/organizations/{id}/activity \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.routegy.com/organizations/{id}/activity', headers = headers)

print(r.json())
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.routegy.com/organizations/{id}/activity',
  params: {
  }, headers: headers

p JSON.parse(result)
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.routegy.com/organizations/{id}/activity", data)
    req.Header = headers

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

GET /organizations/{id}/activity

Get activity stream for the organization by its id

Parameters

Name In Type Required Description
id path string(uuid) true A UUID string identifying this organization.

Example responses

200 Response

{
  "next": "https://api.routegy.com/.../activity?next=XXXXXX",
  "previous": null,
  "items": [
    {
      "id": "D216DCB8-CA9A-4B53-8468-A4A42E7EB63D",
      "actor": {
        "id": "27B4CF49-88CD-4960-B397-13443DD24402",
        "model_type": "user",
        "name": "John Smith",
        "email": "john.smith@example.org"
      },
      "verb": "created",
      "action_object": {
        "id": "1E96C10E-658B-40C5-B7FF-A9D9A8F6BB93",
        "url": "https://api.routegy.com/organizations/1E96C10E-658B-40C5-B7FF-A9D9A8F6BB93",
        "model_type": "organization",
        "name": "My Test Organization",
        "slug": "my-test-organization"
      },
      "target": null,
      "timestamp": "2020-03-27T23:09:35+0000"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Success ActivityStreamResponse
400 Bad Request Bad Request BadRequestResponse
401 Unauthorized Unauthorized UnauthorizedResponse
403 Forbidden Forbidden ForbiddenResponse
404 Not Found Not Found NotFoundResponse
To perform this operation, you must be authenticated by means of one of the following methods: OAuth2

Follow organization activities

Code samples

POST https://api.routegy.com/organizations/{id}/follow HTTP/1.1
Host: api.routegy.com
Accept: application/json
# You can also use wget
curl -X POST https://api.routegy.com/organizations/{id}/follow \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.routegy.com/organizations/{id}/follow', headers = headers)

print(r.json())
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.routegy.com/organizations/{id}/follow',
  params: {
  }, headers: headers

p JSON.parse(result)
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.routegy.com/organizations/{id}/follow", data)
    req.Header = headers

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

POST /organizations/{id}/follow

Follow an organization by its id to include it in your activity stream.

Parameters

Name In Type Required Description
id path string(uuid) true A UUID string identifying this organization.

Example responses

400 Response

{
  "detail": "Bad Request.",
  "status_code": 400,
  "error_id": null
}

Responses

Status Meaning Description Schema
204 No Content Success None
400 Bad Request Bad Request BadRequestResponse
401 Unauthorized Unauthorized UnauthorizedResponse
403 Forbidden Forbidden ForbiddenResponse
404 Not Found Not Found NotFoundResponse
To perform this operation, you must be authenticated by means of one of the following methods: OAuth2

Stop following organization activities

Code samples

DELETE https://api.routegy.com/organizations/{id}/unfollow HTTP/1.1
Host: api.routegy.com
Accept: application/json
# You can also use wget
curl -X DELETE https://api.routegy.com/organizations/{id}/unfollow \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.delete('https://api.routegy.com/organizations/{id}/unfollow', headers = headers)

print(r.json())
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.delete 'https://api.routegy.com/organizations/{id}/unfollow',
  params: {
  }, headers: headers

p JSON.parse(result)
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://api.routegy.com/organizations/{id}/unfollow", data)
    req.Header = headers

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

DELETE /organizations/{id}/unfollow

Stop following an organization by its id. Activities from this organization will no longer appear in your stream.

Parameters

Name In Type Required Description
id path string(uuid) true A UUID string identifying this organization.

Example responses

400 Response

{
  "detail": "Bad Request.",
  "status_code": 400,
  "error_id": null
}

Responses

Status Meaning Description Schema
204 No Content Success None
400 Bad Request Bad Request BadRequestResponse
401 Unauthorized Unauthorized UnauthorizedResponse
403 Forbidden Forbidden ForbiddenResponse
404 Not Found Not Found NotFoundResponse
To perform this operation, you must be authenticated by means of one of the following methods: OAuth2

List organization followers

Code samples

GET https://api.routegy.com/organizations/{id}/followers HTTP/1.1
Host: api.routegy.com
Accept: application/json
# You can also use wget
curl -X GET https://api.routegy.com/organizations/{id}/followers \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.routegy.com/organizations/{id}/followers', headers = headers)

print(r.json())
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.routegy.com/organizations/{id}/followers',
  params: {
  }, headers: headers

p JSON.parse(result)
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.routegy.com/organizations/{id}/followers", data)
    req.Header = headers

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

GET /organizations/{id}/followers

List users that follow an organization by its id.

Parameters

Name In Type Required Description
id path string(uuid) true A UUID string identifying this organization.

Example responses

200 Response

{
  "next": "https://api.routegy.com/.../followers?next=XXXXXX",
  "previous": null,
  "items": [
    {
      "started": "2020-04-27T23:09:35+0000",
      "user": {
        "id": "27B4CF49-88CD-4960-B397-13443DD24402",
        "model_type": "user",
        "name": "John Smith",
        "email": "john.smith@example.org"
      }
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Success ListFollowersResponse
400 Bad Request Bad Request BadRequestResponse
401 Unauthorized Unauthorized UnauthorizedResponse
403 Forbidden Forbidden ForbiddenResponse
404 Not Found Not Found NotFoundResponse
To perform this operation, you must be authenticated by means of one of the following methods: OAuth2

List workspaces

Code samples

GET https://api.routegy.com/workspaces HTTP/1.1
Host: api.routegy.com
Accept: application/json
# You can also use wget
curl -X GET https://api.routegy.com/workspaces \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.routegy.com/workspaces', headers = headers)

print(r.json())
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.routegy.com/workspaces',
  params: {
  }, headers: headers

p JSON.parse(result)
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.routegy.com/workspaces", data)
    req.Header = headers

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

GET /workspaces

List all workspaces for the authenticated user.

Example responses

200 Response

{
  "next": "https://api.routegy.com/workspaces?next=XXXXXX",
  "previous": null,
  "items": [
    {
      "id": "695D2753-4A29-4853-B85D-B1A7462B1FF8",
      "url": "https://api.routegy.com/workspaces/695D2753-4A29-4853-B85D-B1A7462B1FF8",
      "name": "Seattle Campus",
      "slug": "seattle-campus",
      "description": "Our Seattle area campus",
      "organization": "1E96C10E-658B-40C5-B7FF-A9D9A8F6BB93"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Success ListWorkspacesResponse
400 Bad Request Bad Request BadRequestResponse
401 Unauthorized Unauthorized UnauthorizedResponse
403 Forbidden Forbidden ForbiddenResponse
404 Not Found Not Found NotFoundResponse
To perform this operation, you must be authenticated by means of one of the following methods: OAuth2

Get workspace by id

Code samples

GET https://api.routegy.com/workspaces/{id} HTTP/1.1
Host: api.routegy.com
Accept: application/json
# You can also use wget
curl -X GET https://api.routegy.com/workspaces/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.routegy.com/workspaces/{id}', headers = headers)

print(r.json())
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.routegy.com/workspaces/{id}',
  params: {
  }, headers: headers

p JSON.parse(result)
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.routegy.com/workspaces/{id}", data)
    req.Header = headers

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

GET /workspaces/{id}

Get workspace from its id.

Parameters

Name In Type Required Description
id path string(uuid) true A UUID string identifying this workspace.

Example responses

200 Response

{
  "id": "695D2753-4A29-4853-B85D-B1A7462B1FF8",
  "url": "https://api.routegy.com/workspaces/695D2753-4A29-4853-B85D-B1A7462B1FF8",
  "created_at": "2020-03-27T23:09:35+0000",
  "updated_at": "2020-03-27T23:09:35+0000",
  "name": "Seattle Campus",
  "slug": "seattle-campus",
  "description": "Our Seattle area campus",
  "organization": {
    "id": "1E96C10E-658B-40C5-B7FF-A9D9A8F6BB93",
    "url": "https://api.routegy.com/organizations/1E96C10E-658B-40C5-B7FF-A9D9A8F6BB93",
    "name": "My Test Organization",
    "slug": "my-test-organization",
    "description": "Organization where I test things"
  },
  "group": {
    "id": "0B15559C-55D3-4C50-B8D8-6CCC13B77A47",
    "url": "https://api.routegy.com/organizations/1E96C10E-658B-40C5-B7FF-A9D9A8F6BB93/workspaces/695D2753-4A29-4853-B85D-B1A7462B1FF8/groups/0B15559C-55D3-4C50-B8D8-6CCC13B77A47",
    "name": "Seattle Campus",
    "slug": "seattle-campus",
    "description": "Root group for Seattle Campus",
    "level": 0,
    "workspace": "695D2753-4A29-4853-B85D-B1A7462B1FF8"
  }
}

Responses

Status Meaning Description Schema
200 OK Success GetWorkspaceResponse
400 Bad Request Bad Request BadRequestResponse
401 Unauthorized Unauthorized UnauthorizedResponse
403 Forbidden Forbidden ForbiddenResponse
404 Not Found Not Found NotFoundResponse
To perform this operation, you must be authenticated by means of one of the following methods: OAuth2

Schemas

BadRequestResponse

{
  "detail": "Bad Request.",
  "status_code": 400,
  "error_id": null
}

Response body when bad request is received

Properties

Name Type Required Restrictions Description
detail string false read-only Details about the error
status_code integer false read-only HTTP status code of the error
error_id integer¦null false read-only ID of the error for external tracking

UnauthorizedResponse

{
  "detail": "Unauthenticated.",
  "status_code": 401,
  "error_id": null
}

Response body when request lacks valid authentication credentials

Properties

Name Type Required Restrictions Description
detail string false read-only Details about the error
status_code integer false read-only HTTP status code of the error
error_id integer¦null false read-only ID of the error for external tracking

ForbiddenResponse

{
  "detail": "Forbidden.",
  "status_code": 403,
  "error_id": null
}

Response body when authenticated request does not have authorization to perform action

Properties

Name Type Required Restrictions Description
detail string false read-only Details about the error
status_code integer false read-only HTTP status code of the error
error_id integer¦null false read-only ID of the error for external tracking

NotFoundResponse

{
  "detail": "Not Found.",
  "status_code": 404,
  "error_id": null
}

Response body when requested resource is not found

Properties

Name Type Required Restrictions Description
detail string false read-only Details about the error
status_code integer false read-only HTTP status code of the error
error_id integer¦null false read-only ID of the error for external tracking

ActivityStreamResponse

{
  "next": "https://api.routegy.com/.../activity?next=XXXXXX",
  "previous": null,
  "items": [
    {
      "id": "D216DCB8-CA9A-4B53-8468-A4A42E7EB63D",
      "actor": {
        "id": "27B4CF49-88CD-4960-B397-13443DD24402",
        "model_type": "user",
        "name": "John Smith",
        "email": "john.smith@example.org"
      },
      "verb": "created",
      "action_object": {
        "id": "1E96C10E-658B-40C5-B7FF-A9D9A8F6BB93",
        "url": "https://api.routegy.com/organizations/1E96C10E-658B-40C5-B7FF-A9D9A8F6BB93",
        "model_type": "organization",
        "name": "My Test Organization",
        "slug": "my-test-organization"
      },
      "target": null,
      "timestamp": "2020-03-27T23:09:35+0000"
    }
  ]
}

Response containing a list of activities

Properties

Name Type Required Restrictions Description
next string(uri)¦null false none URL to next page of results
previous string(uri)¦null false none URL to previous page of results
results [ActivityResponse] false none Array containing page of results

ActivityResponse

{
  "id": "D216DCB8-CA9A-4B53-8468-A4A42E7EB63D",
  "actor": {
    "id": "27B4CF49-88CD-4960-B397-13443DD24402",
    "model_type": "user",
    "name": "John Smith",
    "email": "john.smith@example.org"
  },
  "verb": "created",
  "action_object": {
    "id": "1E96C10E-658B-40C5-B7FF-A9D9A8F6BB93",
    "url": "https://api.routegy.com/organizations/1E96C10E-658B-40C5-B7FF-A9D9A8F6BB93",
    "model_type": "organization",
    "name": "My Test Organization",
    "slug": "my-test-organization"
  },
  "target": null,
  "timestamp": "2020-03-27T23:09:35+0000"
}

Properties

Name Type Required Restrictions Description
id string(uuid) false read-only ID of the activity
actor object false read-only User that created the activity
verb string false read-only Phrase that identifies the activity
action_object object¦null false read-only Object linked to the activity
target object¦null false read-only The object to which the activity was performed
public boolean false read-only Flag indicating if the activity is public or private
description string false read-only Description of the activity
timestamp string(date-time) false read-only Datetime when the activity happened

GetCodeResponse

{
  "id": "5C74E22E-D7ED-497E-8DE3-09FF4E9AEBEC",
  "url": "https://api.routegy.com/codes/5C74E22E-D7ED-497E-8DE3-09FF4E9AEBEC",
  "created_at": "2020-03-27T23:09:35+0000",
  "updated_at": "2020-03-27T23:09:35+0000",
  "short_id": "ax7dkEg",
  "app": "BADD03B4-CAEB-49DB-8B91-BEFAC4EB9EEB"
}

Properties

Name Type Required Restrictions Description
id string(uuid) false read-only ID of the code
url string(uri) false read-only URL of the code
created_at string(date-time) false read-only Datetime when the code was created
updated_at string(date-time) false read-only Datetime when the code was last updated
short_id string false read-only Short ID to use when referencing the code in the public API
app string(uuid) false none ID of the app for the code

CodeEventCreatedResponse

{
  "id": "5A29D4AB-99AE-49A7-810B-CDA71FBBF9ED"
}

Properties

Name Type Required Restrictions Description
id string(uuid) false read-only ID of the event that was created

GetCodeAppResponse

{
  "name": "Out of coffee?",
  "slug": "out-of-coffee",
  "description": "Let us know so we can refill the pot",
  "group": {
    "name": "Break room",
    "slug": "break-room",
    "description": "Employee break room",
    "breadcrumbs": "Office / Floor 1"
  },
  "pattern": {
    "name": "Coffee Machine",
    "slug": "coffee-machine",
    "description": "Report supply chain issues related to coffee machines",
    "document": {
      "type": "object",
      "title": "Out of coffee?",
      "required": [
        "problem"
      ],
      "additionalProperties": false,
      "properties": {
        "problem": [
          "No coffee beans",
          "No filters",
          "No cups",
          "Machine isn't working",
          "Something else"
        ],
        "type": "string",
        "attrs": {
          "type": "radio"
        },
        "title": "What is the problem?",
        "comments": {
          "type": "string",
          "attrs": {
            "type": "textarea",
            "placeholder": "Please provide any additional comments here"
          },
          "title": "Additional comments"
        }
      }
    }
  }
}

Properties

Name Type Required Restrictions Description
name string false none Name of the app
description string false none Description of the app
slug string(slug) false read-only Slug of the app
group object false none Group of the app
» name string false none Name of the group
» description string false none Description of the group
» slug string(slug) false read-only Slug of the group
» breadcrumbs string false read-only Breadcrumbs of the group
schema object false none Schema of the app
» name string false none Name of the schema
» description string false none Description of the schema
» slug string(slug) false read-only Slug of the schema
» document object false none JSON Schema document of the schema
»» type string false none Type of JSON Schema object
»» title string false none Title of JSON Schema object
»» required [any] false none Required properties of JSON Schema object
»» properties object false none Properties of JSON Schema object

ListOrganizationsResponse

{
  "next": "https://api.routegy.com/organizations?next=XXXXXX",
  "previous": null,
  "items": [
    {
      "id": "1E96C10E-658B-40C5-B7FF-A9D9A8F6BB93",
      "url": "https://api.routegy.com/organizations/1E96C10E-658B-40C5-B7FF-A9D9A8F6BB93",
      "name": "My Test Organization",
      "slug": "my-test-organization",
      "description": "Organization where I test things"
    }
  ]
}

Response containing a list of organizations

Properties

Name Type Required Restrictions Description
next string(uri)¦null false none URL to next page of results
previous string(uri)¦null false none URL to previous page of results
results [ListOrganizationResponse] false none Array containing page of results

ListOrganizationResponse

{
  "id": "1E96C10E-658B-40C5-B7FF-A9D9A8F6BB93",
  "url": "https://api.routegy.com/organizations/1E96C10E-658B-40C5-B7FF-A9D9A8F6BB93",
  "name": "My Test Organization",
  "slug": "my-test-organization",
  "description": "Organization where I test things"
}

Properties

Name Type Required Restrictions Description
id string(uuid) false read-only ID of the organization
url string(uri) false read-only URL of the organization
name string false read-only Name of the organization
slug string(slug) false read-only Slug of the organization
description string false read-only Description of the organization

CreateOrganizationRequest

{
  "name": "My Test Organization",
  "description": "Organization where I test things",
  "owner": "A56C801E-D814-41E0-8A4F-70FBF25B7C13",
  "plan": "0BF5E76C-4423-44D6-BF29-BA2DC7D7CF2D"
}

Properties

Name Type Required Restrictions Description
name string true none Name of the organization
description string false none Description of the organization
owner string(uuid) true none User that is the owner of this organization
plan string(uuid) true none Plan to use for this organization

CreateOrganizationResponse

{
  "id": "1E96C10E-658B-40C5-B7FF-A9D9A8F6BB93",
  "url": "https://api.routegy.com/organizations/1E96C10E-658B-40C5-B7FF-A9D9A8F6BB93",
  "created_at": "2020-03-27T23:09:35+0000",
  "updated_at": "2020-03-27T23:09:35+0000",
  "name": "My Test Organization",
  "slug": "my-test-organization",
  "description": "Organization where I test things",
  "owner": {
    "id": "27B4CF49-88CD-4960-B397-13443DD24402",
    "name": "John Smith",
    "email": "john.smith@example.org"
  },
  "plan": {
    "id": "0BF5E76C-4423-44D6-BF29-BA2DC7D7CF2D",
    "expires_at": "2020-04-27T23:09:35+0000",
    "active": true,
    "plan_type": {
      "id": "e38b1667-8246-4b92-b0d8-6a2a13d32c5a",
      "url": "https://api.routegy.com/plan-types/e38b1667-8246-4b92-b0d8-6a2a13d32c5a",
      "name": "Trial",
      "slug": "trial",
      "description": "Trial plan that enables limited use of the service",
      "meta_data": {
        "stripe_plan_id": "plan_GV4hyt7qWfXHps"
      },
      "quotas": [
        {
          "id": "303b3a7b-c03f-41e2-967d-1569e1a312e6",
          "name": "Apps (20)",
          "slug": "apps-20",
          "description": "Limit the number of apps to 20",
          "value": 20
        }
      ]
    }
  }
}

Properties

Name Type Required Restrictions Description
id string(uuid) false read-only ID of the organization
url string(uri) false read-only URL of the organization
created_at string(date-time) false read-only Datetime when organization was created
updated_at string(date-time) false read-only Datetime when organization was last updated
name string false none Name of the organization
slug string(slug) false read-only Slug of the organization
description string false none Description of the organization
owner object false none User who owns this organization
plan object false none Plan of the organization

GetOrganizationResponse

{
  "id": "1E96C10E-658B-40C5-B7FF-A9D9A8F6BB93",
  "url": "https://api.routegy.com/organizations/1E96C10E-658B-40C5-B7FF-A9D9A8F6BB93",
  "created_at": "2020-03-27T23:09:35+0000",
  "updated_at": "2020-03-27T23:09:35+0000",
  "name": "My Test Organization",
  "slug": "my-test-organization",
  "description": "Organization where I test things",
  "owner": {
    "id": "27B4CF49-88CD-4960-B397-13443DD24402",
    "name": "John Smith",
    "email": "john.smith@example.org"
  },
  "plan": {
    "id": "0BF5E76C-4423-44D6-BF29-BA2DC7D7CF2D",
    "expires_at": "2020-04-27T23:09:35+0000",
    "active": true,
    "plan_type": {
      "id": "e38b1667-8246-4b92-b0d8-6a2a13d32c5a",
      "url": "https://api.routegy.com/plan-types/e38b1667-8246-4b92-b0d8-6a2a13d32c5a",
      "name": "Trial",
      "slug": "trial",
      "description": "Trial plan that enables limited use of the service",
      "meta_data": {
        "stripe_plan_id": "plan_GV4hyt7qWfXHps"
      },
      "quotas": [
        {
          "id": "303b3a7b-c03f-41e2-967d-1569e1a312e6",
          "name": "Apps (20)",
          "slug": "apps-20",
          "description": "Limit the number of apps to 20",
          "value": 20
        }
      ]
    }
  }
}

Properties

Name Type Required Restrictions Description
id string(uuid) false read-only ID of the organization
url string(uri) false read-only URL of the organization
created_at string(date-time) false read-only Datetime when organization was created
updated_at string(date-time) false read-only Datetime when organization was last updated
name string false none Name of the organization
slug string(slug) false read-only Slug of the organization
description string false none Description of the organization
owner object false none User who owns this organization
plan object false none Plan of the organization

UpdateOrganizationRequest

{
  "name": "My Test Organization",
  "description": "Organization where I test things",
  "owner": "27B4CF49-88CD-4960-B397-13443DD24402",
  "plan": "0BF5E76C-4423-44D6-BF29-BA2DC7D7CF2D"
}

Properties

Name Type Required Restrictions Description
name string false none Name of the organization
description string false none Description of the organization
owner string(uuid) false none User who owns this organization
plan string(uuid) false none Plan of the organization

UpdateOrganizationResponse

{
  "id": "1E96C10E-658B-40C5-B7FF-A9D9A8F6BB93",
  "url": "https://api.routegy.com/organizations/1E96C10E-658B-40C5-B7FF-A9D9A8F6BB93",
  "created_at": "2020-03-27T23:09:35+0000",
  "updated_at": "2020-03-27T23:09:35+0000",
  "name": "My Test Organization",
  "slug": "my-test-organization",
  "description": "Organization where I test things",
  "owner": {
    "id": "27B4CF49-88CD-4960-B397-13443DD24402",
    "name": "John Smith",
    "email": "john.smith@example.org"
  },
  "plan": {
    "id": "0BF5E76C-4423-44D6-BF29-BA2DC7D7CF2D",
    "expires_at": "2020-04-27T23:09:35+0000",
    "active": true,
    "plan_type": {
      "id": "e38b1667-8246-4b92-b0d8-6a2a13d32c5a",
      "url": "https://api.routegy.com/plan-types/e38b1667-8246-4b92-b0d8-6a2a13d32c5a",
      "name": "Trial",
      "slug": "trial",
      "description": "Trial plan that enables limited use of the service",
      "meta_data": {
        "stripe_plan_id": "plan_GV4hyt7qWfXHps"
      },
      "quotas": [
        {
          "id": "303b3a7b-c03f-41e2-967d-1569e1a312e6",
          "name": "Apps (20)",
          "slug": "apps-20",
          "description": "Limit the number of apps to 20",
          "value": 20
        }
      ]
    }
  }
}

Properties

Name Type Required Restrictions Description
id string(uuid) false read-only ID of the organization
url string(uri) false read-only URL of the organization
created_at string(date-time) false read-only Datetime when organization was created
updated_at string(date-time) false read-only Datetime when organization was last updated
name string false none Name of the organization
slug string(slug) false read-only Slug of the organization
description string false none Description of the organization
owner object false none User who owns this organization
plan object false none Plan of the organization

PatchUpdateOrganizationRequest

{
  "name": "My Test Organization",
  "description": "Organization where I test things",
  "owner": "27B4CF49-88CD-4960-B397-13443DD24402",
  "plan": "0BF5E76C-4423-44D6-BF29-BA2DC7D7CF2D"
}

Properties

Name Type Required Restrictions Description
name string false none Name of the organization
description string false none Description of the organization
owner string(uuid) false none User who owns this organization
plan string(uuid) false none Plan of the organization

PatchUpdateOrganizationResponse

{
  "id": "1E96C10E-658B-40C5-B7FF-A9D9A8F6BB93",
  "url": "https://api.routegy.com/organizations/1E96C10E-658B-40C5-B7FF-A9D9A8F6BB93",
  "created_at": "2020-03-27T23:09:35+0000",
  "updated_at": "2020-03-27T23:09:35+0000",
  "name": "My Test Organization",
  "slug": "my-test-organization",
  "description": "Organization where I test things",
  "owner": {
    "id": "27B4CF49-88CD-4960-B397-13443DD24402",
    "name": "John Smith",
    "email": "john.smith@example.org"
  },
  "plan": {
    "id": "0BF5E76C-4423-44D6-BF29-BA2DC7D7CF2D",
    "expires_at": "2020-04-27T23:09:35+0000",
    "active": true,
    "plan_type": {
      "id": "e38b1667-8246-4b92-b0d8-6a2a13d32c5a",
      "url": "https://api.routegy.com/plan-types/e38b1667-8246-4b92-b0d8-6a2a13d32c5a",
      "name": "Trial",
      "slug": "trial",
      "description": "Trial plan that enables limited use of the service",
      "meta_data": {
        "stripe_plan_id": "plan_GV4hyt7qWfXHps"
      },
      "quotas": [
        {
          "id": "303b3a7b-c03f-41e2-967d-1569e1a312e6",
          "name": "Apps (20)",
          "slug": "apps-20",
          "description": "Limit the number of apps to 20",
          "value": 20
        }
      ]
    }
  }
}

Properties

Name Type Required Restrictions Description
id string(uuid) false read-only ID of the organization
url string(uri) false read-only URL of the organization
created_at string(date-time) false read-only Datetime when organization was created
updated_at string(date-time) false read-only Datetime when organization was last updated
name string false none Name of the organization
slug string(slug) false read-only Slug of the organization
description string false none Description of the organization
owner object false none User who owns this organization
plan object false none Plan of the organization

ListFollowersResponse

{
  "next": "https://api.routegy.com/.../followers?next=XXXXXX",
  "previous": null,
  "items": [
    {
      "started": "2020-04-27T23:09:35+0000",
      "user": {
        "id": "27B4CF49-88CD-4960-B397-13443DD24402",
        "model_type": "user",
        "name": "John Smith",
        "email": "john.smith@example.org"
      }
    }
  ]
}

Response containing a list of followers

Properties

Name Type Required Restrictions Description
next string(uri)¦null false none URL to next page of results
previous string(uri)¦null false none URL to previous page of results
results [ListFollowerResponse] false none Array containing page of results

ListFollowerResponse

{
  "started": "2020-04-27T23:09:35+0000",
  "user": {
    "id": "27B4CF49-88CD-4960-B397-13443DD24402",
    "model_type": "user",
    "name": "John Smith",
    "email": "john.smith@example.org"
  }
}

Properties

Name Type Required Restrictions Description
id string(date-time) false read-only Datetime when user started following this resource
user string(uri) false read-only User following this resource

ListWorkspacesResponse

{
  "next": "https://api.routegy.com/workspaces?next=XXXXXX",
  "previous": null,
  "items": [
    {
      "id": "695D2753-4A29-4853-B85D-B1A7462B1FF8",
      "url": "https://api.routegy.com/workspaces/695D2753-4A29-4853-B85D-B1A7462B1FF8",
      "name": "Seattle Campus",
      "slug": "seattle-campus",
      "description": "Our Seattle area campus",
      "organization": "1E96C10E-658B-40C5-B7FF-A9D9A8F6BB93"
    }
  ]
}

Response containing a list of workspaces

Properties

Name Type Required Restrictions Description
next string(uri)¦null false none URL to next page of results
previous string(uri)¦null false none URL to previous page of results
results [ListWorkspaceResponse] false none Array containing page of results

ListWorkspaceResponse

{
  "id": "695D2753-4A29-4853-B85D-B1A7462B1FF8",
  "url": "https://api.routegy.com/workspaces/695D2753-4A29-4853-B85D-B1A7462B1FF8",
  "name": "Seattle Campus",
  "slug": "seattle-campus",
  "description": "Our Seattle area campus",
  "organization": "1E96C10E-658B-40C5-B7FF-A9D9A8F6BB93"
}

Properties

Name Type Required Restrictions Description
id string(uuid) false read-only ID of the workspace
url string(uri) false read-only URL of the workspace
name string false read-only Name of the workspace
slug string(slug) false read-only Slug of the workspace
description string false read-only Description of the workspace
organization string(uuid) false read-only ID of the workspace organization

GetWorkspaceResponse

{
  "id": "695D2753-4A29-4853-B85D-B1A7462B1FF8",
  "url": "https://api.routegy.com/workspaces/695D2753-4A29-4853-B85D-B1A7462B1FF8",
  "created_at": "2020-03-27T23:09:35+0000",
  "updated_at": "2020-03-27T23:09:35+0000",
  "name": "Seattle Campus",
  "slug": "seattle-campus",
  "description": "Our Seattle area campus",
  "organization": {
    "id": "1E96C10E-658B-40C5-B7FF-A9D9A8F6BB93",
    "url": "https://api.routegy.com/organizations/1E96C10E-658B-40C5-B7FF-A9D9A8F6BB93",
    "name": "My Test Organization",
    "slug": "my-test-organization",
    "description": "Organization where I test things"
  },
  "group": {
    "id": "0B15559C-55D3-4C50-B8D8-6CCC13B77A47",
    "url": "https://api.routegy.com/organizations/1E96C10E-658B-40C5-B7FF-A9D9A8F6BB93/workspaces/695D2753-4A29-4853-B85D-B1A7462B1FF8/groups/0B15559C-55D3-4C50-B8D8-6CCC13B77A47",
    "name": "Seattle Campus",
    "slug": "seattle-campus",
    "description": "Root group for Seattle Campus",
    "level": 0,
    "workspace": "695D2753-4A29-4853-B85D-B1A7462B1FF8"
  }
}

Properties

Name Type Required Restrictions Description
id string(uuid) false read-only ID of the workspace
url string(uri) false read-only URL of the workspace
created_at string(date-time) false read-only Datetime when workspace was created
updated_at string(date-time) false read-only Datetime when workspace was last updated
name string false read-only Name of the workspace
slug string(slug) false read-only Slug of the workspace
description string false read-only Description of the workspace
organization object false read-only Organization of the workspace
group object false read-only Root group of the workspace