Complete documentation for the wonderful and powerful Daisy API. Connect your PSDs to the internet and do wonderful things... Daisy can save out JPEG and PNG files (even with transparency). If you'd like to save PDFs, let us know and we'll enable that for you. If we're missing something obvious, please let us know- we're happy to add new features.
Daisy accepts POST or GET requests. Binary data submitted
via POST will be discarded, and keep in mind all requests should be
URL encoded. The base URL for all Daisy API calls:
http://api.daisyapi.com/v1/
Every Daisy API call must include at least 2 things. Your appid
and a method. You will get your appid when you upload
your PSD (it will also be emailed to you). We will also email you a copy for safekeeping.
Treat your appid like a password. The appid is a reference
to your Photoshop® file. It is a unique string that makes calls to your Photoshop®
file unique.
http://api.daisyapi.com/v1/?appid=3c65f904-0c4d-49b6-b3d4-e79fd112cf2e
In addition to your appid, every API call must also include a method.
There is currently one: singleimage.
motoimage makes a new image from your template PSD file. Daisy will create a file name for you if you don't specify one, and it will automatically be saved to our Amazon S3 storage. A URL of the image will be returned.
http://api.daisyapi.com/v1/?method=singleimage&appid=3c65f904-0c4d-49b6-b3d4-e79fd112cf2e
By default Daisy will return a clickable link to preview your image. You can explicitly
set this by setting the preview method to true. This is helpful if
you're new to APIs and want to quickly try different API calls and see the results.
preview (Boolean true or false. Defaults to true)
Once you take your Daisy appid into production, you'll most likely
want Daisy to return only the URL of the new image. If you'd like to get just the
new image URL as a plain text string, set the preview method to
false.
http://api.daisyapi.com/v1/?method=singleimage&appid=3c65f904-0c4d-49b6-b3d4-e79fd112cf2e &preview=true
One of the cool ways of putting Daisy to work is to replace text within your file.
In order to replace text, you have to flag it as dynamic within your Photoshop®
file by surrounding your text with *| |*. That text becomes a method
in your api call. Check the Videos page under Support for a more thorough explanation.
By the way, Daisy will look within smart objects for Text layers
to change, so feel free to nest your smart layers. Even if the text is within 15
nested smart layers, Daisy will still be able to find it.
Dynamic Text (text in PSD surrounded by *| |*)
In this PSD, I have marked a text layer as dynamic by surrounding JERSEYNAME with *| |*.

I can now change that text like this:
http://api.daisyapi.com/v1/?method=singleimage &appid=3c65f904-0c4d-49b6-b3d4-e79fd112cf2e &JERSEYNAME=CONRAD%20BAIN
Daisy will output a new image that looks like this:

The dynamic text fields are case-sensitive, and don't put the *| |* in the field name, just the text itself. The text can anywhere within a larger block of text, even on separate layers:

I can now change that text like this:
http://api.daisyapi.com/v1/?method=singleimage &appid=3c65f904-0c4d-49b6-b3d4-e79fd112cf2e &name=Conrad&gender=him
Daisy will output a new image that looks like this:

As long as the type is live, i.e. not rasterized, Daisy can change the text and save a new image.
When designing your Photoshop® file, it is best to draw a rectangle with the Text tool, specifying the exact bounds of the Text Box, rather than letting text extend off the end of an image. If you click the Canvas with the Type tool and start typing, Photoshop® will not know when to wrap your text. Text Boxes can have as many dynamic text elements as you wish- there is no limit there.
Daisy will look within smart objects for Text layers to change, so feel free to nest your smart layers. Even if the text is within 15 nested smart layers, Daisy will still be able to find it.
Daisy has licenses for most common typefaces (over 1,200). Here is a list of fonts currently licensed and in our system. If your application uses a font that we do not support, please get in touch and I’ll try and work something out.
Daisy makes it easy to change out a layer with another image (JPEG or PNG). In order to replace a layer with another image, you must convert that layer to a Smart Layer before saving the .PSD to Daisy. Within Photoshop®, you can add filters and transformations to the Smart Layer and Daisy will be able to replicate those edits onto the new, incoming image.
You specify the layername and a replace method, then a URL of the image
you wish to insert. That image must be on the web and accessible by anyone.
In this API call, Daisy will replace the contents of Layer1 (assuming it is a Smart
Layer) with the image specified. Because the replace method is replace.scalewidth,
Daisy will match the width of the incoming image with the contents of the Smart
Layer. It will ignore whatever happens to the height. Here's the original PSD:

The logo is on a Smart Layer called layer1, so here is the API call to replace that image with a new one.
http://api.daisyapi.com/v1/?method=singleimage &appid=3c65f904-0c4d-49b6-b3d4-e79fd112cf2e &layer1.replace.scalewidth=http://www.mydomain.com/daisylogo.png.
Here is the image Daisy creates:

replace.noscale (URL of publicly accessible JPEG or PNG, 2MB file size limit)
Name the layer, add the dot method and specify the URL of the file. Make sure it
is accessible to anyone (paste the link in your browser and make sure you can see
it). replace.noscale will not attempt to match the Smart Object layer
size, but will use the incoming source image as is. See replace notes above for
a more thorough explanation.
http://api.daisyapi.com/v1/?method=singleimage&appid=3c65f904-0c4d-49b6-b3d4-e79fd112cf2e &layername.replace.noscale=http://www.mydomain.com/sampleimage.jpg
replace.scaleheight (URL of publicly accessible JPEG or PNG, 2MB file size limit)
Name the layer, add the dot method and specify the URL of the file. Make sure it
is accessible to anyone (paste the link in your browser and make sure you can see
it). replace.scaleheight will scale the height of the incoming image
to match the specified smart object layer. The width will be scaled proportionally
so that no stretching occurs. See replace notes above for a more thorough explanation.
http://api.daisyapi.com/v1/?method=singleimage&appid=3c65f904-0c4d-49b6-b3d4-e79fd112cf2e &layername.replace.scaleheight=http://www.mydomain.com/sampleimage.jpg
replace.scalewidth (URL of publicly accessible JPEG or PNG, 2MB file size limit)
Name the layer, add the dot method and specify the URL of the file. Make sure it
is accessible to anyone (paste the link in your browser and make sure you can see
it). replace.scalewidth will scale the width of the incoming image
to match the specified smart object layer. The height will be scaled proportionally
so that no stretching occurs. See replace notes above for a more thorough explanation.
http://api.daisyapi.com/v1/?method=singleimage&appid=3c65f904-0c4d-49b6-b3d4-e79fd112cf2e &layername.replace.scalewidth=http://www.mydomain.com/sampleimage.jpg
replace.scaleboth (URL of publicly accessible JPEG or PNG, 2MB file size limit)
Name the layer, add the dot method and specify the URL of the file. Make sure it
is accessible to anyone (paste the link in your browser and make sure you can see
it). replace.scaleboth will scale the both the width and height of
the incoming image to match the specified smart object layer. If the height to width
ratio of the two images are different, stretching will occur. In other words, make
sure the images are similar aspect ratios before using scaleboth. See replace notes
above for a more thorough explanation.
http://api.daisyapi.com/v1/?method=singleimage&appid=3c65f904-0c4d-49b6-b3d4-e79fd112cf2e &layername.replace.scaleboth=http://www.mydomain.com/sampleimage.jpg
There are four replace methods, all of which you must specify a publicly accessible JPEG or PNG file: replace.noscale, replace.scaleheight, replace.scalewidth, and replace.scaleboth. Anything in your SmartObject will be replaced by the JPEG or PNG you specify, so make sure you don't have text or any other artwork within the SmartObject you will be replacing. Keep in mind, you can nest SmartObjects inside of other SmartObjects. That should help keep things organized.
You can use images created by the
Google Image Charts API directly in your Daisy Apps. Rather than supplying
the URL of an image in a replace API call, simply supply the API call
to Google Charts of the image you wish to create. Daisy will create the image, download
the image, and use it as the source file for the Smart Ojbect Layer in your PSD.
Like all other Daisy parameters, it must be URL encoded.
replace.googlechartsapi (URL-encoded Google charts API call)
http://api.daisyapi.com/v1/?method=singleimage &appid=3c65f904-0c4d-49b6-b3d4-e79fd112cf2e &layername.replace.scaleboth=https%3A%2F%2Fchart.googleapis.com%2Fchart%3Fcht%3Dp3%26chd%3Dt%3A60%2C40%26chs%3D250x100%26chl%3DHello%7CWorld%0A
Daisy will look for chart.apis.google.com or chart.googleapis.com within your replace parameter. If your Google URL doesn't contain a URL-encoded version of one of these, it won't work.
Often times, a Solid Color Fill Layer makes colorizing things more easy than the
color overlay. Daisy makes it easy to change the color of a Solid Color Fill Layer.
All you do is name the layer and add the .solidcolorfill operator.
You can not add a Solid Color Fill Layer to a layer with Daisy.
You need to create this layer in advance, before saving the PSD into Daisy. You
can change the opacity of the color effect by adjusting the layer opacity as if
it were a normal art layer.
solidcolorfill (URL encoded hex color)
http://api.daisyapi.com/v1/?method=singleimage &appid=3c65f904-0c4d-49b6-b3d4-e79fd112cf2e &layername.solidcolorfill=%23FF00FF
When you specify .coloroverlay for a layer, it has the effect of adding a Color Overlay Layer Effect. This is different from the Solid Color Fill, where you have to create the layer in advance. All you need to do is specify the color (in hex). Many people have trouble using a color overlay to colorize things in Photoshop® because they neglect to turn the Fill Opacity of the layer to 0%. Without that step, you are combining essentially two layers together, though in the Layers Palette they appear as one. When the Fill Opacity of the layer is set to 0%, the Blending Mode of that layer becomes meaningless. Consequently, the blend mode of the Color Overlay property becomes more important. Given that, sometimes the Solid Color Fill Layer is an easier choice.
coloroverlay.color (URL encoded hex color, must also include coloroverlay.opacity)
http://api.daisyapi.com/v1/?method=singleimage &appid=3c65f904-0c4d-49b6-b3d4-e79fd112cf2e
&layername.coloroverlay.color=%23FF00FF &layername.coloroverlay.opacity=100
coloroverlay.opacity (number between 0 and 100, always included with coloroverlay.color)
http://api.daisyapi.com/v1/?method=singleimage
&appid=3c65f904-0c4d-49b6-b3d4-e79fd112cf2e
&layername.coloroverlay.color=%23FF00FF
&layername.coloroverlay.opacity=35
You can change the output size of your image by setting it's width and/or height properties. If you only set one, Daisy will adjust the other proportionally. You can set the quality of the output, if it's a .jpg. You can also name the outputfile if you like. Otherwise Daisy will name it for you.
height (number between 1 and 2000)
Height allows you to resize the height of the image in pixels. If you set only this, Daisy will adjust the width proportionally.
http://api.daisyapi.com/v1/?method=singleimage &appid=3c65f904-0c4d-49b6-b3d4-e79fd112cf2e &height=400
width (number between 1 and 2000)
Width allows you to resize the width of the image in pixels. If you set only width, Daisy will adjust the height proportionally.
http://api.daisyapi.com/v1/?method=singleimage &appid=3c65f904-0c4d-49b6-b3d4-e79fd112cf2e &width=400&height=200
quality (number between 1 and 12)
Daisy automatically saves your output as .jpg with a quality setting of 7. If you want to save at a higher or lower quality setting, use the quality method to set this value.
http://api.daisyapi.com/v1/?method=singleimage &appid=3c65f904-0c4d-49b6-b3d4-e79fd112cf2e &quality=12&width=400&height=200
outputfilename (string ending with either ".jpg" or ".png", 240 chars max)
Daisy automatically names your output with a GUID, or a unique name.
If you'd like to name the output yourself, you can specify it with this method.
Also, if you'd like to save your output as a .png, set your outputfilename to include
a .png extension, and Daisy will save it as a .png. Daisy will
save over any image with the same name.
http://api.daisyapi.com/v1/?method=singleimage
&appid=3c65f904-0c4d-49b6-b3d4-e79fd112cf2e
&width=400&height=200&outputfilename=myuniqueimagename.png
With Daisy, you can manipulate layers to help customize your new image. Reference a layer by it's name, so be sure layer names are unique. Then add a dot and operator after the layername.
opacity (number between 1 and 100)
Specify the layername with .opacity and you can set the opacity of that layer.
http://api.daisyapi.com/v1/?method=singleimage &appid=3c65f904-0c4d-49b6-b3d4 -e79fd112cf2e &layername.opacity=57
visible (boolean true or false)
Specify the layername with .visible and you can set the visibility of that layer.
http://api.daisyapi.com/v1/?method=singleimage &appid=3c65f904-0c4d-49b6-b3d4-e79fd112cf2e &layername.visible=false
resize (number between 0 and 1000)
Specify the layername with .resize and you can change the scale of that layer. 100 would not change the layer size, 200 would double the size and 50 halve the size.
http://api.daisyapi.com/v1/?method=singleimage &appid=3c65f904-0c4d-49b6-b3d4-e79fd112cf2e &layername.resize=300
rotate (number between -6400 and 6400)
Specify the layername with .rorate and you can change the rotation of that layer, in degrees.
http://api.daisyapi.com/v1/?method=singleimage &appid=3c65f904-0c4d-49b6-b3d4-e79fd112cf2e &layername.rotate=180
Images are saved to Daisy's Amazon S3 storage. You can save them to your own Amazon S3 account by specifying your Amazon Web Services ID, secret key and bucket name. If you don't specify your own S3 account, I will save the images to our own account.
Keep in mind, you can set your S3 credentials here and avoid sending them through the API.
s3awsid (The Amazon Web Services ID for your account)
s3awssecretkey (The Amazon Web Services Secret Key for your account)
s3bucketname (The name of your S3 bucket you want these files written to)
&s3awsid=111111 &s3awssecretkey=11111 &s3bucketname=daisypics
Some AWS credentials, especially the Secret Access Key contain the '+' character. This character must be encoded with the %2B character instead. Web browsers and other web-based technologies interpret the '+' character as a space and it will cause your API request to fail.
If you'd like to save them to a particular folder within your S3 bucket, add the
folder name to the outputfilename argument and Daisy will create a
new folder if there's not already one there, or save the image into that folder:
http://api.daisyapi.com/v1/?method=singleimage &appid=3c65f904-0c4d-49b6-b3d4-e79fd112cf2e &outputfilename=MyDaisyImages/newimage001.jpg &3awsid=111111 &s3awssecretkey=11111 &s3bucketname=daisypics
Your bucket names can not contain '.' or periods in them. Amazon has a security limitation when writing to buckets from different regions than they were created that will prevent Daisy from accessing those buckets.
Daisy has integrations with a couple of email marketing vendors, namely MailChimp
and Campaign Monitor. These tools allow you to connect your appid with
an email marketing database and create personalized images for each person on your
email lists. Once Daisy has created the images, it writes the new URL of each image
back into the database, so that when you create your email campaign, each person
will get the image Daisy created just for them.
Though each email marketing platform is slightly different, the process in Daisy works the same for both vendors:
In Photoshop®, you mark fields as being dynamic by wrapping text with *| |*. When working with email marketing vendors, Daisy will look for certain dynamic text fields and match them with the data found on your email database:
These are the 4 dynamic text fields Daisy will attempt to match against your email database. These are case-sensitive fields, and in your Photoshop® file must be wrapped by *| |* for Daisy to recognize them as dynamic text. For each person on your mailing list, Daisy will create a new image, just for them. It will look for a match between your .PSD and your database. If you have a text layer containing *|firstname|*, Daisy will replace that text with the first name of each person on your mailing list.
YoYou can replace Smart Object Layer sources in your PSD from URLs in your email marketing database. All you have to do is name the Smart Object Layer the same thing as database column/field/mergetag.
For instance, I might have a custom field called customerpicture, ,
which contains URLs of each customer.


If I name a Smart Object layer customerpicture, Daisy will attempt
to replace that layer with the URL specified in the database.


Now that we have a Custom Field in our email database called customerpicture, and
a Smart Object Layer in our .PSD called customerpicture, Daisy will
replace the contents of the Smart Object with the URL listed in the customerpicture
field (assuming it contains valid, publicy accesible URLs of jpegs or pngs.
You can affect the speed at which Daisy is able to work with your PSD by doing a couple of things:
Doing these things can reduce your file size from 10MB to 800k, which will give you much greater performance with your PSD.
This is a list of features proposed by the Daisy community. If you can think of one, add it at the form towards the bottom of this page.
(flipimage) horizontal or vertical
This will allow you to flip an entire image either vertically or horizontally. Not application to layers.
http://www.daisyapi.com/api/v1/?method=singleimage&appid=21341234
(rotateimage) 90, 180 or 270
This allows you to spin your image in increments of 90 degrees
http://www.daisyapi.com/api/v1/?method=singleimage&appid=21341234
(scaledown) number between 1 and 400
This allows you to scale and go crazy
http://www.daisyapi.com/api/v1/
(iceberg) number between 5 and 10
This is a short description of how the feature should work.
http://www.daisyapi.com/api/v1/?method=singleimage&appid=35234509324589
Click here to write the documentation for a feature you'd like to see. You'll need the method name, the parameters needed, a description of how it works, and an example of how the relevant parts of the API call might appear