Link Search Menu Expand Document

API Keys

API keys offer an alternate method of authentication to the Matatika API using a client ID and secret. Access using API key credentials is supported by the Matatika CLI and library, which allows a user to remain authenticated permanently.


Objects

API Key

Path Type Format Description
id String Version 4 UUID The API key ID
created String ISO 8601 timestamp The instant when the API key was created
lastModified String ISO 8601 timestamp The instant when the API key was last modified
name String   The API key name
clientId String   The API key client ID
profileId String   The API key owner profile ID
{
  "id" : "3ac7a904-919a-4f36-97f1-aa1ed4501a9a",
  "created" : "2022-01-21T09:31:20.257423",
  "lastModified" : "2022-01-21T09:31:20.257424",
  "name" : "SIT-generated api key (2022-01-21T09:31:20.140660)",
  "clientId" : "v7tvvLvIIw1wRhAueNKDAQBxNOhrL8Fd",
  "profileId" : "auth0|5eb0327cbfd7490bff55feeb",
  "_links" : {
    "self" : {
      "href" : "https://catalog.matatika.com/api/apikeys/3ac7a904-919a-4f36-97f1-aa1ed4501a9a"
    },
    "update apikey" : {
      "href" : "https://catalog.matatika.com/api/apikeys/3ac7a904-919a-4f36-97f1-aa1ed4501a9a"
    },
    "delete apikey" : {
      "href" : "https://catalog.matatika.com/api/apikeys/3ac7a904-919a-4f36-97f1-aa1ed4501a9a"
    },
    "profile" : {
      "href" : "https://catalog.matatika.com/api/profiles/auth0%7C5eb0327cbfd7490bff55feeb"
    }
  }
}

Requests


View all API keys

GET

/api/apikeys

Returns all API keys owned by the authenticated user profile.

Prerequisites

  • The authenticated user must own a Matatika account
  • The API key {apikey-id} must exist

Request

Example Snippets

  • cURL
curl -H "Authorization: Bearer $ACCESS_TOKEN" 'https://catalog.matatika.com/api/apikeys/' -i -X GET \
    -H 'Accept: application/json, application/javascript, text/javascript, text/json' \
    -H 'Content-Type: application/json'
  • Python (requests)
import requests

url = "https://catalog.matatika.com/api/apikeys/"

headers = {
  'Authorization': ACCESS_TOKEN
}

response = requests.request("GET", url, headers=headers)

print(response.text.encode('utf8'))

Response

200 OK

API key collection with HAL links.

{
  "_embedded" : {
    "apikeys" : [ {
      "id" : "3ac7a904-919a-4f36-97f1-aa1ed4501a9a",
      "created" : "2022-01-21T09:31:20.257423",
      "lastModified" : "2022-01-21T09:31:20.257424",
      "name" : "SIT-generated api key (2022-01-21T09:31:20.140660)",
      "clientId" : "v7tvvLvIIw1wRhAueNKDAQBxNOhrL8Fd",
      "profileId" : "auth0|5eb0327cbfd7490bff55feeb",
      "_links" : {
        "self" : {
          "href" : "https://catalog.matatika.com/api/apikeys/3ac7a904-919a-4f36-97f1-aa1ed4501a9a"
        },
        "update apikey" : {
          "href" : "https://catalog.matatika.com/api/apikeys/3ac7a904-919a-4f36-97f1-aa1ed4501a9a"
        },
        "delete apikey" : {
          "href" : "https://catalog.matatika.com/api/apikeys/3ac7a904-919a-4f36-97f1-aa1ed4501a9a"
        },
        "profile" : {
          "href" : "https://catalog.matatika.com/api/profiles/auth0%7C5eb0327cbfd7490bff55feeb"
        }
      }
    } ]
  },
  "_links" : {
    "self" : {
      "href" : "https://catalog.matatika.com/api/apikeys?page=0&size=20"
    }
  },
  "page" : {
    "size" : 20,
    "totalElements" : 1,
    "totalPages" : 1,
    "number" : 0
  }
}

View an API key

GET

/api/apikeys/{apikey-id}

Returns the API key {apikey-id}.

Prerequisites

  • The authenticated user must own a Matatika account
  • The API key {apikey-id} must exist

Request

Example Snippets

  • cURL
curl -H "Authorization: Bearer $ACCESS_TOKEN" 'https://catalog.matatika.com/api/apikeys/3ac7a904-919a-4f36-97f1-aa1ed4501a9a' -i -X GET \
    -H 'Accept: application/json, application/javascript, text/javascript, text/json' \
    -H 'Content-Type: application/json'
  • Python (requests)
import requests

url = "https://catalog.matatika.com/api/apikeys/3ac7a904-919a-4f36-97f1-aa1ed4501a9a"

headers = {
  'Authorization': ACCESS_TOKEN
}

response = requests.request("GET", url, headers=headers)

print(response.text.encode('utf8'))

Response

200 OK

API key with HAL links.

{
  "id" : "3ac7a904-919a-4f36-97f1-aa1ed4501a9a",
  "created" : "2022-01-21T09:31:20.257423",
  "lastModified" : "2022-01-21T09:31:20.257424",
  "name" : "SIT-generated api key (2022-01-21T09:31:20.140660)",
  "clientId" : "v7tvvLvIIw1wRhAueNKDAQBxNOhrL8Fd",
  "profileId" : "auth0|5eb0327cbfd7490bff55feeb",
  "_links" : {
    "self" : {
      "href" : "https://catalog.matatika.com/api/apikeys/3ac7a904-919a-4f36-97f1-aa1ed4501a9a"
    },
    "update apikey" : {
      "href" : "https://catalog.matatika.com/api/apikeys/3ac7a904-919a-4f36-97f1-aa1ed4501a9a"
    },
    "delete apikey" : {
      "href" : "https://catalog.matatika.com/api/apikeys/3ac7a904-919a-4f36-97f1-aa1ed4501a9a"
    },
    "profile" : {
      "href" : "https://catalog.matatika.com/api/profiles/auth0%7C5eb0327cbfd7490bff55feeb"
    }
  }
}

Initialise an API key

POST

/api/apikeys

Initialises a new API key.

Prerequisites

  • The authenticated user must own a Matatika account

Request

Example Snippets

  • cURL
curl -H "Authorization: Bearer $ACCESS_TOKEN" 'https://catalog.matatika.com/api/apikeys/' -i -X POST \
    -H 'Accept: application/json, application/javascript, text/javascript, text/json' \
    -H 'Content-Type: application/json'
  • Python (requests)
import requests

url = "https://catalog.matatika.com/api/apikeys/"

headers = {
  'Authorization': ACCESS_TOKEN
}

response = requests.request("POST", url, headers=headers)

print(response.text.encode('utf8'))

Response

200 OK

API key with HAL links.

{
  "id" : "3ac7a904-919a-4f36-97f1-aa1ed4501a9a",
  "created" : "2022-01-21T09:31:20.076901",
  "lastModified" : "2022-01-21T09:31:20.076901",
  "profileId" : "auth0|5eb0327cbfd7490bff55feeb",
  "_links" : {
    "create apikey" : {
      "href" : "https://catalog.matatika.com/api/apikeys/3ac7a904-919a-4f36-97f1-aa1ed4501a9a"
    }
  }
}

Create an API key

PUT

/api/apikeys/{apikey-id}

Creates the API key {apikey-id}.

Prerequisites

  • The authenticated user must own a Matatika account

Request

Body

API key resource.

{
  "name" : "SIT-generated api key (2022-01-21T09:31:20.140660)"
}

Example Snippets

  • cURL
curl -H "Authorization: Bearer $ACCESS_TOKEN" 'https://catalog.matatika.com/api/apikeys/3ac7a904-919a-4f36-97f1-aa1ed4501a9a' -i -X PUT \
    -H 'Accept: application/json, application/javascript, text/javascript, text/json' \
    -H 'Content-Type: application/json' \
    -d '{
  "name" : "SIT-generated api key (2022-01-21T09:31:20.140660)"
}'
  • Python (requests)
import requests

url = "https://catalog.matatika.com/api/apikeys/3ac7a904-919a-4f36-97f1-aa1ed4501a9a"

data = {
  "name" : "SIT-generated api key (2022-01-21T09:31:20.140660)"
}
headers = {
  'Authorization': ACCESS_TOKEN
}

response = requests.request("PUT", url, headers=headers, data=data)

print(response.text.encode('utf8'))

Response

201 Created

API key with HAL links.

{
  "id" : "3ac7a904-919a-4f36-97f1-aa1ed4501a9a",
  "created" : "2022-01-21T09:31:20.257423",
  "lastModified" : "2022-01-21T09:31:20.257424",
  "name" : "SIT-generated api key (2022-01-21T09:31:20.140660)",
  "clientId" : "v7tvvLvIIw1wRhAueNKDAQBxNOhrL8Fd",
  "clientSecret" : "H5WP9RnyXEVSiAqT1_CJIAXWCGrwNmXVA7GgfTidkaVlKKte_U-3EOuPutccv0tL",
  "profileId" : "auth0|5eb0327cbfd7490bff55feeb",
  "_links" : {
    "self" : {
      "href" : "https://catalog.matatika.com/api/apikeys/3ac7a904-919a-4f36-97f1-aa1ed4501a9a"
    },
    "update apikey" : {
      "href" : "https://catalog.matatika.com/api/apikeys/3ac7a904-919a-4f36-97f1-aa1ed4501a9a"
    },
    "delete apikey" : {
      "href" : "https://catalog.matatika.com/api/apikeys/3ac7a904-919a-4f36-97f1-aa1ed4501a9a"
    },
    "profile" : {
      "href" : "https://catalog.matatika.com/api/profiles/auth0%7C5eb0327cbfd7490bff55feeb"
    }
  }
}

Update an API key

PUT

/api/apikeys/{apikey-id}

Updates the API key {apikey-id}.

Prerequisites

  • The authenticated user must own a Matatika account

Request

Body

API key resource.

{
  "name" : "SIT-generated api key (2022-01-21T09:31:20.140660) (updated)"
}

Example Snippets

  • cURL
curl -H "Authorization: Bearer $ACCESS_TOKEN" 'https://catalog.matatika.com/api/apikeys/3ac7a904-919a-4f36-97f1-aa1ed4501a9a' -i -X PUT \
    -H 'Accept: application/json, application/javascript, text/javascript, text/json' \
    -H 'Content-Type: application/json' \
    -d '{
  "name" : "SIT-generated api key (2022-01-21T09:31:20.140660) (updated)"
}'
  • Python (requests)
import requests

url = "https://catalog.matatika.com/api/apikeys/3ac7a904-919a-4f36-97f1-aa1ed4501a9a"

data = {
  "name" : "SIT-generated api key (2022-01-21T09:31:20.140660) (updated)"
}
headers = {
  'Authorization': ACCESS_TOKEN
}

response = requests.request("PUT", url, headers=headers, data=data)

print(response.text.encode('utf8'))

Response

200 OK

API key with HAL links.

{
  "id" : "3ac7a904-919a-4f36-97f1-aa1ed4501a9a",
  "created" : "2022-01-21T09:31:20.257423",
  "lastModified" : "2022-01-21T09:31:22.06106",
  "name" : "SIT-generated api key (2022-01-21T09:31:20.140660) (updated)",
  "clientId" : "v7tvvLvIIw1wRhAueNKDAQBxNOhrL8Fd",
  "profileId" : "auth0|5eb0327cbfd7490bff55feeb",
  "_links" : {
    "self" : {
      "href" : "https://catalog.matatika.com/api/apikeys/3ac7a904-919a-4f36-97f1-aa1ed4501a9a"
    },
    "update apikey" : {
      "href" : "https://catalog.matatika.com/api/apikeys/3ac7a904-919a-4f36-97f1-aa1ed4501a9a"
    },
    "delete apikey" : {
      "href" : "https://catalog.matatika.com/api/apikeys/3ac7a904-919a-4f36-97f1-aa1ed4501a9a"
    },
    "profile" : {
      "href" : "https://catalog.matatika.com/api/profiles/auth0%7C5eb0327cbfd7490bff55feeb"
    }
  }
}

Delete an API key

DELETE

/api/apikeys/{apikey-id}

Deletes the API key {apikey-id}.

Prerequisites

  • The authenticated user must own a Matatika account
  • The API key {apikey-id} must exist

Request

Example Snippets

  • cURL
curl -H "Authorization: Bearer $ACCESS_TOKEN" 'https://catalog.matatika.com/api/apikeys/3ac7a904-919a-4f36-97f1-aa1ed4501a9a' -i -X DELETE \
    -H 'Accept: application/json, application/javascript, text/javascript, text/json' \
    -H 'Content-Type: application/json'
  • Python (requests)
import requests

url = "https://catalog.matatika.com/api/apikeys/3ac7a904-919a-4f36-97f1-aa1ed4501a9a"

headers = {
  'Authorization': ACCESS_TOKEN
}

response = requests.request("DELETE", url, headers=headers)

print(response.text.encode('utf8'))

Response

204 No Content

No response body provided.