Create an API key

Creates a new API key. An API key can be used to authenticate against the backend API.

Access control

Endpoints

Creating a new API key is possible via these endpoints:

MethodPathAuthentication
POST
/apikeys/jwtJSON Web Token
POST
/apikeys/keyAPI Key & Secret

Request body

PropertyTypeDescription
namestringA name for the API key
levelnumberA privilege level from 0 to 8.
expiresInnumberThe number of seconds until the API key expires

Response status codes

Possible status codes for these endpoints are:

Status codeDescription
201
success
400
the request was malformed
401
the request lacks authentication
403
authentication failed
500
server error
NOTE

If the status code is not

201
the error property in the response body should indicate the nature of the problem.

Response body

WARNING
Make sure to save the secret

The response body is the only time the API key’s secret will be revealed.

ValueTypeDescription
resultstringEither success or error
errorstringWill give info on the nature of the error. Only set if an error occurred.
apikey.keystringThe API key
apikey.secretstringThe API secret
apikey.levelnumberThe privilege level of the API key
apikey.expiresAtstringA string representation of the moment the API key expires
apikey.namestringThe name of the API key
apikey.userIdnumberThe ID of the user who created the API key

Example request

Javascript
const apiKey = axios.post(
  'https://backend.freesewing.org/apikeys/jwt',
  {
    name: 'My first API key',
    level: 2, // Read only
    expiresIn: 3600, // One hour
  },
  {
    headers: {
      Authorization: `Bearer ${token}`
    }
  }
)

Example response

JSON
201
{
  "result": "success",
  "apikey": {
    "key": "7ea12968-7758-40b6-8c73-75cc99be762b",
    "secret": "503d7adbdb3ec18ab27adfcd895d8b47a8d6bc8307d548500fbf9c05a5a8820e",
    "level": 3,
    "expiresAt": "2022-11-06T15:57:30.190Z",
    "name": "My first API key",
    "userId": 61
  }
}