Reference

Build on the Lucra API.

Drag a sticker to move it, or use the arrow keys while focused.

Submissions

Creator videos and posts, and their review.

A submission is a creator's video in a program. In organic programs it's also linked to the post where it went live, and Lucra measures that post's views.

Submit

Upload the video with purpose=submission, then submit it as the creator:

JSON
{
  "program": "prog_00lhuAJjQgdtNt5WnqTBc95",
  "file": "file_03d3QVSYynIFwgmYzYd7opT",
  "note": "First cut"
}
  • Add postUrl for an organic program.
  • Send revisionOf with the original sub_ ID to resubmit after changes are requested.
  • Submitting accepts any agreements the brand requires for submissions.

Review

Set status to approved, rejected, or revision_requested, with an optional note the creator sees:

JSON
{ "status": "revision_requested", "note": "Trim the intro to three seconds." }

A post can be approved or rejected once its measurement ends; approving pays the creator on its measured views. Then release the payment with { "payment": "approved" } (the brand's owner, admin, or own key).

Brand videos

A brand adds its own finished video (a file uploaded with purpose=ad_creative) to its library with { "file", "name" } and no program.

Endpoints

GET/v1/submissions
As creatorread

List submissions

SDKlucra.submissions.list({ query })

Query parameters

  • limitinteger
  • cursorstring
  • createdAfterstring

    Only items created at or after this time.

  • createdBeforestring

    Only items created before this time.

  • programprog_…
  • creatorcrtr_…
  • statusstring

    One or more, comma-separated: pending, revision_requested, approved, live, rejected, measuring, withdrawn, archived.

Response200A page of items, 18 fields each, and nextCursorShow
  • idsub_…
  • typeenum

    post: the creator's published Instagram or TikTok post; video: an uploaded video.

    videopost
  • programprog_…nullable
  • creatorcrtr_…nullable
  • revisionOfsub_…nullable
  • statusenum

    A post measures its views first (measuring), then waits for review (pending). withdrawn: by the creator; archived: kept but hidden from lists unless `status=archived` is asked for.

    pendingrevision_requestedapprovedliverejectedmeasuringwithdrawnarchived
  • feedbackstringnullable

    The brand's note with its latest review, such as what to change in a revision.

  • shortIdstringnullable

    The short ID shown in the app and ad names.

  • submittedAtstringnullable
  • tagsstring[]
  • mediaobjectnullable
    Show 6 child fields
    • videoUrlstringnullable
    • thumbnailUrlstringnullable
    • durationSecondsnumbernullable
    • fileNamestringnullable
    • sizenumbernullable
    • contentTypestringnullable
  • platformPostobjectnullable

    The creator's published post this submission is, for a post.

    Show 9 child fields
    • idstringnullable

      The post's ID on its platform.

    • platformenum
      instagramtiktok
    • urlstringnullable
    • captionstringnullable
    • metricsobject
      Show 5 child fields
      • viewsnumbernullable
      • likesnumbernullable
      • commentsnumbernullable
      • sharesnumbernullable
      • savesnumbernullable
    • publishedAtstringnullable
    • paidViewsnumbernullable

      Views counted toward pay once measurement ends.

    • measurementEndsAtstringnullable
    • paymentApprovedAtstringnullable
  • transcriptobjectnullable
    Show 2 child fields
    • statusenum
      completedfailedpendingskippedunsupported
    • textstringnullable
  • adsobjectnullable
    Show 4 child fields
    • identityenumnullable
      creatorbrand
    • launchedOnstring[]
    • ownershipstringnullable
    • programTypestringnullable
  • adAuthorizationobjectnullable

    The newest ad authorization asked for it (GET /v1/ad-authorizations).

    Show 5 child fields
    • idadauth_…
    • platformenum
      tiktokmeta
    • statusenum
      requestedgrantedrevokedexpired
    • authorizedAtstringnullable
    • expiresAtstringnullable
  • versioninteger

    Send it back on PATCH to reject edits based on a stale read.

  • createdAtstring
  • updatedAtstring
GET/v1/submissions/:id
As creatorread

Get a submission

SDKlucra.submissions.retrieve({ path: { id } })

Path parameters

  • idstringrequired
Response20018 fieldsShow
  • idsub_…
  • typeenum

    post: the creator's published Instagram or TikTok post; video: an uploaded video.

    videopost
  • programprog_…nullable
  • creatorcrtr_…nullable
  • revisionOfsub_…nullable
  • statusenum

    A post measures its views first (measuring), then waits for review (pending). withdrawn: by the creator; archived: kept but hidden from lists unless `status=archived` is asked for.

    pendingrevision_requestedapprovedliverejectedmeasuringwithdrawnarchived
  • feedbackstringnullable

    The brand's note with its latest review, such as what to change in a revision.

  • shortIdstringnullable

    The short ID shown in the app and ad names.

  • submittedAtstringnullable
  • tagsstring[]
  • mediaobjectnullable
    Show 6 child fields
    • videoUrlstringnullable
    • thumbnailUrlstringnullable
    • durationSecondsnumbernullable
    • fileNamestringnullable
    • sizenumbernullable
    • contentTypestringnullable
  • platformPostobjectnullable

    The creator's published post this submission is, for a post.

    Show 9 child fields
    • idstringnullable

      The post's ID on its platform.

    • platformenum
      instagramtiktok
    • urlstringnullable
    • captionstringnullable
    • metricsobject
      Show 5 child fields
      • viewsnumbernullable
      • likesnumbernullable
      • commentsnumbernullable
      • sharesnumbernullable
      • savesnumbernullable
    • publishedAtstringnullable
    • paidViewsnumbernullable

      Views counted toward pay once measurement ends.

    • measurementEndsAtstringnullable
    • paymentApprovedAtstringnullable
  • transcriptobjectnullable
    Show 2 child fields
    • statusenum
      completedfailedpendingskippedunsupported
    • textstringnullable
  • adsobjectnullable
    Show 4 child fields
    • identityenumnullable
      creatorbrand
    • launchedOnstring[]
    • ownershipstringnullable
    • programTypestringnullable
  • adAuthorizationobjectnullable

    The newest ad authorization asked for it (GET /v1/ad-authorizations).

    Show 5 child fields
    • idadauth_…
    • platformenum
      tiktokmeta
    • statusenum
      requestedgrantedrevokedexpired
    • authorizedAtstringnullable
    • expiresAtstringnullable
  • versioninteger

    Send it back on PATCH to reject edits based on a stale read.

  • createdAtstring
  • updatedAtstring
POST/v1/submissions
As creatorwrite

Submit work as a creator, or add a brand's own video to its library

SDKlucra.submissions.create({ body })

Body

  • programprog_…

    The program the work is for; required for a creator.

  • filefile_…required
  • notestring
  • postUrlstring

    The URL of the creator's published Instagram or TikTok post this video is; organic programs pay on its views.

  • revisionOfsub_…
  • attestationobject

    The creator's content-compliance confirmations.

    Show 4 child fields
    • disclosureIncludedbooleanrequired
    • experienceTruthfulbooleanrequired
    • noUnapprovedClaimsbooleanrequired
    • acceptedAgreementsobject[]

      The agreement versions the creator accepted by submitting; refused with 409 agreements_changed if the program now requires others.

      Show 2 child fields
      • agreementagr_…required
      • versionintegerrequired
  • namestring

    A brand library video's title; defaults to its file name.

Response20118 fieldsShow
  • idsub_…
  • typeenum

    post: the creator's published Instagram or TikTok post; video: an uploaded video.

    videopost
  • programprog_…nullable
  • creatorcrtr_…nullable
  • revisionOfsub_…nullable
  • statusenum

    A post measures its views first (measuring), then waits for review (pending). withdrawn: by the creator; archived: kept but hidden from lists unless `status=archived` is asked for.

    pendingrevision_requestedapprovedliverejectedmeasuringwithdrawnarchived
  • feedbackstringnullable

    The brand's note with its latest review, such as what to change in a revision.

  • shortIdstringnullable

    The short ID shown in the app and ad names.

  • submittedAtstringnullable
  • tagsstring[]
  • mediaobjectnullable
    Show 6 child fields
    • videoUrlstringnullable
    • thumbnailUrlstringnullable
    • durationSecondsnumbernullable
    • fileNamestringnullable
    • sizenumbernullable
    • contentTypestringnullable
  • platformPostobjectnullable

    The creator's published post this submission is, for a post.

    Show 9 child fields
    • idstringnullable

      The post's ID on its platform.

    • platformenum
      instagramtiktok
    • urlstringnullable
    • captionstringnullable
    • metricsobject
      Show 5 child fields
      • viewsnumbernullable
      • likesnumbernullable
      • commentsnumbernullable
      • sharesnumbernullable
      • savesnumbernullable
    • publishedAtstringnullable
    • paidViewsnumbernullable

      Views counted toward pay once measurement ends.

    • measurementEndsAtstringnullable
    • paymentApprovedAtstringnullable
  • transcriptobjectnullable
    Show 2 child fields
    • statusenum
      completedfailedpendingskippedunsupported
    • textstringnullable
  • adsobjectnullable
    Show 4 child fields
    • identityenumnullable
      creatorbrand
    • launchedOnstring[]
    • ownershipstringnullable
    • programTypestringnullable
  • adAuthorizationobjectnullable

    The newest ad authorization asked for it (GET /v1/ad-authorizations).

    Show 5 child fields
    • idadauth_…
    • platformenum
      tiktokmeta
    • statusenum
      requestedgrantedrevokedexpired
    • authorizedAtstringnullable
    • expiresAtstringnullable
  • versioninteger

    Send it back on PATCH to reject edits based on a stale read.

  • createdAtstring
  • updatedAtstring
PATCH/v1/submissions/:id
As creatorwrite

Review, tag, file or archive a submission, or approve paying for a post; as its creator, withdraw it

SDKlucra.submissions.update({ path: { id }, body })

Path parameters

  • idstringrequired

Body

  • statusenum

    A post in an organic program is approved (paid on its measured views) or rejected; archived hides a rejected or withdrawn submission from lists (it stays readable, and lists with `status=archived`); a creator sends withdrawn.

    pendingapprovedrejectedrevision_requestedwithdrawnarchived
  • notestring

    Shown to the creator with a revision request or rejection.

  • tagsstring[]
  • paymentstring

    For an approved post: approves paying the creator its finalized earnings (the brand's owner, admin or own key).

    approved
  • versioninteger
Response20018 fieldsShow
  • idsub_…
  • typeenum

    post: the creator's published Instagram or TikTok post; video: an uploaded video.

    videopost
  • programprog_…nullable
  • creatorcrtr_…nullable
  • revisionOfsub_…nullable
  • statusenum

    A post measures its views first (measuring), then waits for review (pending). withdrawn: by the creator; archived: kept but hidden from lists unless `status=archived` is asked for.

    pendingrevision_requestedapprovedliverejectedmeasuringwithdrawnarchived
  • feedbackstringnullable

    The brand's note with its latest review, such as what to change in a revision.

  • shortIdstringnullable

    The short ID shown in the app and ad names.

  • submittedAtstringnullable
  • tagsstring[]
  • mediaobjectnullable
    Show 6 child fields
    • videoUrlstringnullable
    • thumbnailUrlstringnullable
    • durationSecondsnumbernullable
    • fileNamestringnullable
    • sizenumbernullable
    • contentTypestringnullable
  • platformPostobjectnullable

    The creator's published post this submission is, for a post.

    Show 9 child fields
    • idstringnullable

      The post's ID on its platform.

    • platformenum
      instagramtiktok
    • urlstringnullable
    • captionstringnullable
    • metricsobject
      Show 5 child fields
      • viewsnumbernullable
      • likesnumbernullable
      • commentsnumbernullable
      • sharesnumbernullable
      • savesnumbernullable
    • publishedAtstringnullable
    • paidViewsnumbernullable

      Views counted toward pay once measurement ends.

    • measurementEndsAtstringnullable
    • paymentApprovedAtstringnullable
  • transcriptobjectnullable
    Show 2 child fields
    • statusenum
      completedfailedpendingskippedunsupported
    • textstringnullable
  • adsobjectnullable
    Show 4 child fields
    • identityenumnullable
      creatorbrand
    • launchedOnstring[]
    • ownershipstringnullable
    • programTypestringnullable
  • adAuthorizationobjectnullable

    The newest ad authorization asked for it (GET /v1/ad-authorizations).

    Show 5 child fields
    • idadauth_…
    • platformenum
      tiktokmeta
    • statusenum
      requestedgrantedrevokedexpired
    • authorizedAtstringnullable
    • expiresAtstringnullable
  • versioninteger

    Send it back on PATCH to reject edits based on a stale read.

  • createdAtstring
  • updatedAtstring