SVG to TGS Telegram sticker animation

File format guide

Lottie to TGS: a compatibility guide

A working Lottie animation is a starting point, not proof of Telegram compatibility. Review its features before producing a TGS file.

Check an existing TGS

This guide does not import Lottie JSON. The linked checker accepts completed .tgs files.

Separate the animation from its container

Lottie JSON describes shapes, layers, transforms and animation timing. A TGS file contains gzip-compressed animation JSON for Telegram. Compression changes how the data is stored; it does not replace an unsupported layer, remove a missing image dependency or correct the animation.

This site does not import arbitrary Lottie JSON or convert an uploaded JSON file to TGS. If you already have an animation project, make compatibility changes in its authoring workflow and use a TGS-capable exporter there. Our checker can inspect the resulting TGS.

Review the source before compressing it

Telegram specifies a 512 × 512 canvas, a loop no longer than three seconds, 60 FPS and a final file no larger than 64 KB. Shapes must remain inside the canvas. Its published restrictions also exclude features such as images, live text, masks, layer effects and expressions.

A Lottie player showing the animation successfully does not establish those conditions. Inspect the source project and the exported data, especially when the animation was originally designed for a website with external assets.

Compare a readable JSON file with its TGS

The downloads below are a programmatically authored teaching pair: pulse-circle.lottie.json and pulse-circle.tgs. The reference has one shape layer and a two-second scale animation. The TGS is 394 bytes; decompressing it reveals the same animation data as the readable JSON.

Use that pair to understand the container relationship. Its small size and simple feature set do not imply that any other JSON will work after gzip compression, and the example is not an export of a specific preset in our SVG editor.

How it works

Choose the next step for your existing animation

A working Lottie animation is a starting point, not proof of Telegram compatibility. Review its features before producing a TGS file.

  1. Identify what you have

    Keep the authoring project if available. A JSON file is not an SVG source, and changing its extension does not make it a TGS.

  2. Audit features and timing

    Compare layers, assets, canvas, frame rate and duration with the Telegram requirements. Replace unsupported effects in the source project.

  3. Export in a compatible workflow

    Use a TGS-capable exporter for that project. Telegram documents Bodymovin-TG for After Effects; this website does not provide a JSON import or repair step.

  4. Inspect the completed TGS

    Open the downloaded .tgs in the checker for size, timing, canvas and structural findings. Fix reported problems in the authoring project, then export again.

  5. Check the visual result in Telegram

    Review the whole loop and moving edges, then try the file in @Stickers. A structural check cannot guarantee rendering or acceptance.

Use cases

Where this workflow fits

Create vector artwork for Telegram stickers, custom emoji and branded packs.

You have a completed TGS

Go directly to the file checker. There is no need to upload the source animation to our SVG converter.

You have JSON and its authoring project

Review unsupported features and export from that workflow after correcting the source.

You have a simple icon available as SVG

Create a new animation from the vector source with our supported SVG workflow.

Format

An SVG alternative when rebuilding is practical

For a simple logo or symbol, export clean vector artwork as SVG from the original design editor and build new motion in the SVG to TGS converter. This does not preserve the original Lottie timeline or automatically extract its layers into SVG.

SVG conversion and TGS download are free after Telegram login. A diagnostic copy of the selected SVG is sent to the service, while animation and export are computed in the browser. The separate TGS checker needs no login and reads the selected TGS locally.

Tips and requirements

Avoid container-only fixes

  • Renaming .json to .tgs does not create a gzip container.
  • Gzip compression does not turn bitmap assets into vector paths.
  • Adding a TGS marker does not remove unsupported features or fix missing references.
  • Changing frame-rate metadata alone can alter the duration and does not recreate the intended motion.
  • Keep the editable project; a checker reports issues but does not repair the animation.

Try a sample SVG and TGS

Download the SVG to try the converter, or inspect a small animated TGS export.

FAQ

Frequently asked questions

Can this page convert my Lottie JSON directly?

No. It is a compatibility guide. Our editor accepts SVG, and the separate checker accepts completed TGS files. Neither imports arbitrary Lottie JSON for conversion.

Can I gzip any Lottie JSON to make a Telegram sticker?

Gzip can package JSON, but it cannot make unsupported animation features compatible. The source animation and its structure must already satisfy the target requirements.

Why does an animation work in a Lottie player but fail in Telegram?

The player may support features, assets or timing that are outside the Telegram sticker requirements. Check the source project and exported TGS instead of treating playback elsewhere as proof of compatibility.

Does the checker convert or fix the file?

No. It inspects an existing TGS and reports structural findings. It does not export JSON to TGS, repair shapes, render the animation or certify a seamless loop.

Can I preserve my Lottie animation by uploading an SVG?

No. An SVG source starts a new animation in the converter. Original Lottie keyframes are not imported, so keep your authoring project if you need to preserve that motion.

Start now

Already have a TGS export?

Inspect the completed file in the checker, then review its visual loop and try it in Telegram.

Check an existing TGS