CloudFront Public Keys API

The Public Keys API from CloudFront — 1 operation(s) for public keys.

Operations 6

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

POST /2020-05-31/public-key Upload a public key for signed URLs · Create Public Key #
Ask an LLM
“How do I upload a public key so CloudFront can verify signed URLs?”
“Can I add a new public key for signed cookies?”
Tell an agent
Upload a new public key to CloudFront.
Add a public key for verifying signed URLs and cookies.
GET /2020-05-31/public-key List public keys for signed URLs · List Public Keys #
Ask an LLM
“Which public keys have I uploaded for signed URLs and cookies?”
“Can I see all the public keys in my CloudFront account?”
Tell an agent
List all of my CloudFront public keys.
Show the public keys uploaded for signed URL verification.
DELETE /2020-05-31/public-key/{Id} Delete Public Key #
GET /2020-05-31/public-key/{Id} Get Public Key #
GET /2020-05-31/public-key/{Id}/config Get Public Key Config #
PUT /2020-05-31/public-key/{Id}/config Update Public Key #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/cloudfront:cloudfront-public-keys-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

cloudfront-public-keys-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Amazon CloudFront Public Keys API
  version: '2020-05-31'
  description: Generated from AWS's published Smithy model for Amazon CloudFront. 6 operation(s).
  contact:
    name: Amazon Web Services
    url: https://aws.amazon.com/contact-us/
  license:
    name: Apache 2.0
    identifier: Apache-2.0
    url: https://github.com/aws/api-models-aws/blob/main/LICENSE
servers:
- url: https://cloudfront.{region}.amazonaws.com
  variables:
    region:
      default: us-east-1
security:
- sigv4: []
paths:
  /2020-05-31/public-key:
    post:
      operationId: CreatePublicKey
      summary: Create Public Key
      description: Uploads a public key to CloudFront that you can use with signed URLs and signed cookies, or with field-level
        encryption.
      responses:
        '200':
          description: Success
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/CreatePublicKeyResult'
        '400':
          description: InvalidArgument; TooManyPublicKeys
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/InvalidArgument'
        '409':
          description: PublicKeyAlreadyExists
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/PublicKeyAlreadyExists'
      requestBody:
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/CreatePublicKeyRequest'
      tags:
      - Public Keys
    get:
      operationId: ListPublicKeys
      summary: List Public Keys
      description: List all public keys that have been added to CloudFront for this account.
      responses:
        '200':
          description: Success
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/ListPublicKeysResult'
        '400':
          description: InvalidArgument
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/InvalidArgument'
      requestBody:
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/ListPublicKeysRequest'
      tags:
      - Public Keys
  /2020-05-31/public-key/{Id}:
    delete:
      operationId: DeletePublicKey
      summary: Delete Public Key
      description: Remove a public key you previously added to CloudFront.
      responses:
        '200':
          description: Success
          content:
            text/xml:
              schema:
                type: string
        '403':
          description: AccessDenied
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/AccessDenied'
        '400':
          description: InvalidIfMatchVersion
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/InvalidIfMatchVersion'
        '404':
          description: NoSuchPublicKey
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/NoSuchPublicKey'
        '412':
          description: PreconditionFailed
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/PreconditionFailed'
        '409':
          description: PublicKeyInUse
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/PublicKeyInUse'
      requestBody:
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/DeletePublicKeyRequest'
      tags:
      - Public Keys
    get:
      operationId: GetPublicKey
      summary: Get Public Key
      description: Gets a public key.
      responses:
        '200':
          description: Success
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/GetPublicKeyResult'
        '403':
          description: AccessDenied
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/AccessDenied'
        '404':
          description: NoSuchPublicKey
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/NoSuchPublicKey'
      requestBody:
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/GetPublicKeyRequest'
      tags:
      - Public Keys
  /2020-05-31/public-key/{Id}/config:
    get:
      operationId: GetPublicKeyConfig
      summary: Get Public Key Config
      description: Gets a public key configuration.
      responses:
        '200':
          description: Success
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/GetPublicKeyConfigResult'
        '403':
          description: AccessDenied
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/AccessDenied'
        '404':
          description: NoSuchPublicKey
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/NoSuchPublicKey'
      requestBody:
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/GetPublicKeyConfigRequest'
      tags:
      - Public Keys
    put:
      operationId: UpdatePublicKey
      summary: Update Public Key
      description: Update public key information. Note that the only value you can change is the comment.
      responses:
        '200':
          description: Success
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/UpdatePublicKeyResult'
        '403':
          description: AccessDenied
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/AccessDenied'
        '400':
          description: CannotChangeImmutablePublicKeyFields; IllegalUpdate; InvalidArgument; InvalidIfMatchVersion
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/CannotChangeImmutablePublicKeyFields'
        '404':
          description: NoSuchPublicKey
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/NoSuchPublicKey'
        '412':
          description: PreconditionFailed
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/PreconditionFailed'
      requestBody:
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/UpdatePublicKeyRequest'
      tags:
      - Public Keys
components:
  securitySchemes:
    sigv4:
      type: apiKey
      in: header
      name: Authorization
      description: AWS Signature Version 4. The Authorization header carries an AWS4-HMAC-SHA256 signature over the canonical
        request, with X-Amz-Date (and X-Amz-Security-Token for temporary credentials). Not a bearer token.
      x-aws-sigv4:
        signingName: cloudfront
  schemas:
    AccessDenied:
      type: object
      properties:
        Message:
          type: string
    CannotChangeImmutablePublicKeyFields:
      type: object
      properties:
        Message:
          type: string
    CreatePublicKeyRequest:
      type: object
      properties:
        PublicKeyConfig:
          $ref: '#/components/schemas/PublicKeyConfig'
      required:
      - PublicKeyConfig
    CreatePublicKeyResult:
      type: object
      properties:
        PublicKey:
          $ref: '#/components/schemas/PublicKey'
        Location:
          type: string
          description: The URL of the public key.
        ETag:
          type: string
          description: The identifier for this version of the public key.
    DeletePublicKeyRequest:
      type: object
      properties:
        Id:
          type: string
          description: The ID of the public key you want to remove from CloudFront.
        IfMatch:
          type: string
          description: 'The value of the ETag header that you received when retrieving the public key identity to delete.
            For example: E2QWRUHAPOMQZL.'
      required:
      - Id
    GetPublicKeyConfigRequest:
      type: object
      properties:
        Id:
          type: string
          description: The identifier of the public key whose configuration you are getting.
      required:
      - Id
    GetPublicKeyConfigResult:
      type: object
      properties:
        PublicKeyConfig:
          $ref: '#/components/schemas/PublicKeyConfig'
        ETag:
          type: string
          description: The identifier for this version of the public key configuration.
    GetPublicKeyRequest:
      type: object
      properties:
        Id:
          type: string
          description: The identifier of the public key you are getting.
      required:
      - Id
    GetPublicKeyResult:
      type: object
      properties:
        PublicKey:
          $ref: '#/components/schemas/PublicKey'
        ETag:
          type: string
          description: The identifier for this version of the public key.
    InvalidArgument:
      type: object
      properties:
        Message:
          type: string
    InvalidIfMatchVersion:
      type: object
      properties:
        Message:
          type: string
    ListPublicKeysRequest:
      type: object
      properties:
        Marker:
          type: string
          description: Use this when paginating results to indicate where to begin in your list of public keys. The results
            include public keys in the list that occur after the marker. To get the next page of results, set the Marker to
            the value of the NextMarker from the current page's response (which is also the ID of the last public key on that
            page).
        MaxItems:
          type: integer
          description: The maximum number of public keys you want in the response body.
    ListPublicKeysResult:
      type: object
      properties:
        PublicKeyList:
          $ref: '#/components/schemas/PublicKeyList'
    NoSuchPublicKey:
      type: object
      properties:
        Message:
          type: string
    PreconditionFailed:
      type: object
      properties:
        Message:
          type: string
    PublicKey:
      type: object
      properties:
        Id:
          type: string
          description: The identifier of the public key.
        CreatedTime:
          type: string
          format: date-time
          description: The date and time when the public key was uploaded.
        PublicKeyConfig:
          $ref: '#/components/schemas/PublicKeyConfig'
      required:
      - Id
      - CreatedTime
      - PublicKeyConfig
    PublicKeyAlreadyExists:
      type: object
      properties:
        Message:
          type: string
    PublicKeyConfig:
      type: object
      properties:
        CallerReference:
          type: string
          description: A string included in the request to help make sure that the request can't be replayed.
        Name:
          type: string
          description: A name to help identify the public key.
        EncodedKey:
          type: string
          description: The public key that you can use with signed URLs and signed cookies, or with field-level encryption.
        Comment:
          type: string
          description: A comment to describe the public key. The comment cannot be longer than 128 characters.
      required:
      - CallerReference
      - Name
      - EncodedKey
    PublicKeyInUse:
      type: object
      properties:
        Message:
          type: string
    PublicKeyList:
      type: object
      properties:
        NextMarker:
          type: string
          description: If there are more elements to be listed, this element is present and contains the value that you can
            use for the Marker request parameter to continue listing your public keys where you left off.
        MaxItems:
          type: integer
          description: The maximum number of public keys you want in the response.
        Quantity:
          type: integer
          description: The number of public keys in the list.
        Items:
          type: array
          items:
            $ref: '#/components/schemas/PublicKeySummary'
          description: A list of public keys.
      required:
      - MaxItems
      - Quantity
    PublicKeySummary:
      type: object
      properties:
        Id:
          type: string
          description: The identifier of the public key.
        Name:
          type: string
          description: A name to help identify the public key.
        CreatedTime:
          type: string
          format: date-time
          description: The date and time when the public key was uploaded.
        EncodedKey:
          type: string
          description: The public key.
        Comment:
          type: string
          description: A comment to describe the public key. The comment cannot be longer than 128 characters.
      required:
      - Id
      - Name
      - CreatedTime
      - EncodedKey
    UpdatePublicKeyRequest:
      type: object
      properties:
        PublicKeyConfig:
          $ref: '#/components/schemas/PublicKeyConfig'
        Id:
          type: string
          description: The identifier of the public key that you are updating.
        IfMatch:
          type: string
          description: 'The value of the ETag header that you received when retrieving the public key to update. For example:
            E2QWRUHAPOMQZL.'
      required:
      - PublicKeyConfig
      - Id
    UpdatePublicKeyResult:
      type: object
      properties:
        PublicKey:
          $ref: '#/components/schemas/PublicKey'
        ETag:
          type: string
          description: The identifier of the current version of the public key.
x-provenance:
  method: harvested
  publisher: Amazon Web Services
  source: https://raw.githubusercontent.com/aws/api-models-aws/582e55931c45b944739742a2c1620b6026dd2d13/models/cloudfront/service/2020-05-31/cloudfront-2020-05-31.json
  note: converted by smithy-to-openapi.py from AWS's Smithy model (roadmap#1001)