> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fanfare.io/llms.txt
> Use this file to discover all available pages before exploring further.

# PUT /announcements/{id}

> Update an announcement



## OpenAPI

````yaml /api/openapi/admin-api.json put /announcements/{id}
openapi: 3.1.0
info:
  description: Admin API for Fanfare
  title: Fanfare Admin API
  version: 1.0.0
servers:
  - description: Production
    url: https://admin.fanfare.io/api
  - description: Local development
    url: http://localhost:4800
security:
  - SecretKeyAuth: []
paths:
  /announcements/{id}:
    put:
      tags:
        - Distributions
      description: Update an announcement
      operationId: putAnnouncementsById
      parameters:
        - in: path
          name: id
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                anchorPoint:
                  enum:
                    - DISTRIBUTION_OPEN
                    - DISTRIBUTION_CLOSE
                    - DRAW_TIME
                    - AUCTION_SETTLE
                    - EXPERIENCE_START
                    - EXPERIENCE_END
                  nullable: true
                  type: string
                content:
                  type: string
                creativeDesignId:
                  format: uuid
                  nullable: true
                  type: string
                creativeDocument:
                  nullable: true
                  properties:
                    body:
                      additionalProperties:
                        type: lazy
                      type: object
                    editor:
                      type: string
                    kind:
                      enum:
                        - announcement-email
                        - announcement-sms
                        - announcement-social
                        - experience-page
                        - transactional-email
                        - transactional-sms
                      type: string
                    schemaVersion:
                      type: number
                    themeOverrides:
                      properties:
                        background:
                          type: string
                        danger:
                          type: string
                        fontFamily:
                          type: string
                        fontHeading:
                          type: string
                        headerImageUrl:
                          type: string
                        logoUrl:
                          type: string
                        muted:
                          type: string
                        primary:
                          type: string
                        secondary:
                          type: string
                        success:
                          type: string
                        surface:
                          type: string
                        text:
                          type: string
                        variant:
                          enum:
                            - default
                            - retro
                            - rounded
                            - clean
                          type: string
                        warning:
                          type: string
                      required: []
                      type: object
                  required:
                    - schemaVersion
                    - kind
                    - editor
                    - body
                  type: object
                creativeTemplateKey:
                  nullable: true
                  type: string
                experienceId:
                  format: uuid
                  type: string
                imageUrl:
                  nullable: true
                  type: string
                includeAudience:
                  type: boolean
                includeWaitlist:
                  type: boolean
                link:
                  nullable: true
                  type: string
                metadata:
                  nullable: true
                  properties:
                    email:
                      properties:
                        fromEmail:
                          format: email
                          type: string
                        fromName:
                          type: string
                        replyToEmail:
                          format: email
                          type: string
                        replyToName:
                          type: string
                      required:
                        - fromEmail
                        - replyToEmail
                      type: object
                  required: []
                  type: object
                offsetSeconds:
                  nullable: true
                  type: number
                scheduledAt:
                  nullable: true
                  type: string
                sequenceId:
                  format: uuid
                  nullable: true
                  type: string
                shortContent:
                  nullable: true
                  type: string
                templateData:
                  additionalProperties:
                    type: lazy
                  nullable: true
                  type: object
                timeZone:
                  type: string
                timingStrategy:
                  enum:
                    - POINT_IN_TIME
                    - RELATIVE
                  type: string
                title:
                  type: string
                type:
                  enum:
                    - EMAIL
                    - SMS
                    - FACEBOOK
                    - X
                    - INSTAGRAM
                    - LINKEDIN
                    - TIKTOK
                    - YOUTUBE
                  type: string
              required: []
              type: object
      responses:
        '200':
          content:
            application/json:
              schema:
                $defs:
                  '7':
                    anyOf:
                      - type: string
                      - type: number
                      - type: boolean
                      - type: 'null'
                      - items:
                          anyOf:
                            - type: string
                            - type: number
                            - type: integer
                            - type: boolean
                            - type: 'null'
                            - items: {}
                              type: array
                            - additionalProperties: {}
                              type: object
                        type: array
                      - additionalProperties:
                          anyOf:
                            - type: string
                            - type: number
                            - type: integer
                            - type: boolean
                            - type: 'null'
                            - items: {}
                              type: array
                            - additionalProperties: {}
                              type: object
                        propertyNames:
                          type: string
                        type: object
                properties:
                  anchorPoint:
                    anyOf:
                      - enum:
                          - DISTRIBUTION_OPEN
                          - DISTRIBUTION_CLOSE
                          - DRAW_TIME
                          - AUCTION_SETTLE
                          - EXPERIENCE_START
                          - EXPERIENCE_END
                      - type: 'null'
                  archived:
                    type: boolean
                  content:
                    minLength: 1
                    type: string
                  createdAt:
                    format: date-time
                    type: string
                  createdBy:
                    type: string
                  creativeDesignId:
                    anyOf:
                      - format: uuid
                        type: string
                      - type: 'null'
                  creativeDocument:
                    anyOf:
                      - properties:
                          body:
                            additionalProperties:
                              anyOf:
                                - type: string
                                - type: number
                                - type: integer
                                - type: boolean
                                - type: 'null'
                                - items: {}
                                  type: array
                                - additionalProperties: {}
                                  type: object
                            propertyNames:
                              type: string
                            type: object
                          editor:
                            minLength: 1
                            type: string
                          kind:
                            enum:
                              - announcement-email
                              - announcement-sms
                              - announcement-social
                              - experience-page
                              - transactional-email
                              - transactional-sms
                          schemaVersion:
                            minimum: 1
                            type: integer
                          themeOverrides:
                            properties:
                              background:
                                type: string
                              danger:
                                type: string
                              fontFamily:
                                type: string
                              fontHeading:
                                type: string
                              headerImageUrl:
                                format: uri
                                type: string
                              logoUrl:
                                format: uri
                                type: string
                              muted:
                                type: string
                              primary:
                                type: string
                              secondary:
                                type: string
                              success:
                                type: string
                              surface:
                                type: string
                              text:
                                type: string
                              variant:
                                enum:
                                  - default
                                  - retro
                                  - rounded
                                  - clean
                              warning:
                                type: string
                            required: []
                            type: object
                        required:
                          - schemaVersion
                          - kind
                          - editor
                          - body
                        type: object
                      - type: 'null'
                  creativeTemplateKey:
                    anyOf:
                      - type: string
                      - type: 'null'
                  experienceId:
                    format: uuid
                    type: string
                  id:
                    format: uuid
                    type: string
                  imageUrl:
                    anyOf:
                      - format: uri
                        type: string
                      - type: 'null'
                  includeAudience:
                    type: boolean
                  includeWaitlist:
                    type: boolean
                  link:
                    anyOf:
                      - format: uri
                        type: string
                      - type: 'null'
                  metadata:
                    anyOf:
                      - properties:
                          email:
                            properties:
                              fromEmail:
                                format: email
                                type: string
                              fromName:
                                type: string
                              replyToEmail:
                                format: email
                                type: string
                              replyToName:
                                type: string
                            required:
                              - fromEmail
                              - replyToEmail
                            type: object
                        required: []
                        type: object
                      - type: 'null'
                  offsetSeconds:
                    anyOf:
                      - type: number
                      - type: 'null'
                  organizationId:
                    format: uuid
                    type: string
                  scheduledAt:
                    anyOf:
                      - format: date-time
                        type: string
                      - type: 'null'
                  sequenceId:
                    anyOf:
                      - format: uuid
                        type: string
                      - type: 'null'
                  shortContent:
                    anyOf:
                      - type: string
                      - type: 'null'
                  templateData:
                    anyOf:
                      - additionalProperties:
                          anyOf:
                            - type: string
                            - type: number
                            - type: integer
                            - type: boolean
                            - type: 'null'
                            - items: {}
                              type: array
                            - additionalProperties: {}
                              type: object
                        propertyNames:
                          type: string
                        type: object
                      - type: 'null'
                  timeZone:
                    minLength: 1
                    type: string
                  timingStrategy:
                    default: POINT_IN_TIME
                    enum:
                      - POINT_IN_TIME
                      - RELATIVE
                  title:
                    minLength: 1
                    type: string
                  type:
                    enum:
                      - EMAIL
                      - SMS
                      - FACEBOOK
                      - X
                      - INSTAGRAM
                      - LINKEDIN
                      - TIKTOK
                      - YOUTUBE
                  updatedAt:
                    anyOf:
                      - format: date-time
                        type: string
                      - type: 'null'
                  updatedBy:
                    anyOf:
                      - type: string
                      - type: 'null'
                required:
                  - id
                  - organizationId
                  - createdAt
                  - createdBy
                  - archived
                  - type
                  - content
                  - title
                  - includeAudience
                  - includeWaitlist
                  - experienceId
                  - timeZone
                type: object
          description: Announcement updated successfully
        '400':
          content:
            application/json:
              schema:
                properties:
                  error:
                    const: validation_error
                  issues:
                    items:
                      properties:
                        expected:
                          type: string
                        kind:
                          type: string
                        message:
                          type: string
                        path:
                          items:
                            properties:
                              input: {}
                              key:
                                type: string
                              origin:
                                type: string
                              type:
                                type: string
                            required:
                              - type
                              - origin
                              - input
                              - key
                            type: object
                          type: array
                        received:
                          type: string
                        type:
                          type: string
                      required:
                        - kind
                        - type
                        - expected
                        - received
                        - message
                        - path
                      type: object
                    type: array
                required:
                  - error
                  - issues
                type: object
          description: Bad Request - Invalid input schema
        '401':
          content:
            application/json:
              schema:
                properties:
                  error:
                    type: string
                required:
                  - error
                type: object
          description: Unauthorized - Authentication required
        '403':
          content:
            application/json:
              schema:
                properties:
                  error:
                    type: string
                required:
                  - error
                type: object
          description: Forbidden - User must be authenticated
        '500':
          content:
            application/json:
              schema:
                properties:
                  error:
                    type: string
                required:
                  - error
                type: object
          description: Internal server error
components:
  securitySchemes:
    SecretKeyAuth:
      description: Fanfare secret key. Keep secret credentials on your server.
      scheme: bearer
      type: http

````