Set or update a topic cover image
Upload a cover image for an existing topic. Send the image as multipart/form-data with a filePart (the image).
Authorization: Your API key bot must be a member of the topic (returns 404 if not).
Cover image requirements:
- must be a valid image (JPEG or PNG); undecodable images return 400
- non-square images are automatically center-cropped to a square
- max dimension 4096×4096; larger images return 400
- max size 8 MB; converted to JPEG automatically
Behavior: The image is uploaded first; the topic's cover is only updated once the upload succeeds, so a topic never references a missing image.
Request
- Base URLhttps://api.zenzap.co
- Auth
- HTTP bearer and API key in header X-Signature
- or OAuth 2Client credentialsToken URLhttps://api.zenzap.co/oauth/tokenScopeschannel:write
- TypeScriptA function with typed inputs. Its response is checked against the schema.
Path parameters
The ID of the topic to set the cover image for
Headers
HMAC signature of the request for authentication and replay protection.
Required only when authenticating with a static API key. If you are using an OAuth access token (issued by POST /oauth/token), omit this header — the JWT carries all the authentication and integrity guarantees.
Replay Protection: The signature includes a timestamp to prevent replay attacks. Requests with timestamps older than 5 minutes are rejected.
The signature payload differs by HTTP method:
- POST/PUT/PATCH/DELETE: HMAC-SHA256 of {timestamp}.{body}
- GET: HMAC-SHA256 of {timestamp}.{uri}
The signature is calculated as:
- Get the current Unix timestamp in milliseconds
- Determine the payload:
- For POST/PUT/PATCH/DELETE: Use {timestamp}.{body} where body is the request body
- For GET: Use {timestamp}.{uri} where uri is the full request URI (e.g., /v2/members?limit=10)
- Calculate HMAC-SHA256 of the combined payload using your API secret
- Hex-encode the output
- Include the timestamp in the X-Timestamp header
Example for GET request to /v2/members?limit=10:
timestamp = 1699564800000
payload = "1699564800000./v2/members?limit=10"
signature = HMAC-SHA256(secret, payload)
X-Signature: hex(signature)
X-Timestamp: 1699564800000
Example for POST request with body {"topicId":"123","text":"Hello"}:
timestamp = 1699564800000
payload = '1699564800000.{"topicId":"123","text":"Hello"}'
signature = HMAC-SHA256(secret, payload)
X-Signature: hex(signature)
X-Timestamp: 1699564800000
For multipart/form-data requests, sign the exact raw request body bytes (including boundaries and file bytes) as transmitted.
Unix timestamp in milliseconds when the request was created. Used for replay protection — requests older than 5 minutes are rejected.
Required only when authenticating with a static API key. Omit when using an OAuth access token.
Request body multipart/form-data
Response
Cover image updated successfully
Example response
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"updatedAt": 1699564800000
}Changes
No recorded changes to this operation across all 1 revision of this API.