Brand kits
Manage the brand kits that set how your outputs look (colours, typefaces, logo and motion), and find and copy the Google fonts a kit can use.
x-api-key<token>A service key (nvs_...) in the x-api-key header. A service key belongs to one organization: an X-Org-Id header is optional and, when sent, must name that organization. This header also accepts any credential the bearer scheme does, and when a request sends both headers, this one is used.
isActive?stringNarrow the list to active (true) or retired (false) kits
"true""false"newsdeskId?stringNarrow the list to kits scoped to this desk, plus every kit scoped to no desk
^[0-7][0-9A-HJKMNP-TV-Z]{25}$The org's brand kits, narrowed by any filters supplied
application/json- response
items*array<>curl -X GET 'https://api.nuvelics.com/api/tenant/v1/brand-kits'{ "items": [ { "id": "string", "orgId": "string", "newsdeskId": "string", "isDefault": true, "isActive": true, "createdAt": "2019-08-24T14:15:22Z", "name": "string", "colors": { "background": "string", "backgroundText": "string", "surface": "string", "surfaceText": "string", "accent": "string", "accentText": "string" }, "typography": { "display": { "source": "google", "fontId": "string", "maxWeight": 400 }, "body": { "source": "google", "fontId": "string", "maxWeight": 400 } }, "logo": { "onLightAssetId": "string", "onDarkAssetId": "string", "cardGroundAssetId": "string", "placement": "topLeft", "marginPct": 0 }, "motion": { "introStingerAssetId": "string", "outroStingerAssetId": "string" }, "captionScrimOpacity": 0, "assetUrls": { "property1": "http://example.com", "property2": "http://example.com" }, "assetContentTypes": {}, "faces": { "display": { "source": "google", "id": "string", "family": "string", "weights": { "min": 0, "max": 0 }, "maxWeight": 400, "url": "http://example.com" }, "body": { "source": "google", "id": "string", "family": "string", "weights": { "min": 0, "max": 0 }, "maxWeight": 400, "url": "http://example.com" } } } ]}x-api-key<token>A service key (nvs_...) in the x-api-key header. A service key belongs to one organization: an X-Org-Id header is optional and, when sent, must name that organization. This header also accepts any credential the bearer scheme does, and when a request sends both headers, this one is used.
application/json- body
name*stringBrand display name, e.g. the masthead
1 <= length <= 120colors*typography*logo*motion*captionScrimOpacity?numberOpacity of the surface panel a caption sits on when composited over footage; text is never set on footage alone
0 <= value <= 10.85newsdeskId*stringNewsdesk identifier
^[0-7][0-9A-HJKMNP-TV-Z]{25}$Brand kit created
application/json- response
id*stringBrand kit identifier
^[0-7][0-9A-HJKMNP-TV-Z]{25}$orgId*stringOwning organization identifier
^[0-7][0-9A-HJKMNP-TV-Z]{25}$newsdeskId*stringDesk this kit is scoped to; null means it is the org's
^[0-7][0-9A-HJKMNP-TV-Z]{25}$isDefault*booleanWhether this is the default kit for its scope
isActive*booleanWhether the kit is offered on the output template picker
createdAt*stringISO 8601 creation timestamp
date-timename*stringBrand display name, e.g. the masthead
1 <= length <= 120colors*typography*logo*motion*captionScrimOpacity*numberOpacity of the surface panel a caption sits on when composited over footage; text is never set on footage alone
0 <= value <= 1assetUrls*Freshly signed, short-lived GET URLs for the kit's assets, keyed by asset id
assetContentTypes?The stored content type of each asset in assetUrls, keyed by asset id
{}faces*The kit's display and body faces, resolved from their references
curl -X POST 'https://api.nuvelics.com/api/tenant/v1/brand-kits' \ -H 'Content-Type: application/json' \ -d '{ "name": "string", "colors": { "background": "string", "backgroundText": "string", "surface": "string", "surfaceText": "string", "accent": "string", "accentText": "string" }, "typography": { "display": { "source": "google", "fontId": "string" }, "body": { "source": "google", "fontId": "string" } }, "logo": { "placement": "topLeft", "marginPct": 0 }, "motion": {}, "newsdeskId": "string"}'{ "id": "string", "orgId": "string", "newsdeskId": "string", "isDefault": true, "isActive": true, "createdAt": "2019-08-24T14:15:22Z", "name": "string", "colors": { "background": "string", "backgroundText": "string", "surface": "string", "surfaceText": "string", "accent": "string", "accentText": "string" }, "typography": { "display": { "source": "google", "fontId": "string", "maxWeight": 400 }, "body": { "source": "google", "fontId": "string", "maxWeight": 400 } }, "logo": { "onLightAssetId": "string", "onDarkAssetId": "string", "cardGroundAssetId": "string", "placement": "topLeft", "marginPct": 0 }, "motion": { "introStingerAssetId": "string", "outroStingerAssetId": "string" }, "captionScrimOpacity": 0, "assetUrls": { "property1": "http://example.com", "property2": "http://example.com" }, "assetContentTypes": {}, "faces": { "display": { "source": "google", "id": "string", "family": "string", "weights": { "min": 0, "max": 0 }, "maxWeight": 400, "url": "http://example.com" }, "body": { "source": "google", "id": "string", "family": "string", "weights": { "min": 0, "max": 0 }, "maxWeight": 400, "url": "http://example.com" } }}x-api-key<token>A service key (nvs_...) in the x-api-key header. A service key belongs to one organization: an X-Org-Id header is optional and, when sent, must name that organization. This header also accepts any credential the bearer scheme does, and when a request sends both headers, this one is used.
The Google font catalog, most popular first, without file URLs
application/json- response
items*array<>curl -X GET 'https://api.nuvelics.com/api/tenant/v1/brand-kits/font-catalog'{ "items": [ { "family": "string", "category": "string", "subsets": [ "string" ], "variable": true, "weights": [ 1 ], "rank": 1 } ]}x-api-key<token>A service key (nvs_...) in the x-api-key header. A service key belongs to one organization: an X-Org-Id header is optional and, when sent, must name that organization. This header also accepts any credential the bearer scheme does, and when a request sends both headers, this one is used.
application/json- body
family*stringFamily name exactly as the font catalog lists it
1 <= length <= 120role*stringWhich kit face the copy is for; picks the weight of a static family
"display""body"The font file a kit face names, copied now or earlier
application/json- response
fontId*stringThe Google font file's id, what a kit's google face references
1 <= lengthfamily*string1 <= lengthweights*url*stringA signed, expiring URL for the file
1 <= lengthcurl -X POST 'https://api.nuvelics.com/api/tenant/v1/brand-kits/fonts/google' \ -H 'Content-Type: application/json' \ -d '{ "family": "string", "role": "display"}'{ "fontId": "string", "family": "string", "weights": { "min": 0, "max": 0 }, "url": "string"}x-api-key<token>A service key (nvs_...) in the x-api-key header. A service key belongs to one organization: an X-Org-Id header is optional and, when sent, must name that organization. This header also accepts any credential the bearer scheme does, and when a request sends both headers, this one is used.
The faces a new kit starts on, each with a signed URL for its file
application/json- response
The kit's display and body faces, resolved from their references
display*body*curl -X GET 'https://api.nuvelics.com/api/tenant/v1/brand-kits/default-faces'{ "display": { "source": "google", "id": "string", "family": "string", "weights": { "min": 0, "max": 0 }, "maxWeight": 400, "url": "http://example.com" }, "body": { "source": "google", "id": "string", "family": "string", "weights": { "min": 0, "max": 0 }, "maxWeight": 400, "url": "http://example.com" }}x-api-key<token>A service key (nvs_...) in the x-api-key header. A service key belongs to one organization: an X-Org-Id header is optional and, when sent, must name that organization. This header also accepts any credential the bearer scheme does, and when a request sends both headers, this one is used.
id*stringBrand kit identifier
^[0-7][0-9A-HJKMNP-TV-Z]{25}$The brand kit.
application/json- response
id*stringBrand kit identifier
^[0-7][0-9A-HJKMNP-TV-Z]{25}$orgId*stringOwning organization identifier
^[0-7][0-9A-HJKMNP-TV-Z]{25}$newsdeskId*stringDesk this kit is scoped to; null means it is the org's
^[0-7][0-9A-HJKMNP-TV-Z]{25}$isDefault*booleanWhether this is the default kit for its scope
isActive*booleanWhether the kit is offered on the output template picker
createdAt*stringISO 8601 creation timestamp
date-timename*stringBrand display name, e.g. the masthead
1 <= length <= 120colors*typography*logo*motion*captionScrimOpacity*numberOpacity of the surface panel a caption sits on when composited over footage; text is never set on footage alone
0 <= value <= 1assetUrls*Freshly signed, short-lived GET URLs for the kit's assets, keyed by asset id
assetContentTypes?The stored content type of each asset in assetUrls, keyed by asset id
{}faces*The kit's display and body faces, resolved from their references
curl -X GET 'https://api.nuvelics.com/api/tenant/v1/brand-kits/string'{ "id": "string", "orgId": "string", "newsdeskId": "string", "isDefault": true, "isActive": true, "createdAt": "2019-08-24T14:15:22Z", "name": "string", "colors": { "background": "string", "backgroundText": "string", "surface": "string", "surfaceText": "string", "accent": "string", "accentText": "string" }, "typography": { "display": { "source": "google", "fontId": "string", "maxWeight": 400 }, "body": { "source": "google", "fontId": "string", "maxWeight": 400 } }, "logo": { "onLightAssetId": "string", "onDarkAssetId": "string", "cardGroundAssetId": "string", "placement": "topLeft", "marginPct": 0 }, "motion": { "introStingerAssetId": "string", "outroStingerAssetId": "string" }, "captionScrimOpacity": 0, "assetUrls": { "property1": "http://example.com", "property2": "http://example.com" }, "assetContentTypes": {}, "faces": { "display": { "source": "google", "id": "string", "family": "string", "weights": { "min": 0, "max": 0 }, "maxWeight": 400, "url": "http://example.com" }, "body": { "source": "google", "id": "string", "family": "string", "weights": { "min": 0, "max": 0 }, "maxWeight": 400, "url": "http://example.com" } }}x-api-key<token>A service key (nvs_...) in the x-api-key header. A service key belongs to one organization: an X-Org-Id header is optional and, when sent, must name that organization. This header also accepts any credential the bearer scheme does, and when a request sends both headers, this one is used.
id*stringBrand kit identifier
^[0-7][0-9A-HJKMNP-TV-Z]{25}$application/json- body
name?stringBrand display name, e.g. the masthead
1 <= length <= 120newsdeskId?stringNewsdesk identifier
^[0-7][0-9A-HJKMNP-TV-Z]{25}$isDefault?booleanisActive?booleancolors?typography?logo?motion?captionScrimOpacity?numberOpacity of the surface panel a caption sits on when composited over footage; text is never set on footage alone
0 <= value <= 1Brand kit updated
application/json- response
id*stringBrand kit identifier
^[0-7][0-9A-HJKMNP-TV-Z]{25}$orgId*stringOwning organization identifier
^[0-7][0-9A-HJKMNP-TV-Z]{25}$newsdeskId*stringDesk this kit is scoped to; null means it is the org's
^[0-7][0-9A-HJKMNP-TV-Z]{25}$isDefault*booleanWhether this is the default kit for its scope
isActive*booleanWhether the kit is offered on the output template picker
createdAt*stringISO 8601 creation timestamp
date-timename*stringBrand display name, e.g. the masthead
1 <= length <= 120colors*typography*logo*motion*captionScrimOpacity*numberOpacity of the surface panel a caption sits on when composited over footage; text is never set on footage alone
0 <= value <= 1assetUrls*Freshly signed, short-lived GET URLs for the kit's assets, keyed by asset id
assetContentTypes?The stored content type of each asset in assetUrls, keyed by asset id
{}faces*The kit's display and body faces, resolved from their references
curl -X PATCH 'https://api.nuvelics.com/api/tenant/v1/brand-kits/string' \ -H 'Content-Type: application/json' \ -d '{}'{ "id": "string", "orgId": "string", "newsdeskId": "string", "isDefault": true, "isActive": true, "createdAt": "2019-08-24T14:15:22Z", "name": "string", "colors": { "background": "string", "backgroundText": "string", "surface": "string", "surfaceText": "string", "accent": "string", "accentText": "string" }, "typography": { "display": { "source": "google", "fontId": "string", "maxWeight": 400 }, "body": { "source": "google", "fontId": "string", "maxWeight": 400 } }, "logo": { "onLightAssetId": "string", "onDarkAssetId": "string", "cardGroundAssetId": "string", "placement": "topLeft", "marginPct": 0 }, "motion": { "introStingerAssetId": "string", "outroStingerAssetId": "string" }, "captionScrimOpacity": 0, "assetUrls": { "property1": "http://example.com", "property2": "http://example.com" }, "assetContentTypes": {}, "faces": { "display": { "source": "google", "id": "string", "family": "string", "weights": { "min": 0, "max": 0 }, "maxWeight": 400, "url": "http://example.com" }, "body": { "source": "google", "id": "string", "family": "string", "weights": { "min": 0, "max": 0 }, "maxWeight": 400, "url": "http://example.com" } }}x-api-key<token>A service key (nvs_...) in the x-api-key header. A service key belongs to one organization: an X-Org-Id header is optional and, when sent, must name that organization. This header also accepts any credential the bearer scheme does, and when a request sends both headers, this one is used.
id*stringBrand kit identifier
^[0-7][0-9A-HJKMNP-TV-Z]{25}$Brand kit deleted
curl -X DELETE 'https://api.nuvelics.com/api/tenant/v1/brand-kits/string'