BokaMera.API.Host

<back to all web services

ApiKeyQuery

Requires Authentication
Requires any of the roles:bookingsupplier-administrator-write, superadmin
The following routes are available for this service:
GET/apikeysList the API keys for the logged in user's companyReturns the API keys belonging to the company of the currently logged in user. A company administrator only ever sees the keys for their own company. Use the returned ApiKey value as the x-api-key header when calling the API (for example from an MCP server).
Imports System
Imports System.IO
Imports System.Collections
Imports System.Collections.Generic
Imports System.Runtime.Serialization
Imports ServiceStack
Imports ServiceStack.DataAnnotations
Imports BokaMera.API.ServiceModel.Dtos

Namespace Global

    Namespace BokaMera.API.ServiceModel.Dtos

        <ApiResponse(Description:="Returned if the current user is not authenticated", StatusCode:=401)>
        <ApiResponse(Description:="Returned if the current user does not have the required role", StatusCode:=403)>
        Public Partial Class ApiKeyQuery
            Implements ICompany
            '''<Summary>
            '''The company to list API keys for. Defaults to the logged in user's company. Only a SuperAdmin may specify a company other than their own; for other roles this value is ignored.
            '''</Summary>
            <ApiMember(Description:="The company to list API keys for. Defaults to the logged in user's company. Only a SuperAdmin may specify a company other than their own; for other roles this value is ignored.", ParameterType:="query")>
            Public Overridable Property CompanyId As Guid? Implements ICompany.CompanyId

            '''<Summary>
            '''If true, only return keys that are active (not cancelled and not expired). Default is false (return all).
            '''</Summary>
            <ApiMember(DataType:="boolean", Description:="If true, only return keys that are active (not cancelled and not expired). Default is false (return all).", ParameterType:="query")>
            Public Overridable Property ActiveOnly As Boolean?
        End Class

        Public Partial Class ApiKeyQueryResponse
            '''<Summary>
            '''The API keys for the company
            '''</Summary>
            <ApiMember(Description:="The API keys for the company")>
            Public Overridable Property ApiKeys As List(Of ApiKeyResponse) = New List(Of ApiKeyResponse)

            Public Overridable Property ResponseStatus As ResponseStatus
        End Class

        Public Partial Class ApiKeyResponse
            '''<Summary>
            '''The company the API key belongs to
            '''</Summary>
            <ApiMember(Description:="The company the API key belongs to")>
            Public Overridable Property CompanyId As Guid

            '''<Summary>
            '''The API key value to send in the x-api-key header
            '''</Summary>
            <ApiMember(Description:="The API key value to send in the x-api-key header")>
            Public Overridable Property ApiKey As Guid

            '''<Summary>
            '''Whether the key is active
            '''</Summary>
            <ApiMember(Description:="Whether the key is active")>
            Public Overridable Property Active As Boolean

            '''<Summary>
            '''When the key was created
            '''</Summary>
            <ApiMember(Description:="When the key was created")>
            Public Overridable Property CreatedDate As Date

            '''<Summary>
            '''When the key expires, if ever
            '''</Summary>
            <ApiMember(Description:="When the key expires, if ever")>
            Public Overridable Property ExpiryDate As Date?

            '''<Summary>
            '''Contact email registered for the key
            '''</Summary>
            <ApiMember(Description:="Contact email registered for the key")>
            Public Overridable Property ContactEmail As String

            '''<Summary>
            '''Free text notes for the key
            '''</Summary>
            <ApiMember(Description:="Free text notes for the key")>
            Public Overridable Property Notes As String

            '''<Summary>
            '''Comma separated list of IP addresses the key is restricted to, if any
            '''</Summary>
            <ApiMember(Description:="Comma separated list of IP addresses the key is restricted to, if any")>
            Public Overridable Property AllowedIpAddresses As String
        End Class
    End Namespace
End Namespace

VB.NET ApiKeyQuery DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /apikeys HTTP/1.1 
Host: api.bookmore.com 
Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	ApiKeys: 
	[
		{
			Active: False,
			ExpiryDate: "0001-01-01T00:00:00",
			ContactEmail: String,
			Notes: String,
			AllowedIpAddresses: String
		}
	],
	ResponseStatus: 
	{
		ErrorCode: String,
		Message: String,
		StackTrace: String,
		Errors: 
		[
			{
				ErrorCode: String,
				FieldName: String,
				Message: String,
				Meta: 
				{
					String: String
				}
			}
		],
		Meta: 
		{
			String: String
		}
	}
}