Fastly Edge Dictionaries API

The Fastly Edge Dictionaries API provides endpoints for creating and managing key-value lookup tables that are accessible at the edge without requiring a service version change. Dictionaries can store configuration data, feature flags, redirect mappings, and other dynamic values that VCL or Compute services can reference during request processing.

OpenAPI Specification

fastly-dictionaries-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Fastly Edge Dictionaries API
  description: >-
    The Fastly Edge Dictionaries API provides endpoints for creating and
    managing key-value lookup tables that are accessible at the edge without
    requiring a service version change. Dictionaries can store configuration
    data, feature flags, redirect mappings, and other dynamic values that VCL
    or Compute services can reference during request processing. The API
    supports CRUD operations on both dictionary containers and their individual
    items, as well as bulk updates for efficient management of large datasets.
  version: '1.0'
  contact:
    name: Fastly Support
    url: https://support.fastly.com
  termsOfService: https://www.fastly.com/terms
externalDocs:
  description: Fastly Edge Dictionaries API Documentation
  url: https://www.fastly.com/documentation/reference/api/dictionaries/
servers:
  - url: https://api.fastly.com
    description: Fastly API Production Server
tags:
  - name: Dictionary
    description: >-
      Operations for managing dictionary containers within a service version.
  - name: Dictionary Info
    description: >-
      Operations for retrieving metadata about a dictionary.
  - name: Dictionary Item
    description: >-
      Operations for managing individual key-value pairs within a dictionary.
      Items are versionless and take effect within approximately 30 seconds.
security:
  - apiKeyAuth: []
paths:
  /service/{service_id}/version/{version_id}/dictionary:
    get:
      operationId: listDictionaries
      summary: List dictionaries
      description: >-
        Retrieves a list of all dictionaries configured for a specific version
        of a Fastly service.
      tags:
        - Dictionary
      parameters:
        - $ref: '#/components/parameters/serviceId'
        - $ref: '#/components/parameters/versionId'
      responses:
        '200':
          description: Successfully retrieved the list of dictionaries.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Dictionary'
        '401':
          description: Unauthorized. The API token is missing or invalid.
    post:
      operationId: createDictionary
      summary: Create a dictionary
      description: >-
        Creates a new dictionary container for a specific version of a Fastly
        service. Once the service version is activated, items within the
        dictionary become versionless and can be updated without requiring
        a new service version.
      tags:
        - Dictionary
      parameters:
        - $ref: '#/components/parameters/serviceId'
        - $ref: '#/components/parameters/versionId'
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
                - name
              properties:
                name:
                  type: string
                  description: >-
                    The name of the dictionary.
                write_only:
                  type: boolean
                  description: >-
                    Whether the dictionary is write-only, meaning items can
                    only be set or deleted but not read.
      responses:
        '200':
          description: Successfully created the dictionary.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Dictionary'
        '400':
          description: Bad request. Missing or invalid parameters.
        '401':
          description: Unauthorized. The API token is missing or invalid.
  /service/{service_id}/version/{version_id}/dictionary/{dictionary_name}:
    get:
      operationId: getDictionary
      summary: Get a dictionary
      description: >-
        Retrieves the details of a specific dictionary container for a
        version of a Fastly service.
      tags:
        - Dictionary
      parameters:
        - $ref: '#/components/parameters/serviceId'
        - $ref: '#/components/parameters/versionId'
        - name: dictionary_name
          in: path
          required: true
          description: >-
            The name of the dictionary.
          schema:
            type: string
      responses:
        '200':
          description: Successfully retrieved the dictionary.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Dictionary'
        '401':
          description: Unauthorized. The API token is missing or invalid.
        '404':
          description: Dictionary not found.
    put:
      operationId: updateDictionary
      summary: Update a dictionary
      description: >-
        Updates a specific dictionary container for a version of a Fastly
        service.
      tags:
        - Dictionary
      parameters:
        - $ref: '#/components/parameters/serviceId'
        - $ref: '#/components/parameters/versionId'
        - name: dictionary_name
          in: path
          required: true
          description: >-
            The name of the dictionary.
          schema:
            type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: >-
                    The new name of the dictionary.
                write_only:
                  type: boolean
                  description: >-
                    Whether the dictionary is write-only.
      responses:
        '200':
          description: Successfully updated the dictionary.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Dictionary'
        '401':
          description: Unauthorized. The API token is missing or invalid.
        '404':
          description: Dictionary not found.
    delete:
      operationId: deleteDictionary
      summary: Delete a dictionary
      description: >-
        Deletes a specific dictionary container from a version of a Fastly
        service.
      tags:
        - Dictionary
      parameters:
        - $ref: '#/components/parameters/serviceId'
        - $ref: '#/components/parameters/versionId'
        - name: dictionary_name
          in: path
          required: true
          description: >-
            The name of the dictionary.
          schema:
            type: string
      responses:
        '200':
          description: Successfully deleted the dictionary.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    description: >-
                      Confirmation status of the deletion.
        '401':
          description: Unauthorized. The API token is missing or invalid.
        '404':
          description: Dictionary not found.
  /service/{service_id}/dictionary/{dictionary_id}/items:
    get:
      operationId: listDictionaryItems
      summary: List dictionary items
      description: >-
        Retrieves a list of all key-value pairs within a specific dictionary.
      tags:
        - Dictionary Item
      parameters:
        - $ref: '#/components/parameters/serviceId'
        - name: dictionary_id
          in: path
          required: true
          description: >-
            The alphanumeric string identifying the dictionary.
          schema:
            type: string
        - name: page
          in: query
          description: >-
            The page number to retrieve.
          schema:
            type: integer
        - name: per_page
          in: query
          description: >-
            The number of items per page.
          schema:
            type: integer
      responses:
        '200':
          description: Successfully retrieved the list of dictionary items.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DictionaryItem'
        '401':
          description: Unauthorized. The API token is missing or invalid.
    patch:
      operationId: bulkUpdateDictionaryItems
      summary: Bulk update dictionary items
      description: >-
        Updates multiple dictionary items in a single request. Supports
        create, update, upsert, and delete operations in the same batch.
      tags:
        - Dictionary Item
      parameters:
        - $ref: '#/components/parameters/serviceId'
        - name: dictionary_id
          in: path
          required: true
          description: >-
            The alphanumeric string identifying the dictionary.
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                items:
                  type: array
                  description: >-
                    A list of dictionary item operations to perform.
                  items:
                    type: object
                    properties:
                      op:
                        type: string
                        description: >-
                          The operation to perform on the item.
                        enum:
                          - create
                          - update
                          - upsert
                          - delete
                      item_key:
                        type: string
                        description: >-
                          The key of the dictionary item.
                      item_value:
                        type: string
                        description: >-
                          The value of the dictionary item.
      responses:
        '200':
          description: Successfully performed bulk update on dictionary items.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    description: >-
                      The status of the bulk operation.
        '400':
          description: Bad request. Missing or invalid parameters.
        '401':
          description: Unauthorized. The API token is missing or invalid.
  /service/{service_id}/dictionary/{dictionary_id}/item:
    post:
      operationId: createDictionaryItem
      summary: Create a dictionary item
      description: >-
        Creates a new key-value pair within a specific dictionary. The item
        takes effect within approximately 30 seconds without requiring a
        new service version.
      tags:
        - Dictionary Item
      parameters:
        - $ref: '#/components/parameters/serviceId'
        - name: dictionary_id
          in: path
          required: true
          description: >-
            The alphanumeric string identifying the dictionary.
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/DictionaryItem'
      responses:
        '200':
          description: Successfully created the dictionary item.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DictionaryItem'
        '400':
          description: Bad request. Missing or invalid parameters.
        '401':
          description: Unauthorized. The API token is missing or invalid.
  /service/{service_id}/dictionary/{dictionary_id}/item/{dictionary_item_key}:
    get:
      operationId: getDictionaryItem
      summary: Get a dictionary item
      description: >-
        Retrieves the details of a specific key-value pair within a dictionary.
      tags:
        - Dictionary Item
      parameters:
        - $ref: '#/components/parameters/serviceId'
        - name: dictionary_id
          in: path
          required: true
          description: >-
            The alphanumeric string identifying the dictionary.
          schema:
            type: string
        - name: dictionary_item_key
          in: path
          required: true
          description: >-
            The key of the dictionary item.
          schema:
            type: string
      responses:
        '200':
          description: Successfully retrieved the dictionary item.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DictionaryItem'
        '401':
          description: Unauthorized. The API token is missing or invalid.
        '404':
          description: Dictionary item not found.
    put:
      operationId: upsertDictionaryItem
      summary: Upsert a dictionary item
      description: >-
        Creates or updates a key-value pair within a specific dictionary.
      tags:
        - Dictionary Item
      parameters:
        - $ref: '#/components/parameters/serviceId'
        - name: dictionary_id
          in: path
          required: true
          description: >-
            The alphanumeric string identifying the dictionary.
          schema:
            type: string
        - name: dictionary_item_key
          in: path
          required: true
          description: >-
            The key of the dictionary item.
          schema:
            type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                item_value:
                  type: string
                  description: >-
                    The value for the dictionary item.
      responses:
        '200':
          description: Successfully upserted the dictionary item.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DictionaryItem'
        '401':
          description: Unauthorized. The API token is missing or invalid.
    patch:
      operationId: updateDictionaryItem
      summary: Update a dictionary item
      description: >-
        Updates a specific key-value pair within a dictionary.
      tags:
        - Dictionary Item
      parameters:
        - $ref: '#/components/parameters/serviceId'
        - name: dictionary_id
          in: path
          required: true
          description: >-
            The alphanumeric string identifying the dictionary.
          schema:
            type: string
        - name: dictionary_item_key
          in: path
          required: true
          description: >-
            The key of the dictionary item.
          schema:
            type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                item_value:
                  type: string
                  description: >-
                    The new value for the dictionary item.
      responses:
        '200':
          description: Successfully updated the dictionary item.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DictionaryItem'
        '401':
          description: Unauthorized. The API token is missing or invalid.
        '404':
          description: Dictionary item not found.
    delete:
      operationId: deleteDictionaryItem
      summary: Delete a dictionary item
      description: >-
        Deletes a specific key-value pair from a dictionary.
      tags:
        - Dictionary Item
      parameters:
        - $ref: '#/components/parameters/serviceId'
        - name: dictionary_id
          in: path
          required: true
          description: >-
            The alphanumeric string identifying the dictionary.
          schema:
            type: string
        - name: dictionary_item_key
          in: path
          required: true
          description: >-
            The key of the dictionary item.
          schema:
            type: string
      responses:
        '200':
          description: Successfully deleted the dictionary item.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    description: >-
                      Confirmation status of the deletion.
        '401':
          description: Unauthorized. The API token is missing or invalid.
        '404':
          description: Dictionary item not found.
  /service/{service_id}/dictionary/{dictionary_id}/info:
    get:
      operationId: getDictionaryInfo
      summary: Get dictionary info
      description: >-
        Retrieves metadata about a specific dictionary, including the number
        of items it contains.
      tags:
        - Dictionary Info
      parameters:
        - $ref: '#/components/parameters/serviceId'
        - name: dictionary_id
          in: path
          required: true
          description: >-
            The alphanumeric string identifying the dictionary.
          schema:
            type: string
      responses:
        '200':
          description: Successfully retrieved the dictionary info.
          content:
            application/json:
              schema:
                type: object
                properties:
                  digest:
                    type: string
                    description: >-
                      A hash of the dictionary contents.
                  item_count:
                    type: integer
                    description: >-
                      The number of items in the dictionary.
                  last_updated:
                    type: string
                    format: date-time
                    description: >-
                      The date and time the dictionary was last updated.
        '401':
          description: Unauthorized. The API token is missing or invalid.
        '404':
          description: Dictionary not found.
components:
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: Fastly-Key
      description: >-
        API token used to authenticate requests to the Fastly API.
  parameters:
    serviceId:
      name: service_id
      in: path
      required: true
      description: >-
        The alphanumeric string identifying the Fastly service.
      schema:
        type: string
    versionId:
      name: version_id
      in: path
      required: true
      description: >-
        The integer identifying the service version.
      schema:
        type: integer
  schemas:
    Dictionary:
      type: object
      description: >-
        A dictionary container that holds key-value pairs accessible at the
        Fastly edge for use in VCL or Compute services.
      properties:
        id:
          type: string
          description: >-
            The alphanumeric string identifying the dictionary.
        name:
          type: string
          description: >-
            The name of the dictionary.
        service_id:
          type: string
          description: >-
            The alphanumeric string identifying the service.
        version:
          type: integer
          description: >-
            The version number the dictionary is associated with.
        write_only:
          type: boolean
          description: >-
            Whether the dictionary is write-only.
        created_at:
          type: string
          format: date-time
          description: >-
            The date and time the dictionary was created.
        updated_at:
          type: string
          format: date-time
          description: >-
            The date and time the dictionary was last updated.
        deleted_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            The date and time the dictionary was deleted.
    DictionaryItem:
      type: object
      description: >-
        A single key-value pair that makes up an entry in a dictionary.
      properties:
        dictionary_id:
          type: string
          description: >-
            The alphanumeric string identifying the dictionary.
        service_id:
          type: string
          description: >-
            The alphanumeric string identifying the service.
        item_key:
          type: string
          description: >-
            The key of the dictionary item.
          maxLength: 256
        item_value:
          type: string
          description: >-
            The value of the dictionary item.
          maxLength: 8000
        created_at:
          type: string
          format: date-time
          description: >-
            The date and time the item was created.
        updated_at:
          type: string
          format: date-time
          description: >-
            The date and time the item was last updated.
        deleted_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            The date and time the item was deleted.