Scope3 Creatives API
Build, manage, and sync campaign creatives via AdCP Creative Protocol
Operations 39
Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay
GET
/advertisers/{advertiserId}/creative/model-credentials
List generation-provider keys for an advertiser · List generation-provider keys for an advertiser
#
Ask an LLM
“Which of my own AI generation keys can be used for a given advertiser?”
“Which generation key is auto-selected when creatives are generated?”
Tell an agent
List the generation-provider keys available to advertiser {advertiser_id}.
Show which model key is effective for advertiser {advertiser_id}.
POST
/advertisers/{advertiserId}/creative/model-credentials
Connect my own generation-provider key · Connect a generation-provider key for an advertiser
#
Ask an LLM
“Can creative generation run on my own model provider account?”
“Is the raw API key I connect for creative generation ever stored in plain text?”
Tell an agent
Connect my {provider_type} key {api_key} labelled {label} to advertiser {advertiser_id}.
Store generation key {api_key} for provider {provider_type} on advertiser {advertiser_id} as {label}.
PATCH
/creative/model-credentials/{id}
Rotate or edit a generation-provider key · Update or rotate a generation-provider key
#
Ask an LLM
“How do I rotate a generation key without losing its label and assignments?”
“Can I make one generation key the default across advertisers?”
Tell an agent
Rotate generation credential {id} to new key {api_key}.
Assign generation credential {id} to advertisers {advertiser_ids}.
Ask an LLM
“Can I get a direct link into the creative dashboard for a campaign?”
“How do I deep-link someone to one specific creative in the dashboard?”
Tell an agent
Get the creative dashboard link for advertiser {advertiser_id}, campaign {campaign_id}.
Give me a dashboard URL that opens creative {manifest_id} in campaign {campaign_id} for advertiser {advertiser_id}.
POST
/campaigns/{campaignId}/creatives/create
Create a creative in a campaign · Create creative manifest
#
Ask an LLM
“How do I upload a new creative with its files to a campaign?”
“Can I attach a brief message and a format when creating a campaign creative?”
Tell an agent
Create creative {name} in campaign {campaign_id} with assets {assets}.
Add a {format_id} creative to campaign {campaign_id} with message {message}.
GET
/campaigns/{campaignId}/creatives/templates
List creative templates and required formats · List creative templates
#
Ask an LLM
“What creative templates and formats do my campaign's products require?”
“Which ad sizes do I need to supply for a campaign?”
Tell an agent
List creative templates for campaign {campaign_id}.
Show the required formats for campaign {campaign_id}.
GET
/campaigns/{campaignId}/creativeManifest
Filter a campaign's creatives by role, source or format · List creative manifests
#
Ask an LLM
“Can I filter a campaign's creatives by format kind, asset type or dimensions?”
“Which of a campaign's creatives are promoted or AI-generated?”
Tell an agent
List creative manifests in campaign {campaign_id} with format kind {format_kind}.
Show {dimensions} creatives from source {source} in campaign {campaign_id}.
Ask an LLM
“What creatives are in my campaign right now?”
“Can I search a campaign's creatives by name?”
Tell an agent
List creatives in campaign {campaign_id}.
Search campaign {campaign_id}'s creatives for {search}.
POST
/campaigns/{campaignId}/creatives/bulk-update
Bulk update a campaign's saved creatives · Bulk update creatives
#
Ask an LLM
“Can I change many campaign creatives at once?”
“Can I preview which creatives a bulk change would touch before applying it?”
Tell an agent
Preview applying {update} to creatives matching {selection} in campaign {campaign_id}.
Apply {update} to creatives matching {selection} in campaign {campaign_id} with dry run {dry_run}.
POST
/advertisers/{advertiserId}/creatives/create
Create a creative master for an advertiser · Create advertiser creative master
#
Ask an LLM
“Can I create a creative for an advertiser before picking a campaign?”
“How do I make one creative I can reuse across several campaigns?”
Tell an agent
Create advertiser-level creative {name} for advertiser {advertiser_id}.
Add a reusable creative master to advertiser {advertiser_id} with assets {assets}.
GET
/advertisers/{advertiserId}/creatives
List an advertiser's creative library · List advertiser creative library
#
Ask an LLM
“What creatives does an advertiser have across all its campaigns?”
“Can I filter an advertiser's library by role, such as evergreen or reference?”
Tell an agent
List the creative library for advertiser {advertiser_id}.
Show {role} creatives in advertiser {advertiser_id}'s library.
POST
/advertisers/{advertiserId}/creatives/save-to-library
Promote creatives into the advertiser library shelf · Promote advertiser creatives into the library shelf
#
Ask an LLM
“How do I save creatives as evergreen so they can be reused in other campaigns?”
“Can I keep creatives only as references for generation rather than serving them?”
Tell an agent
Save creatives {creative_ids} to advertiser {advertiser_id}'s library as {role}.
Promote every creative in collection {collection_id} to the {role} shelf for advertiser {advertiser_id}.
POST
/creatives/stash
Stash uploaded creatives before choosing an advertiser · Stash brought creatives before an advertiser is chosen
#
Ask an LLM
“Can I upload creatives before I've said which advertiser they belong to?”
“Will my uploads survive until I name the advertiser later?”
Tell an agent
Stash these uploaded creatives {assets} until I pick an advertiser.
Hold uploads {assets} at the customer level for now.
POST
/advertisers/{advertiserId}/creative-intent
Ask which campaign uploaded creatives are for · Open the creative-intent picker for an advertiser
#
Ask an LLM
“After uploading creatives, how do I get asked which campaign they belong to?”
“Can I see an advertiser's recent campaigns when deciding where creatives go?”
Tell an agent
Open the campaign picker for these uploads {assets} under advertiser {advertiser_id}.
Ask which campaign stashed creatives {creative_ids} are for, for advertiser {advertiser_id}.
GET
/campaigns/{campaignId}/creative-confirmation
View the creatives added to a campaign and format coverage · Get creative-confirmation card for a campaign
#
Ask an LLM
“Which required placements are covered by the creatives on my campaign?”
“Can I review what creatives were added to a campaign without attaching more?”
Tell an agent
Show the creative confirmation card for campaign {campaign_id}.
Check format coverage of campaign {campaign_id}'s creatives.
POST
/campaigns/{campaignId}/creative-confirmation
Attach brought creatives to a campaign · Attach brought creatives to a campaign
#
Ask an LLM
“How do I add the creatives I just uploaded to my campaign?”
“Do attached images get matched to placements by size automatically?”
Tell an agent
Attach uploads {assets} to campaign {campaign_id}.
Attach saved creatives {creative_ids} to campaign {campaign_id}.
POST
/campaigns/{campaignId}/creatives/{creativeId}/placement
Move one creative to a different placement · Reassign a brought creative to a different placement
#
Ask an LLM
“A creative landed in the wrong slot — can I move it to the leaderboard?”
“How do I correct the placement of a single attached creative?”
Tell an agent
Move creative {creative_id} in campaign {campaign_id} to placement {format_id}.
Reassign creative {creative_id} to format {format_id} on campaign {campaign_id}.
POST
/campaigns/{campaignId}/creatives/placements
Reassign several creatives to placements at once · Batch-reassign brought creatives to placements
#
Ask an LLM
“Can I save placement mappings for many creatives in one go?”
“How do I commit a batch of creative-to-placement corrections?”
Tell an agent
Save placement mappings {mappings} for campaign {campaign_id}.
Batch-reassign creatives in campaign {campaign_id} using mappings {mappings}.
POST
/advertisers/{advertiserId}/creatives/{creativeId}/campaigns
Assign a library creative to a campaign · Assign creative to campaign
#
Ask an LLM
“How do I reuse a creative from an advertiser's library in another campaign?”
“Can one library creative run in more than one campaign?”
Tell an agent
Assign library creative {creative_id} from advertiser {advertiser_id} to campaign {campaign_id}.
Add advertiser {advertiser_id}'s creative {creative_id} to campaign {campaign_id}.
DELETE
/advertisers/{advertiserId}/creatives/{creativeId}/campaigns/{campaignId}
Unassign a library creative from a campaign · Unassign creative from campaign
#
Ask an LLM
“Can I take a library creative out of one campaign but keep it in the library?”
“How do I stop a creative running in a specific campaign?”
Tell an agent destructive · confirm first
Unassign creative {creative_id} of advertiser {advertiser_id} from campaign {campaign_id}.
Remove library creative {creative_id} from campaign {campaign_id} for advertiser {advertiser_id}.
DELETE
/advertisers/{advertiserId}/creatives/{creativeId}
Archive a creative across all campaigns · Archive creative globally
#
Ask an LLM
“How do I retire a creative everywhere it's used?”
“Will archiving a creative be blocked if it is in an active media buy?”
Tell an agent destructive · confirm first
Archive creative {creative_id} for advertiser {advertiser_id} across all campaigns.
Permanently retire advertiser {advertiser_id}'s creative {creative_id} everywhere.
GET
/campaigns/{campaignId}/creative-collections
List a campaign's creative collections · List creative collections
#
Ask an LLM
“Which creative collections are attached to my campaign?”
“Can I include each collection's members when listing a campaign's collections?”
Tell an agent
List creative collections for campaign {campaign_id}.
Search campaign {campaign_id}'s collections for {search}.
POST
/campaigns/{campaignId}/creative-collections
Create a creative collection for a campaign · Create creative collection
#
Ask an LLM
“How do I group a campaign's creatives and assets into a collection?”
“Can I attach a new collection to the campaign as I create it?”
Tell an agent
Create collection {name} in campaign {campaign_id}.
Create campaign collection {name} for campaign {campaign_id} with members {members}.
GET
/campaigns/{campaignId}/creative-collections/{collectionId}
View one creative collection · Get creative collection
#
Ask an LLM
“What creatives and assets are inside a particular collection?”
“Which campaigns is a given collection attached to?”
Tell an agent
Show collection {collection_id} in campaign {campaign_id}.
Get the members of collection {collection_id} (campaign {campaign_id}).
PUT
/campaigns/{campaignId}/creative-collections/{collectionId}
Rename or describe a creative collection · Update creative collection
#
Ask an LLM
“Can I rename a creative collection?”
“How do I change a collection's description or metadata?”
Tell an agent
Rename collection {collection_id} in campaign {campaign_id} to {name}.
Set the description of collection {collection_id} (campaign {campaign_id}) to {description}.
POST
/campaigns/{campaignId}/creative-collections/{collectionId}/members
Add creatives or assets to a collection · Add creative collection members
#
Ask an LLM
“How do I add more creatives or generated assets to an existing collection?”
“Can raw assets go into a creative collection, not just saved creatives?”
Tell an agent
Add members {members} to collection {collection_id} in campaign {campaign_id}.
Put creatives {members} into collection {collection_id} for campaign {campaign_id}.
DELETE
/campaigns/{campaignId}/creative-collections/{collectionId}/members
Remove creatives or assets from a collection · Remove creative collection members
#
Ask an LLM
“Can I take a creative out of a collection without deleting the creative?”
“How do I drop assets from a creative collection?”
Tell an agent destructive · confirm first
Remove members {members} from collection {collection_id} in campaign {campaign_id}.
Take {members} out of collection {collection_id} (campaign {campaign_id}).
POST
/campaigns/{campaignId}/creative-collections/{collectionId}/attach
Attach a creative collection to a campaign · Attach creative collection to campaign
#
Ask an LLM
“Can I use a collection as a campaign's approved set or testing set?”
“How do I attach an existing collection to a campaign?”
Tell an agent
Attach collection {collection_id} to campaign {campaign_id}.
Attach collection {collection_id} to campaign {campaign_id} as the {role} set.
GET
/advertisers/{advertiserId}/creative-collections
List an advertiser's creative collections · List advertiser creative collections
#
Ask an LLM
“Which creative collections does an advertiser own outside any one campaign?”
“Can I search an advertiser's collections by name?”
Tell an agent
List creative collections owned by advertiser {advertiser_id}.
Search advertiser {advertiser_id}'s collections for {search}.
POST
/advertisers/{advertiserId}/creative-collections
Create an advertiser-owned creative collection · Create advertiser creative collection
#
Ask an LLM
“Can I create a collection that isn't tied to a single campaign?”
“How do I build a collection I can attach to several campaigns?”
Tell an agent
Create advertiser collection {name} for advertiser {advertiser_id}.
Make a reusable collection {name} under advertiser {advertiser_id} with members {members}.
GET
/campaigns/{campaignId}/creatives/{creativeId}
View one creative in a campaign · Get creative manifest
#
Ask an LLM
“What assets and settings does a specific creative in my campaign have?”
“Can I fetch a single campaign creative by its id?”
Tell an agent
Show creative {creative_id} in campaign {campaign_id}.
Get the assets of campaign {campaign_id}'s creative {creative_id}.
PUT
/campaigns/{campaignId}/creatives/{creativeId}
Edit a campaign creative and its assets · Update creative manifest
#
Ask an LLM
“Can I change a creative's click-through URL?”
“How do I swap or delete assets on an existing creative?”
Tell an agent
Set the click URL of creative {creative_id} in campaign {campaign_id} to {click_url}.
Delete assets {asset_ids} from creative {creative_id} in campaign {campaign_id}.
DELETE
/campaigns/{campaignId}/creatives/{creativeId}
Delete a creative from a campaign · Delete creative manifest
#
Ask an LLM
“How do I delete a creative and its files from one campaign?”
“Does deleting a campaign creative remove its assets too?”
Tell an agent destructive · confirm first
Delete creative {creative_id} from campaign {campaign_id}.
Remove creative manifest {creative_id} and its assets from campaign {campaign_id}.
POST
/campaigns/{campaignId}/creatives/{creativeId}/preview
Render a preview of a creative · Preview creative
#
Ask an LLM
“Can I see what a creative will look like before it runs?”
“Why does previewing a creative fail with a validation error?”
Tell an agent
Preview creative {creative_id} in campaign {campaign_id}.
Render campaign {campaign_id}'s creative {creative_id} through its format renderer.
POST
/campaigns/{campaignId}/creatives/{creativeId}/duplicate
Duplicate a creative within its campaign · Duplicate creative
#
Ask an LLM
“Can I copy an existing creative to make a variation?”
“Does duplicating a creative copy its assets too?”
Tell an agent
Duplicate creative {creative_id} in campaign {campaign_id}.
Make a copy of campaign {campaign_id}'s creative {creative_id}.
GET
/campaigns/{campaignId}/creative-sessions/{sessionId}
View a creative iteration session · Get creative session
#
Ask an LLM
“What drafts and evaluator results are in my creative iteration session?”
“Where does a creative generation session stand right now?”
Tell an agent
Show creative session {session_id} in campaign {campaign_id}.
Get the drafts and status of session {session_id} (campaign {campaign_id}).
POST
/campaigns/{campaignId}/creative-sessions/{sessionId}/evaluate
Run evaluator checks on a creative session · Evaluate creative session
#
Ask an LLM
“Can I run quality checks on the drafts in a creative session?”
“Is there a separate final evaluation stage for a chosen variant?”
Tell an agent
Evaluate creative session {session_id} in campaign {campaign_id}.
Run {stage} checks on variant {variant_id} of session {session_id} in campaign {campaign_id}.
POST
/campaigns/{campaignId}/creative-sessions/{sessionId}/finalize
Save a session variant as a campaign creative · Finalize creative session
#
Ask an LLM
“How do I turn the variant I like from a creative session into a real creative?”
“Can I name the creative when I finalize a session?”
Tell an agent
Finalize session {session_id} in campaign {campaign_id} with variant {variant_id}.
Save the chosen variant of session {session_id} as creative {name} in campaign {campaign_id}.
GET
/campaigns/{campaignId}/creative-references
Get reference material for generating creatives · Get creative references
#
Ask an LLM
“What reference assets and past creatives can be used to generate new ones for a campaign?”
“Which sourced materials are available as generation inputs?”
Tell an agent
Get creative references for campaign {campaign_id}.
Show the reference assets and past creatives I can generate from for campaign {campaign_id}.