Nubu
  • Features
  • How it works
  • Pricing
  • Integrations
  • FAQ
  • Contact
  • Docs
  • Blog
  • Log in
  • Log inSign up
    Nubu

    Creative automation for teams that ship campaigns, not busywork.

    Try for free
    Product
    FeaturesNubu MotionHow it worksPricingIntegrationsFAQ
    Company
    AboutContactDocsBlogLog in
    Legal
    Privacy policyTerms of serviceData deletion
    © 2026 Bear Studios · Nubu
    Introduction
    Templates overviewInstalling Nubu BuilderAdding template compsAdding propertiesAdding footageSetting defaultsExporting your templateUploading a template
    Flows overviewAvailable nodesAdding a nodeConnecting nodesWorking with dataTemplates and outputsUsing AI nodesBuilding a creative
    CampaignsTemplatesAssetsGlossariesRendersSettings
    Connecting Meta AdsConnecting Google AdsConnecting OpenAIConnecting Gemini AI StudioConnecting Anthropic
    AI Assistant overviewPrompt examplesAssistant settings and controls
    Nubu Motion scripts: the reference
    OverviewQuick startDifferences from After EffectsDeterminism
    JavaScript supportReferences and idsProject scriptsState and timeBudgets and errorsFormatting values
    GlobalTime conversionInterpolationVector mathsRandom and noiseColour conversionOther maths
    LayerCompPropertyKeyframePathGeometryProjectComponentConsoleComponentControlExpressionControl
    The property vocabularyAnimators propertiesAudio propertiesContent propertiesContents propertiesEffects propertiesExpression controls propertiesFills propertiesInstance controls propertiesLayer propertiesLayout propertiesMasks propertiesStrokes propertiesText style propertiesRig propertiesRigging propertiesRig controllers propertiesRigging weights propertiesRigging mesh propertiesRig items propertiesRig splines propertiesRig simulation propertiesRig properties propertiesRig drivers propertiesRig draw order propertiesTransform propertiesTrim path properties
    Error codesBudgets
    Changelog
    API overviewAuthentication and keysRate limits and errorsUploading assetsFoldersUploading templatesTriggering a flowRuns and creativesAPI Request deliveryCallbacks
    All docs
    API

    Authentication and keys

    Create organisation API keys, choose their scopes and send them as bearer tokens.

    Every call to the API is made with an organisation API key. A key belongs to the organisation rather than to a person, carries its own set of permissions (scopes) and can be revoked at any time.

    Creating a key#

    Only the organisation owner can manage API keys.

    1. Open Settings > Integrations and choose the API tab.
    2. Click Create key. Name it after the software that will use it, tick the scopes that software needs and choose how long the key lives.
    3. Copy the secret from the dialog. It is shown once and never again, so store it in your software's secret store straight away.

    An organisation can hold as many keys as it needs: one per system, each with only the scopes that system uses.

    Using a key#

    Send the secret as a bearer token on every request:

    Authorization: Bearer nubu_api_...
    
    curl https://app.nubu.app/api/v1/flows \
      -H "Authorization: Bearer nubu_api_..."
    

    The key acts as the organisation, not as a person: assets it uploads show no author in the app, and a flow it triggers builds as the organisation.

    Scopes#

    ScopeAllows
    assets.readList assets and read their details
    assets.createUpload new assets
    assets.updateEdit an asset's name, folder and tags
    assets.replaceUpload a new file in place of an existing asset
    assets.deleteDelete assets
    templates.readList templates and read their details
    templates.createUpload new template packages
    templates.updateEdit a template's name, folder and tags
    templates.replaceUpload a new package in place of an existing template
    templates.deleteDelete templates
    flows.readList flows and read their API Trigger
    flows.runTrigger a flow's API Trigger
    creatives.readList creatives, read their status, progress, errors and outputs, download renders
    creatives.createCreate creatives
    creatives.updateEdit a creative's fields
    creatives.deleteDelete creatives
    creatives.approveApprove creatives for rendering
    creatives.rerenderRe-render creatives
    runs.readRead the runs the API triggered

    A call made with a key that lacks the route's scope answers 403 scope_required, and details.required_scope names the scope to add.

    Expiry and revocation#

    • A key expires at the moment chosen when it was created. An expired key answers 401 invalid_key, and the list marks it Expired.
    • Revoke a key from the list to stop it immediately; it answers 401 invalid_key from then on. To rotate a key, create the new one first, move your software onto it, then revoke the old one.
    • The API is a Business+ feature: on any other plan every call answers 403 plan_required.

    Signing secret#

    The same page holds the organisation's signing secret: it is created with your first API key and shown once beside it, and the owner can rotate it there (rotation replaces it at once). Every callback and API Request delivery Nubu sends is signed with it; your endpoints verify X-Nubu-Signature with it (Callbacks).

    Outbound credentials#

    The same tab holds Outbound credentials: the authentication an API Request node sends to your endpoint when it delivers a render. See API Request delivery.