LocationService / Client / create_key



Creates an API key resource in your Amazon Web Services account, which lets you grant actions for Amazon Location resources to the API key bearer.


For more information, see Using API keys.

See also: AWS API Documentation

Request Syntax

response = client.create_key(
    ExpireTime=datetime(2015, 1, 1),
        'AllowActions': [
        'AllowReferers': [
        'AllowResources': [
        'string': 'string'
  • Description (string) – An optional description for the API key resource.

  • ExpireTime (datetime) – The optional timestamp for when the API key resource will expire in ISO 8601 format: YYYY-MM-DDThh:mm:ss.sssZ. One of NoExpiry or ExpireTime must be set.

  • KeyName (string) –


    A custom name for the API key resource.


    • Contain only alphanumeric characters (A–Z, a–z, 0–9), hyphens (-), periods (.), and underscores (_).

    • Must be a unique API key name.

    • No spaces allowed. For example, ExampleAPIKey.

  • NoExpiry (boolean) – Optionally set to true to set no expiration time for the API key. One of NoExpiry or ExpireTime must be set.

  • Restrictions (dict) –


    The API key restrictions for the API key resource.

    • AllowActions (list) – [REQUIRED]

      A list of allowed actions that an API key resource grants permissions to perform. You must have at least one action for each type of resource. For example, if you have a place resource, you must include at least one place action.

      The following are valid values for the actions.

      • Map actions

        • geo:GetMap* - Allows all actions needed for map rendering.

      • Place actions

        • geo:SearchPlaceIndexForText - Allows geocoding.

        • geo:SearchPlaceIndexForPosition - Allows reverse geocoding.

        • geo:SearchPlaceIndexForSuggestions - Allows generating suggestions from text.

        • GetPlace - Allows finding a place by place ID.

      • Route actions

        • geo:CalculateRoute - Allows point to point routing.

        • geo:CalculateRouteMatrix - Allows calculating a matrix of routes.


      You must use these strings exactly. For example, to provide access to map rendering, the only valid action is geo:GetMap* as an input to the list. ["geo:GetMap*"] is valid but ["geo:GetMapTile"] is not. Similarly, you cannot use ["geo:SearchPlaceIndexFor*"] - you must list each of the Place actions separately.

      • (string) –

    • AllowReferers (list) –

      An optional list of allowed HTTP referers for which requests must originate from. Requests using this API key from other domains will not be allowed.


      • Contain only alphanumeric characters (A–Z, a–z, 0–9) or any symbols in this list $\-._+!*`(),;/?:@=&

      • May contain a percent (%) if followed by 2 hexadecimal digits (A-F, a-f, 0-9); this is used for URL encoding purposes.

      • May contain wildcard characters question mark (?) and asterisk (*). Question mark (?) will replace any single character (including hexadecimal digits). Asterisk (*) will replace any multiple characters (including multiple hexadecimal digits).

      • No spaces allowed. For example, https://example.com.

      • (string) –

    • AllowResources (list) – [REQUIRED]

      A list of allowed resource ARNs that a API key bearer can perform actions on.

      • The ARN must be the correct ARN for a map, place, or route ARN. You may include wildcards in the resource-id to match multiple resources of the same type.

      • The resources must be in the same partition, region, and account-id as the key that is being created.

      • Other than wildcards, you must include the full ARN, including the arn, partition, service, region, account-id and resource-id delimited by colons (:).

      • No spaces allowed, even with wildcards. For example, arn:aws:geo:region:account-id:map/ExampleMap*.

      For more information about ARN format, see Amazon Resource Names (ARNs).

      • (string) –

  • Tags (dict) –

    Applies one or more tags to the map resource. A tag is a key-value pair that helps manage, identify, search, and filter your resources by labelling them.

    Format: "key" : "value"


    • Maximum 50 tags per resource

    • Each resource tag must be unique with a maximum of one value.

    • Maximum key length: 128 Unicode characters in UTF-8

    • Maximum value length: 256 Unicode characters in UTF-8

    • Can use alphanumeric characters (A–Z, a–z, 0–9), and the following characters: + - = . _ : / @.

    • Cannot use “aws:” as a prefix for a key.

    • (string) –

      • (string) –

Return type:



Response Syntax

    'CreateTime': datetime(2015, 1, 1),
    'Key': 'string',
    'KeyArn': 'string',
    'KeyName': 'string'

Response Structure

  • (dict) –

    • CreateTime (datetime) –

      The timestamp for when the API key resource was created in ISO 8601 format: YYYY-MM-DDThh:mm:ss.sssZ.

    • Key (string) –

      The key value/string of an API key. This value is used when making API calls to authorize the call. For example, see GetMapGlyphs.

    • KeyArn (string) –

      The Amazon Resource Name (ARN) for the API key resource. Used when you need to specify a resource across all Amazon Web Services.

      • Format example: arn:aws:geo:region:account-id:key/ExampleKey

    • KeyName (string) –

      The name of the API key resource.


  • LocationService.Client.exceptions.InternalServerException

  • LocationService.Client.exceptions.ConflictException

  • LocationService.Client.exceptions.AccessDeniedException

  • LocationService.Client.exceptions.ValidationException

  • LocationService.Client.exceptions.ServiceQuotaExceededException

  • LocationService.Client.exceptions.ThrottlingException