Developer documentation
A place for images.
In your code, too.
Explore image uploads, tag management, filtering, and response examples.
Image uploads · Tags · Filter images
Authentication
Send your API key in the Authorization: Bearer YOUR_API_KEY header. Contact sales for API access
enquiries. Keep keys on your server, out of browser code and public repositories.
Upload an image
POST /v1/images — image upload request.
Request body
file· required- The image file, sent as
multipart/form-data.
curl --request POST \
'https://fileflashly.com/v1/images' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--form 'file=@coast.png'
Current response
{
"error": {
"code": "UNAUTHORIZED",
"message": "Unauthorized"
}
}
Success response example
Example 201 Created response with sample image data.
{
"id": "sample_image_id",
"name": "coast.png",
"url": "https://files.fileflashly.example/images/sample.png"
}
Direct image links are intended for sharing: anyone with the link can view the image.
Organize with tags
Use tags to organize an image across projects, topics, or collections. Tag requests use the same bearer
authorization header as image uploads. Send JSON bodies with Content-Type: application/json. The
examples below use sample IDs and response data.
- Tag names
- Names are stored as entered, without trimming or normalization. Chinese, Japanese, Korean, and emoji are supported. Names are case-sensitive.
- Tag IDs
-
Use the returned
idfor subsequent requests. Renaming a tag preserves its ID and image attachments.
List tags
GET /v1/tags — list the account’s tags, including unused tags.
curl 'https://fileflashly.com/v1/tags' \
--header 'Authorization: Bearer YOUR_API_KEY'
[
{ "id": "a1b2c3d4e5f6g7h8i9j0k1l2", "name": "Travel" }
]
Create a tag
POST /v1/tags — send a name. An exact existing name returns the existing tag instead
of creating a duplicate.
curl --request POST 'https://fileflashly.com/v1/tags' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{"name":"Travel"}'
{
"id": "a1b2c3d4e5f6g7h8i9j0k1l2",
"name": "Travel"
}
Rename a tag
PATCH /v1/tags — send action: "rename", tagId, and the new
name. The name must not duplicate another tag’s exact name.
curl --request PATCH 'https://fileflashly.com/v1/tags' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{"action":"rename","tagId":"a1b2c3d4e5f6g7h8i9j0k1l2","name":"Summer"}'
Success response example: {"id":"a1b2c3d4e5f6g7h8i9j0k1l2","name":"Summer"}
Attach or remove a tag
PATCH /v1/tags — send action: "add" or action: "remove", a
tagId, and fileIds containing the image IDs. Each request changes one tag across the
selected images. Repeating an attachment does not create duplicate links; removing a tag leaves the images
intact.
curl --request PATCH 'https://fileflashly.com/v1/tags' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"action": "add",
"tagId": "a1b2c3d4e5f6g7h8i9j0k1l2",
"fileIds": ["m1n2o3p4q5r6s7t8u9v0w1x2"]
}'
To detach, use the same request with "action": "remove". Success response example for either
action: {"updated":true}.
Delete a tag
DELETE /v1/tags?id=TAG_ID — delete the tag and its image associations. The images themselves
remain in the library.
curl --request DELETE \
'https://fileflashly.com/v1/tags?id=a1b2c3d4e5f6g7h8i9j0k1l2' \
--header 'Authorization: Bearer YOUR_API_KEY'
Success response example: {"deleted":true}.
Find images by tag
GET /v1/images — filter the image list using tag IDs.
tags· optional- Comma-separated tag IDs. An image must have all selected tags to match. Omit this parameter to include images regardless of their tags.
untagged=1· optional- Return only images without tags. Do not combine with
tags. q· optional- Filter by image filename. Omit the parameter when the search is empty.
curl --get 'https://fileflashly.com/v1/images' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--data-urlencode 'tags=a1b2c3d4e5f6g7h8i9j0k1l2'
curl 'https://fileflashly.com/v1/images?untagged=1' \
--header 'Authorization: Bearer YOUR_API_KEY'
Planning an integration?
Tell us what you’re building. Contact sales to discuss API access and your integration requirements.
Contact sales