{"id":351127,"date":"2026-08-12T07:54:47","date_gmt":"2026-08-12T07:54:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/image-uploader-for-figma\/"},"modified":"2026-08-12T07:55:50","modified_gmt":"2026-08-12T07:55:50","slug":"tomatoshift-image-uploader-figma","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/tomatoshift-image-uploader-figma\/","author":23475854,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.0","stable_tag":"1.2.0","tested":"7.0.4","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"tomatoSHIFT Image Uploader for Figma","header_author":"tomatoSHIFT","header_description":"Upload images from Figma to WordPress in one click. No more manual exporting and uploading. Not affiliated with or endorsed by Figma, Inc.","assets_banners_color":"392025","last_updated":"2026-08-12 07:55:50","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/tomatoshift.com\/tomatoshift-image-uploader-figma\/","header_author_uri":"https:\/\/tomatoshift.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":30,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.2.0":{"tag":"1.2.0","author":"tomatoshift","date":"2026-08-12 07:55:50"}},"upgrade_notice":{"1.2.0":"<p>Plugin renamed. If you are on 1.1.x, deactivate and delete the old &quot;Image Uploader for Figma&quot; plugin before activating this one \u2014 the folder changed, so it installs alongside rather than over it. Your API key and Figma plugin connection still work.<\/p>","1.1.2":"<p>Internal cleanup for WordPress.org coding standards, plus tighter CORS on the upload endpoint. No changes needed on the Figma side.<\/p>","1.1.1":"<p>Fixes a false &quot;old plugin still active&quot; error shown by 1.1.0. Update if you saw that message.<\/p>","1.1.0":"<p>Plugin renamed. If you are on 1.0.x, deactivate and delete the old &quot;Fig2WP Image Uploader&quot; plugin before activating this one \u2014 the folder changed, so it installs alongside rather than over it. Your API key still works; the settings screen is now Settings &gt; Image Uploader for Figma.<\/p>","1.0.1":"<p>Fixes uploads being blocked by host anti-bot protection. Update the Figma plugin too.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3643006,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3643006,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3643006,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.2.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3643006,"resolution":"1","location":"assets","locale":"","width":1920,"height":1080},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3643006,"resolution":"2","location":"assets","locale":"","width":1920,"height":1080},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3643006,"resolution":"3","location":"assets","locale":"","width":1920,"height":1080},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3643006,"resolution":"4","location":"assets","locale":"","width":1920,"height":1080},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3643006,"resolution":"5","location":"assets","locale":"","width":1920,"height":1080},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3643006,"resolution":"6","location":"assets","locale":"","width":1920,"height":1080}},"screenshots":{"1":"Choose scale, format (PNG, JPG or WebP), max size and quality in Figma, and see the resulting file size before uploading.","2":"Settings &gt; tomatoSHIFT Image Uploader for Figma: generate the API key and copy it into the Figma plugin.","3":"Paste your WordPress site URL and API key into the Figma plugin to connect.","4":"Select layers on the Figma canvas and upload them in one batch.","5":"The uploaded images land straight in the WordPress Media Library.","6":"Title and alt text set in Figma are carried over to the attachment."}},"plugin_section":[],"plugin_tags":[225034,29161,1722,233,15376],"plugin_category":[50],"plugin_contributors":[275311],"plugin_business_model":[],"class_list":["post-351127","plugin","type-plugin","status-publish","hentry","plugin_tags-figma","plugin_tags-image-optimization","plugin_tags-image-upload","plugin_tags-media-library","plugin_tags-webp","plugin_category-media","plugin_contributors-tomatoshift","plugin_committers-tomatoshift"],"banners":{"banner":"https:\/\/ps.w.org\/tomatoshift-image-uploader-figma\/assets\/banner-772x250.png?rev=3643006","banner_2x":"https:\/\/ps.w.org\/tomatoshift-image-uploader-figma\/assets\/banner-1544x500.png?rev=3643006","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/tomatoshift-image-uploader-figma\/assets\/icon-256x256.png?rev=3643006","icon_2x":"https:\/\/ps.w.org\/tomatoshift-image-uploader-figma\/assets\/icon-256x256.png?rev=3643006","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/tomatoshift-image-uploader-figma\/assets\/screenshot-1.png?rev=3643006","caption":"Choose scale, format (PNG, JPG or WebP), max size and quality in Figma, and see the resulting file size before uploading."},{"src":"https:\/\/ps.w.org\/tomatoshift-image-uploader-figma\/assets\/screenshot-2.png?rev=3643006","caption":"Settings &gt; tomatoSHIFT Image Uploader for Figma: generate the API key and copy it into the Figma plugin."},{"src":"https:\/\/ps.w.org\/tomatoshift-image-uploader-figma\/assets\/screenshot-3.png?rev=3643006","caption":"Paste your WordPress site URL and API key into the Figma plugin to connect."},{"src":"https:\/\/ps.w.org\/tomatoshift-image-uploader-figma\/assets\/screenshot-4.png?rev=3643006","caption":"Select layers on the Figma canvas and upload them in one batch."},{"src":"https:\/\/ps.w.org\/tomatoshift-image-uploader-figma\/assets\/screenshot-5.png?rev=3643006","caption":"The uploaded images land straight in the WordPress Media Library."},{"src":"https:\/\/ps.w.org\/tomatoshift-image-uploader-figma\/assets\/screenshot-6.png?rev=3643006","caption":"Title and alt text set in Figma are carried over to the attachment."}],"raw_content":"<!--section=description-->\n<p><strong>Send images from Figma straight to WordPress.<\/strong> tomatoSHIFT Image Uploader for Figma is the WordPress half of a two-part tool: select layers in the <a href=\"https:\/\/tomatoshift.com\/\">Figma plugin<\/a>, hit upload, and the images land in your Media Library. No exporting to your Downloads folder, no drag and drop, no renaming files.<\/p>\n\n<p>The plugin adds a REST endpoint protected by an API key you generate in WordPress. Nothing else is exposed, and the plugin makes no outbound requests of its own.<\/p>\n\n<p>Key features:<\/p>\n\n<ul>\n<li><strong>Figma to WordPress in one click<\/strong> \u2014 no manual export, download or upload step<\/li>\n<li><strong>Bulk upload<\/strong> \u2014 send a whole batch of selected layers at once<\/li>\n<li><strong>PNG, JPG and WebP<\/strong> \u2014 the Figma plugin resizes, compresses and converts before sending, so what reaches your Media Library is already web-ready<\/li>\n<li><strong>Alt text and titles carried over<\/strong> \u2014 set them in Figma, keep them on the attachment<\/li>\n<li><strong>Secure API key authentication<\/strong> with constant-time comparison<\/li>\n<li><strong>No third-party service<\/strong> \u2014 images go from Figma to your own site<\/li>\n<\/ul>\n\n<p>Typical uses: shipping design assets to a blog post, keeping a landing page in sync with the Figma file, or handing a client site a batch of optimized WebP images without leaving the design tool.<\/p>\n\n<p>Figma is a trademark of Figma, Inc. This plugin is developed by <a href=\"https:\/\/tomatoshift.com\/\">tomatoSHIFT<\/a> and is not affiliated with, sponsored by or endorsed by Figma, Inc.<\/p>\n\n<p>Figma is a trademark of Figma, Inc. This plugin is developed by tomatoSHIFT and is not affiliated with, sponsored by or endorsed by Figma, Inc.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to the <code>\/wp-content\/plugins\/<\/code> directory, or install the ZIP via Plugins &gt; Add New.<\/li>\n<li>Activate the plugin through the Plugins menu in WordPress.<\/li>\n<li>Go to Settings &gt; tomatoSHIFT Image Uploader for Figma and click Generate API Key.<\/li>\n<li>Paste the API key into the Figma plugin settings under WordPress API Key.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"can%20i%20upload%20images%20from%20figma%20as%20webp%3F\"><h3>Can I upload images from Figma as WebP?<\/h3><\/dt>\n<dd><p>Yes. Pick WebP in the Figma plugin and the image is converted before it is sent; WordPress receives a finished .webp file. JPG and PNG work the same way. Allowed types are filterable via <code>fig2wp_allowed_mimes<\/code>.<\/p><\/dd>\n<dt id=\"can%20i%20upload%20several%20figma%20layers%20at%20once%3F\"><h3>Can I upload several Figma layers at once?<\/h3><\/dt>\n<dd><p>Yes. Select any number of layers on the canvas and they upload as one batch.<\/p><\/dd>\n<dt id=\"do%20i%20need%20to%20export%20from%20figma%20first%3F\"><h3>Do I need to export from Figma first?<\/h3><\/dt>\n<dd><p>No. That is the point of the plugin \u2014 there is no download, no Finder detour and no drag and drop into the Media Library.<\/p><\/dd>\n<dt id=\"how%20do%20i%20get%20the%20api%20key%3F\"><h3>How do I get the API key?<\/h3><\/dt>\n<dd><p>Go to Settings &gt; tomatoSHIFT Image Uploader for Figma and click Generate API Key. Copy it into the Figma plugin.<\/p><\/dd>\n<dt id=\"what%20endpoint%20does%20the%20plugin%20expose%3F\"><h3>What endpoint does the plugin expose?<\/h3><\/dt>\n<dd><p>POST <code>\/wp-json\/tomatoshift\/v1\/upload-images<\/code>, or <code>?tomatoshift_upload=1<\/code> on the site root for hosts whose anti-bot layer blocks <code>\/wp-json\/<\/code> paths.<\/p><\/dd>\n<dt id=\"is%20any%20external%20service%20used%3F\"><h3>Is any external service used?<\/h3><\/dt>\n<dd><p>No. The plugin makes no outbound requests; it only accepts uploads sent to your own WordPress site.<\/p><\/dd>\n<dt id=\"which%20origins%20may%20call%20the%20upload%20endpoint%20from%20a%20browser%3F\"><h3>Which origins may call the upload endpoint from a browser?<\/h3><\/dt>\n<dd><p>Only the Figma plugin. Cross-origin requests from anywhere else receive no CORS header and are blocked by the browser. The list is filterable via <code>fig2wp_allowed_origins<\/code>.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Renamed the plugin to \"tomatoSHIFT Image Uploader for Figma\". Settings moved to Settings &gt; tomatoSHIFT Image Uploader for Figma.<\/li>\n<li>The upload endpoint is now <code>\/wp-json\/tomatoshift\/v1\/upload-images<\/code> and <code>?tomatoshift_upload=1<\/code>. The Figma plugin updates itself to match, so no reconnection is needed.<\/li>\n<li>Removed an unnecessary include of <code>wp-admin\/includes\/media.php<\/code>; the remaining core includes now sit immediately before the function they load.<\/li>\n<\/ul>\n\n<h4>1.1.2<\/h4>\n\n<ul>\n<li>Admin styles and scripts are now enqueued from separate files instead of being printed inline.<\/li>\n<li>All user-facing strings are now translatable.<\/li>\n<li>The upload endpoint no longer reflects arbitrary CORS origins \u2014 only the Figma plugin is allowed, filterable via <code>fig2wp_allowed_origins<\/code>.<\/li>\n<li>Removed an unused settings registration.<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Fixed a false \"the older Fig2WP Image Uploader plugin is still active\" error that could appear after the old plugin had already been removed. The 1.1.0 duplicate-class guard is gone; the class is simply named differently now, so the two versions can no longer collide.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Renamed the plugin to \"Image Uploader for Figma\" to meet WordPress.org naming rules. Settings moved to Settings &gt; Image Uploader for Figma.<\/li>\n<li>Upgrading from 1.0.x: the plugin folder changed, so this installs alongside the old \"Fig2WP Image Uploader\" instead of replacing it. Deactivate and delete the old plugin first. Your API key, uploaded media and Figma plugin connection are unaffected.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Improved upload reliability on hosts with anti-bot protection (e.g. SiteGround).<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Upload images from Figma to the WordPress Media Library in one click \u2014 bulk export as PNG, JPG or WebP, no manual downloading.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/351127","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=351127"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/tomatoshift"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=351127"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=351127"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=351127"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=351127"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=351127"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=351127"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}