Import a Google Fonts family
const url = 'http://localhost:3000/api/v1/fonts/google';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"family":"example","fields":{"additionalProperty":"example"},"collections":["2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"],"tags":["example"]}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url http://localhost:3000/api/v1/fonts/google \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "family": "example", "fields": { "additionalProperty": "example" }, "collections": [ "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ], "tags": [ "example" ] }'One asset per style the family has (up to 9 weights, roman and italic), as whole TTF files. Fetched once and served from /a/{id} after, so nobody’s browser calls Google. Styles already here dedupe.
Scope: propose.
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”object
As Google Fonts names it
Custom field values, keyed by field key
object
Examplegenerated
{ "family": "example", "fields": { "additionalProperty": "example" }, "collections": [ "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ], "tags": [ "example" ]}Responses
Section titled “Responses”The family’s styles, lightest first, roman before italic
object
As Google names it
object
The asset’s own values
object
Values inherited from its collections; own values win
object
Draft, proposed (in review), active (approved), archived or rejected
The status; expired for an approved asset past its last day of use; deleted, until restored or purged
Its stack’s current approved version: the others are superseded by it
For a proposal: who made it, a person’s or an API key’s name
Why a person rejected it
Custom field values an agent suggested, waiting for a person to accept or dismiss
object
object
ISO 3166-1 alpha-2; empty: anywhere
Empty: any use
Set by a person; null or missing follows the license (see downloadable on its description)
object
The app that signed it
The signing certificate’s organization, as the file claims it; not verified
IPTC: digitalCapture, trainedAlgorithmicMedia…
The tool the actions name, often the model
Its own flag; it is private too when every collection it is in is
Served at /a/{id} to anyone while it may be used; otherwise to people who can see it, and signed URLs
Example
{ "data": [ { "status": "draft", "state": "draft", "rights": { "modelRelease": "released" }, "origin": "shot", "via": "agent" } ]}default
Section titled “default”An error
object
object
Examplegenerated
{ "error": { "code": "example", "message": "example", "detail": "example" }}