Navbar
HTTP Shell Python Ruby Go

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

Operations for the Public API.

External documentation

Get touchpoint from a code short id

Code samples

GET https://api.routegy.com/public/codes/{short_id}/touchpoint 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}/touchpoint \
  -H 'Accept: application/json'

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://api.routegy.com/public/codes/{short_id}/touchpoint', 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}/touchpoint',
  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}/touchpoint", data)
    req.Header = headers

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

GET /public/codes/{short_id}/touchpoint

Get touchpoint 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",
  "location": {
    "name": "Break room",
    "slug": "break-room",
    "description": "Employee break room",
    "breadcrumbs": "Office / Floor 1"
  },
  "schema": {
    "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 GetCodeTouchPointResponse
400 Bad Request Bad Request BadRequestResponse
401 Unauthorized Unauthorized UnauthorizedResponse
403 Forbidden Forbidden ForbiddenResponse
404 Not Found Not Found NotFoundResponse

Create touch for a touchpoint from a code short id

Code samples

POST https://api.routegy.com/public/codes/{short_id}/touch 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}/touch \
  -H 'Accept: application/json'

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.post('https://api.routegy.com/public/codes/{short_id}/touch', 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}/touch',
  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}/touch", data)
    req.Header = headers

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

POST /public/codes/{short_id}/touch

Create a new touch for a touchpoint 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 CodeTouchCreatedResponse
400 Bad Request Bad Request BadRequestResponse
401 Unauthorized Unauthorized UnauthorizedResponse
403 Forbidden Forbidden ForbiddenResponse
404 Not Found Not Found NotFoundResponse

Management API

Operations for the Management API.

External documentation

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 Topic: Code and Reference: Code pages 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",
  "touch_point": "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

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 Topic: Code and Reference: Code pages 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",
  "touch_point": "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

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

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: * How-to: Create new organizations * Topic: Organization * Reference: Organization

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": "Touchpoints (20)",
          "slug": "touchpoints-20",
          "description": "Limit the number of touchpoints 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

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: * How-to: Create new organizations * Topic: Organization * Reference: Organization

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": "Touchpoints (20)",
          "slug": "touchpoints-20",
          "description": "Limit the number of touchpoints 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

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": "Touchpoints (20)",
          "slug": "touchpoints-20",
          "description": "Limit the number of touchpoints 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

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": "Touchpoints (20)",
          "slug": "touchpoints-20",
          "description": "Limit the number of touchpoints 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

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

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

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

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

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

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

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"
  },
  "location": {
    "id": "0B15559C-55D3-4C50-B8D8-6CCC13B77A47",
    "url": "https://api.routegy.com/organizations/1E96C10E-658B-40C5-B7FF-A9D9A8F6BB93/workspaces/695D2753-4A29-4853-B85D-B1A7462B1FF8/locations/0B15559C-55D3-4C50-B8D8-6CCC13B77A47",
    "name": "Seattle Campus",
    "slug": "seattle-campus",
    "description": "Root location 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

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",
  "touch_point": "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
touch_point string(uuid) false none ID of the touchpoint for the code

CodeTouchCreatedResponse

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

Properties

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

GetCodeTouchPointResponse

{
  "name": "Out of coffee?",
  "slug": "out-of-coffee",
  "description": "Let us know so we can refill the pot",
  "location": {
    "name": "Break room",
    "slug": "break-room",
    "description": "Employee break room",
    "breadcrumbs": "Office / Floor 1"
  },
  "schema": {
    "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 touchpoint
description string false none Description of the touchpoint
slug string(slug) false read-only Slug of the touchpoint
location object false none Location of the touchpoint
» name string false none Name of the location
» description string false none Description of the location
» slug string(slug) false read-only Slug of the location
» breadcrumbs string false read-only Breadcrumbs of the location
schema object false none Schema of the touchpoint
» 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": "Touchpoints (20)",
          "slug": "touchpoints-20",
          "description": "Limit the number of touchpoints 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": "Touchpoints (20)",
          "slug": "touchpoints-20",
          "description": "Limit the number of touchpoints 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": "Touchpoints (20)",
          "slug": "touchpoints-20",
          "description": "Limit the number of touchpoints 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": "Touchpoints (20)",
          "slug": "touchpoints-20",
          "description": "Limit the number of touchpoints 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"
  },
  "location": {
    "id": "0B15559C-55D3-4C50-B8D8-6CCC13B77A47",
    "url": "https://api.routegy.com/organizations/1E96C10E-658B-40C5-B7FF-A9D9A8F6BB93/workspaces/695D2753-4A29-4853-B85D-B1A7462B1FF8/locations/0B15559C-55D3-4C50-B8D8-6CCC13B77A47",
    "name": "Seattle Campus",
    "slug": "seattle-campus",
    "description": "Root location 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
location object false read-only Root location of the workspace