| title | Routegy API v1 | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| language_tabs |
|
|||||||||||||||
| language_clients |
|
|||||||||||||||
| toc_footers | ||||||||||||||||
| includes | ||||||||||||||||
| search | true | |||||||||||||||
| highlight_theme | darkula | |||||||||||||||
| headingLevel | 2 |
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
-
oAuth2 authentication.
- Flow: authorizationCode
- Authorization URL = https://auth.routegy.com/authorization
- Token URL = https://tokens.routegy.com/oauth/token
| Scope | Scope Description |
|---|
Public API endpoints for retrieving a Routegy app for a given code, and creating events for them.
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.
| 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"
}
}
}
}
}| 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 |
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.
| 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"
}| 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 |
Management API endpoints for operations on Routegy organizations, workspaces, apps, patterns, actions, action types, and events.
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.
| 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"
}| 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 |
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.
| 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"
}| 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 |
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"
}
]
}| 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 |
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"
}| 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
}
]
}
}
}| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | CreateOrganizationResponse |
| 400 | Bad Request | Bad Request | BadRequestResponse |
| 401 | Unauthorized | Unauthorized | UnauthorizedResponse |
| 403 | Forbidden | Forbidden | ForbiddenResponse |
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:
| 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
}
]
}
}
}| 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 |
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"
}| 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
}
]
}
}
}| 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 |
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"
}| 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
}
]
}
}
}| 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 |
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
| 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
}| 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 |
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
| 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"
}
]
}| 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 |
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.
| 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
}| 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 |
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.
| 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
}| 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 |
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.
| 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"
}
}
]
}| 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 |
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"
}
]
}| 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 |
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.
| 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"
}
}| 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 |
{
"detail": "Bad Request.",
"status_code": 400,
"error_id": null
}
Response body when bad request is received
| 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 |
{
"detail": "Unauthenticated.",
"status_code": 401,
"error_id": null
}
Response body when request lacks valid authentication credentials
| 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 |
{
"detail": "Forbidden.",
"status_code": 403,
"error_id": null
}
Response body when authenticated request does not have authorization to perform action
| 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 |
{
"detail": "Not Found.",
"status_code": 404,
"error_id": null
}
Response body when requested resource is not found
| 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 |
{
"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
| 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 |
{
"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"
}
| 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 |
{
"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"
}
| 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 |
{
"id": "5A29D4AB-99AE-49A7-810B-CDA71FBBF9ED"
}
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | string(uuid) | false | read-only | ID of the event that was created |
{
"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"
}
}
}
}
}
| 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 |
{
"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
| 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 |
{
"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"
}
| 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 |
{
"name": "My Test Organization",
"description": "Organization where I test things",
"owner": "A56C801E-D814-41E0-8A4F-70FBF25B7C13",
"plan": "0BF5E76C-4423-44D6-BF29-BA2DC7D7CF2D"
}
| 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 |
{
"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
}
]
}
}
}
| 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 |
{
"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
}
]
}
}
}
| 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 |
{
"name": "My Test Organization",
"description": "Organization where I test things",
"owner": "27B4CF49-88CD-4960-B397-13443DD24402",
"plan": "0BF5E76C-4423-44D6-BF29-BA2DC7D7CF2D"
}
| 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 |
{
"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
}
]
}
}
}
| 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 |
{
"name": "My Test Organization",
"description": "Organization where I test things",
"owner": "27B4CF49-88CD-4960-B397-13443DD24402",
"plan": "0BF5E76C-4423-44D6-BF29-BA2DC7D7CF2D"
}
| 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 |
{
"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
}
]
}
}
}
| 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 |
{
"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
| 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 |
{
"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"
}
}
| 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 |
{
"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
| 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 |
{
"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"
}
| 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 |
{
"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"
}
}
| 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 |