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.
Example requestcURL
curl --request POST \
  'https://fileflashly.com/v1/images' \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --form 'file=@coast.png'

Current response

401 UnauthorizedJSON
{
  "error": {
    "code": "UNAUTHORIZED",
    "message": "Unauthorized"
  }
}

Success response example

Example 201 Created response with sample image data.

201 CreatedExample JSON
{
  "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 id for subsequent requests. Renaming a tag preserves its ID and image attachments.

List tags

GET /v1/tags — list the account’s tags, including unused tags.

List tagscURL
curl 'https://fileflashly.com/v1/tags' \
  --header 'Authorization: Bearer YOUR_API_KEY'
200 OKExample JSON
[
  { "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.

Create a tagcURL
curl --request POST 'https://fileflashly.com/v1/tags' \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{"name":"Travel"}'
200 OKExample JSON
{
  "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.

Rename a tagcURL
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.

Attach a tagcURL
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.

Delete a tagcURL
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.
Filter by tagcURL
curl --get 'https://fileflashly.com/v1/images' \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --data-urlencode 'tags=a1b2c3d4e5f6g7h8i9j0k1l2'
Find untagged imagescURL
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