Assets

Register an Asset to an advertiser

Available on: Meta TikTok

Places an Asset in one advertiser's provider-side library. Not a provider — an organization has several advertisers, and the bytes land in exactly one of them.

Returns immediately with a running Registration; poll GET /assets/{id} for its state. Video can take several minutes to process at the provider, which is normal rather than a failure.

A Registration that is running or ready refuses a second one for the same pair. A failed one starts again: send this request, and AdCrunch replaces it.

post/assets/{id}/registrations

Request

  • Base URL: https://api.adcrunch.dev
  • URL: https://api.adcrunch.dev/assets/{id}/registrations
  • Auth: HTTP bearer

Path parameters

idstring required

The stored Asset to place.

Request body

advertiserIdstring required

The advertiser whose library the bytes land in. Its provider decides how they get there.

Example request

{
  "advertiserId": "acc_1203456789012345"
}

Response

The Registration, at running. providerIdentifier is null until the provider has the bytes — read the Asset to see it settle.

advertiserIdstring required

The advertiser whose provider library gets the Asset.

assetIdstring required

The Asset that the Registration places.

createdAtnumber required

Milliseconds since the Unix epoch, UTC.

deletedAtnumber nullable required

Always null here. When a retry replaces a failed Registration, AdCrunch sets this time on the old one and answers it no more.

failureCode'not_found' | 'provider_not_connected' | 'missing_write_access' nullable required

Why AdCrunch refused the Registration before any provider call. Branch on this field, never on failureReason. not_found: your organization owns no advertiser of this provider with this id. provider_not_connected: the advertiser has no usable connection to the provider. Reconnect the provider, then register again. missing_write_access: the connection does not permit this kind of file. Reconnect the provider to grant it. null when the Registration did not fail, or when it failed at the provider.

failureReasonstring nullable required

Why the Registration failed, as a sentence: the words of the provider, or the words of AdCrunch. null unless status is failed.

idstring required

The id of the Registration, reg_….

organizationIdstring required

The organization that owns the Asset.

provider'meta' | 'gads' | 'tiktok' | 'x' | 'openai' | 'snapchat' | 'dv360' required

The provider that owns the advertiser.

providerIdentifierstring nullable required

The id that the provider gave the file: a Meta image hash, or the id of the image or the video at the provider. null until the provider gives it, and null on a failed Registration. An image gets its id when the Registration becomes ready. A video gets its id earlier, while the Registration is running, because the provider gives the id before it has processed the file. Build a creative from a ready Registration only.

status'running' | 'ready' | 'failed' required

Video can stay running for several minutes while the provider processes it. That is normal, and not a failure.

updatedAtnumber nullable required

When the Registration last changed, in milliseconds since the Unix epoch, UTC. null until its first change.

uploadSessionIdstring nullable required

An in-flight provider upload session, where the protocol has one. null for every image.

workflowIdstring required

The durable execution that runs the Registration.

Example response

{
  "advertiserId": "acc_1203456789012345",
  "assetId": "ast_7c1e9a",
  "createdAt": 1790000121000,
  "deletedAt": null,
  "failureCode": null,
  "failureReason": null,
  "id": "reg_4b81d2",
  "organizationId": "org_3a7f10",
  "provider": "meta",
  "providerIdentifier": null,
  "status": "running",
  "updatedAt": null,
  "uploadSessionId": null,
  "workflowId": "reg_4b81d2"
}

Changes

No recorded changes to this operation across all 1 revision of this API.