patch/users/@me/memes/{meme_id}

Update favorite meme

Updates details of a favorite meme.

update_favorite_meme

Parameters

NameInTypeDescription
meme_id*pathstringThe meme id

Request body

application/json

json
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Display name for the meme"
    },
    "alt_text": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Alternative text description for accessibility"
    },
    "tags": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "null"
        }
      ],
      "description": "New tags for categorizing and searching the meme"
    }
  }
}

Responses

200

Success

json
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^(0|[1-9][0-9]*)$",
      "description": "Unique identifier for the favorite meme"
    },
    "user_id": {
      "type": "string",
      "pattern": "^(0|[1-9][0-9]*)$",
      "description": "ID of the user who owns this favorite meme"
    },
    "name": {
      "type": "string",
      "description": "Display name of the meme"
    },
    "alt_text": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Alternative text description for accessibility"
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Tags for categorizing and searching the meme"
    },
    "attachment_id": {
      "type": "string",
      "pattern": "^(0|[1-9][0-9]*)$",
      "description": "ID of the attachment storing the meme"
    },
    "filename": {
      "type": "string",
      "description": "Original filename of the meme"
    },
    "content_type": {
      "type": "string",
      "description": "MIME type of the meme file"
    },
    "content_hash": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Hash of the file content for deduplication"
    },
    "size": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991,
      "format": "int53",
      "description": "File size in bytes"
    },
    "width": {
      "anyOf": [
        {
          "type": "integer",
          "format": "int53"
        },
        {
          "type": "null"
        }
      ],
      "description": "Width of the image or video in pixels"
    },
    "height": {
      "anyOf": [
        {
          "type": "integer",
          "format": "int53"
        },
        {
          "type": "null"
        }
      ],
      "description": "Height of the image or video in pixels"
    },
    "duration": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "description": "Duration of the video in seconds"
    },
    "url": {
      "type": "string",
      "description": "CDN URL to access the meme"
    },
    "is_gifv": {
      "type": "boolean",
      "description": "Whether the meme is a video converted from GIF"
    },
    "gif_slug": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Provider-issued slug for the GIF this meme was sourced from, if any"
    },
    "gif_provider": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Stable name of the GIF provider that issued gif_slug, if any. Legacy records may contain older provider names."
    },
    "media": {
      "anyOf": [
        {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/GifMediaFormat"
          }
        },
        {
          "type": "null"
        }
      ],
      "description": "Provider-issued format-name → media descriptor map for gif-sourced memes (mirrors GifResponse.media). Null on memes uploaded as plain attachments."
    },
    "placeholder": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Compact thumbhash placeholder produced by the media proxy at favorite-time. Clients render it as a low-res preview while the full media loads. Null when the proxy did not emit one."
    }
  },
  "required": [
    "id",
    "user_id",
    "name",
    "tags",
    "attachment_id",
    "filename",
    "content_type",
    "size",
    "url"
  ]
}
400

Bad Request - The request was malformed or contained invalid data

json
{
  "type": "object",
  "properties": {
    "code": {
      "$ref": "#/components/schemas/APIErrorCode"
    },
    "message": {
      "type": "string",
      "description": "Human-readable error message"
    },
    "errors": {
      "type": "array",
      "description": "Field-specific validation errors",
      "items": {
        "$ref": "#/components/schemas/ValidationErrorItem"
      }
    }
  },
  "required": [
    "code",
    "message"
  ]
}
401

Unauthorized - Authentication is required or the token is invalid

json
{
  "type": "object",
  "properties": {
    "code": {
      "$ref": "#/components/schemas/APIErrorCode"
    },
    "message": {
      "type": "string",
      "description": "Human-readable error message"
    },
    "errors": {
      "type": "array",
      "description": "Field-specific validation errors",
      "items": {
        "$ref": "#/components/schemas/ValidationErrorItem"
      }
    }
  },
  "required": [
    "code",
    "message"
  ]
}
403

Forbidden - You do not have permission to perform this action

json
{
  "type": "object",
  "properties": {
    "code": {
      "$ref": "#/components/schemas/APIErrorCode"
    },
    "message": {
      "type": "string",
      "description": "Human-readable error message"
    },
    "errors": {
      "type": "array",
      "description": "Field-specific validation errors",
      "items": {
        "$ref": "#/components/schemas/ValidationErrorItem"
      }
    }
  },
  "required": [
    "code",
    "message"
  ]
}
429

Too Many Requests - You are being rate limited

json
{
  "type": "object",
  "properties": {
    "code": {
      "type": "string",
      "enum": [
        "RATE_LIMITED"
      ]
    },
    "message": {
      "type": "string"
    },
    "retry_after": {
      "type": "number",
      "description": "Seconds to wait before retrying"
    },
    "global": {
      "type": "boolean",
      "description": "Whether this is a global rate limit"
    }
  },
  "required": [
    "code",
    "message",
    "retry_after"
  ]
}
500

Internal Server Error - An unexpected error occurred

json
{
  "type": "object",
  "properties": {
    "code": {
      "$ref": "#/components/schemas/APIErrorCode"
    },
    "message": {
      "type": "string",
      "description": "Human-readable error message"
    },
    "errors": {
      "type": "array",
      "description": "Field-specific validation errors",
      "items": {
        "$ref": "#/components/schemas/ValidationErrorItem"
      }
    }
  },
  "required": [
    "code",
    "message"
  ]
}