(this is a crosspost from the API forum, after investigating more I'm convinced this is an API bug) Text objects aren't getting their dimensions set like other objects. Symptoms: When creating a text object, width and height default to 0, despite the fact the text object has non-zero dimensions. Setting the width and height parameters in createObj or manually with .set() has no effect Since 'left' and 'top' are calculated based on the center of the text, it's virtually impossible to correctly position arbitrary sized text objects without knowing their dimensions on screen. Manually rotating a text object (using the rotate handle) causes the dimensions to be available via the API. But when you set the rotation with the API, the dimensions are never updated and remain 0. Consequence: As it stands positioning text objects with the API is impossible because of their variable width and the fact the coordinates are zeroed on the center of the object.