Image hosting for X / Twitter link cards that render correctly.
X's native image upload is for posts. For link-in-bio pages, og:image on external links, Twitter cards, or bot-posted media referenced via URL, you need a separate host.
Upload an image →Why hosting matters on X (Twitter)
og:image for link previews
When someone posts a URL to X, the preview card pulls og:image from your site's HTML. That image needs to be on a CDN, publicly reachable, and ≥1200×630 for a large card.
Profile banner / avatar backups
X strips EXIF and recompresses every upload, so your originals get degraded. Keep pristine copies on ImageToURL for re-uploads or side-by-side comparisons.
Bot-posted image via URL
Many bots use the v2 API's media_url field. Your image has to live somewhere public first — ImageToURL is a one-call upload away.
Bio-link pages
Linktree/Beacons-style pages you link from your X bio fetch images from external hosts. Use a stable URL here and your bio page stays clean for years.
How to embed
Upload the source file
Drop your image — we return a CDN URL suitable for og:image and Twitter card use.
Reference in your HTML or tweet tool
Paste the URL into your <meta property='og:image'> tag, your bot's media field, or your bio link page.
Verify the card
Use X's Card Validator (now Post Inspector) with your page URL. The image should load from our CDN in under 100 ms.
FAQ
What image size does X recommend for link cards?
1200×628 for summary_large_image cards. X will crop or pad anything else. Use the image resizer tool first to hit exact dimensions.
Do I need HTTPS?
Yes. X's card crawler only fetches https URLs. ImageToURL URLs are https by default.
Does it support animated PNG or GIF?
GIF yes — animations play in X's card preview. APNG works as a static first-frame PNG (X converts to MP4 for real animation uploads).
Will the URL survive if I delete my post?
Yes. The image is on our CDN, not X's. Deleting a post doesn't touch the underlying host.
Can I embed an image in my X bio?
Not directly — X's bio is plain text. The usual pattern is link-in-bio (Linktree, Carrd, a personal page) and host the images used there via ImageToURL.
What about threads?
Each thread post uploads images natively. ImageToURL is for images you reference externally from X, not for the image attached to a post.
Size limit on X?
X accepts up to 5 MB for static images, 15 MB for GIFs. ImageToURL's 10 MB free tier covers both.
Does this stop X from recompressing?
No — X always recompresses uploads. Use ImageToURL for the source-of-truth copy and any URL-referenced context.