Everything Fonts Font API gives you API access to font. You can get all the details about font upto the individual glyph level and do amazing things with it. This is a first of its kind..
http://font.rest/
Currently we support API Key based authentication. Please set a request header 'X-EverythingFonts-Api-Secret' with value of your API key. Alternatively you can also pass api_key= as a request parameter, though we strongly discourage this mode of passing the key.
To do any operations on a font file it has to be added to our system first. This will exist in your account and no one else can see or access this resource. Once you add the file you can refer to the font using the id returned from the API call.
Add the font to the system.
ParametersParameter Name | Parameter Type | Description |
---|---|---|
font | binary | Font file to upload. |
To add a font to the system do a post with the font file attached to the following url.
http://font.rest/font.json
Here is an example of adding a font using CURL to post to the API
curl -v -i -X POST -H 'X-EverythingFonts-Api-Secret: <api_key>' -F font=@myraid.ttf http://font.rest/font.json
The above call if successful will return a json response something like this.
{ "success": { "total": 1 }, "contents": { "id": "BMruFarhaMcvj6oGeAb62itgeF" } }The id in the contents is the font id that you should use in any of the subsequent calls.
To list the fonts in the system use the following API.
http://font.rest/font/list.json
By using the parameter "start" you can browse all the fonts(that you have added before) in the system. Use the parameter "public" to control whether to include public fonts or not in your list.
http://font.rest/font/list.json?start=10&public=0
Here is an example of listing the fonts using curl.
curl -X GET -H 'X-Everythingfonts-Api-Secret:' "http://font.rest/font/list?start=10&public=0"
The above command will return a result something like the following.
{ "success": { "total": "75", "count": 11, "range": { "start": 10, "end": 21 } }, "contents": { "contents": [ { "name": "IM FELL French Canon PRO Regular", "id": "RQMdiZs_C7IdyHPBV_FpGAeF", "private": "1", "created_on": "2014-12-18 19:20:23" }, { "name": "IM FELL French Canon PRO Italic", "id": "i79KlUe2mpnLKg2I9kAWIAeF", "private": "1", "created_on": "2014-12-18 19:20:23" } ... ] } }
To get the name of the font use the following API.
http://font.rest/font/{id}/name.json
The above outputs something like this.
{ "success": { "total": 1 }, "contents": { "font": { "id": "wWCRzGGtEeKR21DlSVDSjg", "name": "FreeMono Gras Italique" } } }
To get the details about a font use the following API.
http://font.rest/font/{id}
Here is an example using curl:
curl -X GET -H 'X-Everythingfonts-Api-Secret: <api_key>' http://font.rest/font/wWCRzGGtEeKR21DlSVDSjg
The above call will produce something like the following:
{ "success": { "total": 1 }, "contents": { "font": { "id": "wWCRzGGtEeKR21DlSVDSjg", "name": "FreeMono", "subfamily": "Gras Italique", "uniqueid": "GNU: FreeMono Bold Oblique: 2012", "fullname": "FreeMono Gras Italique", "combined_fullname": "FreeMono Gras Italique", "postscriptname": "FreeMonoBoldOblique", "total_glyphs": "1796", "version": "Version 0412.2261", "private": "0", "description": null } } }
To get the license text of the font use the following API.
http://font.rest/font/{id}/license.json
The above outputs something like this.
{ "success": { "total": 1 }, "contents": { "font": { "id": "wWCRzGGtEeKR21DlSVDSjg", "license": "This computer font is part of GNU FreeFont. It is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\n\nThis font is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License along with this font. If not, see \n http://www.gnu.org/licenses/\n\nAs a special exception, if you create a document which uses this font, and embed this font or unaltered portions of this font into the document, this font does not by itself cause the resulting document to be covered by the GNU General Public License. This exception does not however invalidate any other reasons why the document might be covered by the GNU General Public License. If you modify this font, you may extend this exception to your version of the font, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version." } } }
To get the unicode coverage details use the following API.>
http://font.rest/font/wWCRzGGtEeKR21DlSVDSjg/coverage.json
Here is an example using curl:
curl -X GET -H 'X-Everythingfonts-Api-Secret: <api_key>' http://font.rest/font/UIl9zhKkoatOka9bE1uIIgeF/coverage.json
The above call will produce something like the following:
{ "success": { "total": 1 }, "contents": { "font": { "id": "UIl9zhKkoatOka9bE1uIIgeF", "coverage": [ { "name": "Alphabetic Presentation Forms", "coverage": "2", "total": "80", "percent": "3", }, { "name": "Basic Latin", "coverage": "95", "total": "128", "percent": "74", },... ] } } }
To get the files associated with the font use the following API.
http://font.rest/font/{id}/files.json
Here is an example using curl:
curl -X GET -H 'X-Everythingfonts-Api-Secret: <api_key>' http://font.rest/font/upvXilxcEeKpxVDlSVDSjg/files.json
The above outputs something like this.
{ "success": { "total": 2 }, "contents": { "files": [ { "name": "SourceSansPro-Regular.otf", "version": "1", "id": "upvXilxcEeKpxVDlSVDSjg", "links": { "rel": "self", "href": "/font/upvXilxcEeKpxVDlSVDSjg/file/upvXilxcEeKpxVDlSVDSjg" } }, { "name": "SourceSansPro-Regular.ttf", "version": "1", "id": "Ob70czrseGHeCn5f_Y3jSgeF", "links": { "rel": "self", "href": "/font/upvXilxcEeKpxVDlSVDSjg/file/Ob70czrseGHeCn5f_Y3jSgeF" } } ] }
To get the details about a single font file associated with the font use the following API.
http://font.rest/font/{id}/file/{fileid}
Here is an example using curl:
curl -X GET -H 'X-Everythingfonts-Api-Secret: <api_key>' http://font.rest/font/upvXilxcEeKpxVDlSVDSjg/file/UIl9zhKkoatOka9bE1uIIgeF
The above outputs something like this.
{ "success": { "total": 1 }, "contents": { "name": "myriad.ttf", "version": "1", "id": "UIl9zhKkoatOka9bE1uIIgeF", "links": [ { "rel": "self", "href": "/font/UIl9zhKkoatOka9bE1uIIgeF/file/UIl9zhKkoatOka9bE1uIIgeF" }, { "rel": "download", "href": "https://everythingfonts.com/font/download/UIl9zhKkoatOka9bE1uIIgeF" } ] } }
To get the preview image of the font use the following API with a parameter "type" set to "preview" as a value.
http://font.rest/font/{id}/image.json
Here is an example using curl:
curl -X GET -H 'X-Everythingfonts-Api-Secret: <api_key>' http://font.rest/font/UIl9zhKkoatOka9bE1uIIgeF/image.json?binaryresult=0&type=preview
The above outputs something like this. If you want to download the image as a binary instead of a base64 encoded json payload set the option "binaryresult" to 1.
{ "success": { "total": 1 }, "contents": { "font": { "id": "UIl9zhKkoatOka9bE1uIIgeF", "image": { "type": "preview", "format": "png", "image": "iVBORw0KGgoAAAANSUhEUgAAAlgAAAAyCAIAA...." } } } }
The above call will produce an image like this.
To get the preview image of the font use the following API with a parameter "type" set to "bigpreview" as a value.
http://font.rest/font/{id}/image.json
Here is an example using curl:
curl -X GET -H 'X-Everythingfonts-Api-Secret: <api_key>' http://font.rest/font/UIl9zhKkoatOka9bE1uIIgeF/image.json?binaryresult=0&type=bigpreview
The above outputs something like this. If you want to download the image as a binary instead of a base64 encoded json payload set the option "binaryresult" to 1.
{ "success": { "total": 1 }, "contents": { "font": { "id": "UIl9zhKkoatOka9bE1uIIgeF", "image": { "type": "bigpreview", "format": "png", "image": "iVBORw0KGgoAAAANSUhEUgAAAlgAAAAyCAIAA...." } } } }
The above call will produce an image like this.
To get the waterfall preview of the font use the following API with a parameter "type" set to "waterfall" as a value.
http://font.rest/font/{id}/image.json
Here is an example using curl:
curl -X GET -H 'X-Everythingfonts-Api-Secret: <api_key>' http://font.rest/font/UIl9zhKkoatOka9bE1uIIgeF/image.json?binaryresult=0&type=waterfall
The above outputs something like this. If you want to download the image as a binary instead of a base64 encoded json payload set the option "binaryresult" to 1.
{ "success": { "total": 1 }, "contents": { "font": { "id": "UIl9zhKkoatOka9bE1uIIgeF", "image": { "type": "waterfall", "format": "png", "image": "iVBORw0KGgoAAAANSUhEUgAAAlgAAAAyCAIAA...." } } } }
The above call will produce an image like this.
To get the contact sheet of the font use the following API with a parameter "type" set to "contact" as a value.
http://font.rest/font/{id}/image.json
Here is an example using curl:
curl -X GET -H 'X-Everythingfonts-Api-Secret: <api_key>' http://font.rest/font/_PP8EirSJeIDLcC0uh5R3weF/image.json?binaryresult=0&type=contact
The above outputs something like this. If you want to download the image as a binary instead of a base64 encoded json payload set the option "binaryresult" to 1.
{ "success": { "total": 1 }, "contents": { "font": { "id": "_PP8EirSJeIDLcC0uh5R3weF", "image": { "type": "contact", "format": "png", "image": "iVBORw0KGgoAAAANSUhEUgAAAlgAAAAyCAIAA...." } } } }
The above call will produce an image like this.
http://font.rest/font/{fontid}/glyph/list
By using the parameter "start" you can browse all the glyphs of the font. Here is an example using curl.
curl -X GET -H 'X-Everythingfonts-Api-Secret: <api_key>' http://font.rest/font/wWCRzGGtEeKR21DlSVDSjg/glyph/list.json?start=200
The above will output something list the following:
{ "success": { "total": 1796, "range": { "start": 200, "end": 300 } }, "contents": { "font": { "id": "wWCRzGGtEeKR21DlSVDSjg", "glyphs": [ { "id": 0, "type": "simple", "name": ".notdef", "char": "", "SVG": { "SVGContours": "M608,450 Q608,405,592,369 Q576,333,544, 307 Q512,281,480,264 Q448,247,401,228 Q383,174,339,174 Q323,174,311,185 Q299,19 6,299,211 Q299,216,304,240 L315,296 Q428,336,467,363 Q506,390,506,428 Q506,461, 482,479.5 Q458,498,415,498 Q358,498,304,474 L301,460 Q288,409,260,398 Q249,394, 237,394 Q220,394,208.5,404.5 Q197,415,197,431 Q197,443,201,460 L218,539 Q300,57 4,343.5,586 Q387,598,436,598 Q516,598,562,558.5 Q608,519,608,450 z M308,-15 L29 0,-15 Q266,-15,251,0 Q236,15,236,38 Q236,68,261.5,92.5 Q287,117,318,117 L336,11 7 Q359,117,374,102.5 Q389,88,389,65 Q389,34,364,9.5 Q339,-15,308,-15 z M-3,-110 L163,673 L723,673 L557,-110 L-3,-110 z M63,-47 L517,-47 L657,610 L203,610 L63, -47 z ", "xMin": -3, "yMin": -110, "xMax": 723, "yMax": 673 } }, ... ] } } }
To get the details about the single glyph use the following api.
http://font.rest/font/{fontid}/glyph/{id}
Here is an example with curl. This will return the details about glyph with glyph id 1624 for font with id wWCRzGGtEeKR21DlSVDSjg.
curl -X GET -H 'X-Everythingfonts-Api-Secret: <api_key>' http://font.rest/font/wWCRzGGtEeKR21DlSVDSjg/glyph/1624
{ "success": { "total": 1 }, "contents": { "font": { "id": "wWCRzGGtEeKR21DlSVDSjg", "glyph": { "id": "1624", "type": "composite", "name": "uni2199", "char": "↙", "SVG": { "SVGContours": [ { "contours": "M325,421 L581,472 L477,227 Q473,216,462.5,208.5 Q452,201,442,201 Q431,201,422.5,209 Q414,217,414,229 Q414,240,424,261 L453,327 L168,92 Q154,80,139,80 Q128,80,120.5,88.5 Q113,97,113,107 Q113,123,131,138 L419,375 L346,360 Q329,356,320,356 Q308,356,300.5,364 Q293,372,293,384 Q293,397,302.5,407.5 Q312,418,325,421 z ", "transform": [ -16384, 0, 0, -16384, 704, 552 ] } ], "xMin": 122, "yMin": 80, "xMax": 592, "yMax": 473 }, "glyphIDs": [ 1622 ] } } } }
You can get an image of an individual glyph in svg or png format. Use the following endpoint:
http://font.rest/font/{fontid}/glyph/{glyphid}/image.json?format=png
Here is an example using curl.
curl -X GET -H 'X-Everythingfonts-Api-Secret: <api_key>' http://font.rest/font/wWCRzGGtEeKR21DlSVDSjg/glyph/100/image.json?format=png
Which will output something like the following:
{ "success": { "total": 1 }, "contents": { "font": { "id": "wWCRzGGtEeKR21DlSVDSjg", "glyph": { "id": "100", "filename": "00a2.png", "content": "iVBORw0KGgoAAAANSUhEUgAAAOAAAAFgAQMAAACYJOfOAAAABlBMVEUAAAD///+l2Z/dAAAEFUlEQVRogd3ZzZG0OAwGYFEc+kgIhEIqmwkOjVAIgSMHCi/gf+mVm+1v6J1dTjP9VNuysDFyk+XXQl34kwQaalXciUjF9cBRw/nAXsPpwE5Dc+BLQ6rgGWwcC8ftxEbB9S2SgksN5/c4YpyeQfMx0h+ihbh/jNt7VO7n5+gmgjLBHkI3v5QZ/xC6mamsz38D3Zzuv4puNQy/B4tF9lW0EPcnsfkAtydR2SLX96jcT4/4UeMxzE2MDcLFo+9VwRfAYL5dgl/07RZoEnYct2Su0xznDJv9mIM5Un79dXyZcKsuYsKtXleOhuOQcOdGfcJVYEd6l/QivcsMZZfUkt4lNaR3meFUQ2kU1yJPbIEgnoQgnoQgnoTQSM1PQhysx6WGOFiqBUvazcwQG9WCpUpmPSojocpI/M2eamhqiHt0qNwTh8owHSrDdDNeGabDuYZTDU0Nsw/6LPQXwy4P78KUg6ZIyYWpob64DRemHJTz9EL2fI4tXY+aOeBQro0Swyo3GYYA4jY1ZWiyQeZ4PftYl7GfAoOF8E8MwbUIw7BeEcNOSWLrwxjjCW2dGLJnOY4UA29q2EIMyaphL/DcdAwPNkcf7JhwF2g5nhvdLkYi8QVxEyPx2B643sBe4LktL2KYEkeB3YGzGKbARmIfscU4SbQ+xIAviefrhxE5eIPGxU9WJshhk3AocHJRYJxdR7TL7Ll53tfwaIvK+thfm/sE4+5SRuxlOI7lHButEBf3wGQvw8VVx7Ic/WHsMM5PYo9x+p04YDT/H0SL7D+N/W9DZTn8KSor+wYqj5obyB9v95E/Ul03fmqKE68hx7FA40tpA6bCFkpphIsfW8A+x8mHH1Bs9jnmyV1DhP6BUeRvDkEEzFNkQhABsyyEHTvDlIU1RhgxDXROOItZZGL4EeNYsvejiDHcBSCvqS9khyzF227CLh8Ix7Zo1WGqDa40bISxSxmQWBYg2Ybu/99JxeK6xqmUejdQq4WreN1PrWK7gRPG/j3OGIf3qJSt11rRCl5bQbc+lTraI858W8Nw9gYxnNoZhL3HCeHgcUY41tB6RPlrA6IUxaNLlKIuIMrCEBBlYYxohGUHrZMSrC3KdxaPLQv/Mh5brthw2YRiLMWZMQ+3+E2HhzvkyMO1ObJwyxNuFhH7bbmMaCxxhq1acA7WMdxhq+Fw16BWA/Lj6wLZWU6JKYM9wBV8MZ02G9GjQFaGxj/YGL+A7DeZryCsNL+CLUZYoz6MsIB9GOcLu9+Dk1hiz6ORq/NLOGJEy/NhhEdI/wQtRHi+9FPICzCP+GTqPvKK8D7yKvSHkJfF97H/GIcajhi392gx7uimFCjK9HxSi+o/X2XiUCHHXsMZ5KB4pI4aruhkINsF5VFF9ioguky4gJOKvwHZLmUtMTimTwAAAABJRU5ErkJggg==" } } } }
1 API Key |
1000 API Calls / day |
Best in class backend tools |
Easy to use REST API |
Immediate provisioning |
1 API Key |
4000 API Calls / day |
Best in class backend tools |
Easy to use REST API |
Immediate provisioning |
1 API Key |
12000 API Calls / day |
Best in class backend tools |
Easy to use REST API |
Immediate provisioning |