Create or Update Project
Other APIs
Create or Update Project
Create a new Project or update an existing Project’s settings
POST
Create or Update Project
Programmatically create new Projects or update existing ones. Projects are the
top-level container in DNCScrub for organizing campaigns, scrub options, and
Internal DNC lists.
If the supplied
When
The XML response lists every Project the account can access (including
cross-account projects), each Project’s Campaigns, and each Campaign’s status.
To list a single Project instead, pass that Project’s
project_code already exists, the endpoint updates the
existing Project. If it does not exist, a new Project is created with a
default Campaign.
Request
Headers
Your API Key
Query / Form Parameters
Project code to insert or update. Will be uppercased and trimmed.If your account has auto-prefixing enabled, the prefix
<acctId>_ is added
automatically when missing.Pass projId=<acctId> instead of project_code to operate on the Master
Project.Display name of the Project.
FTC Org Id or SAN. When supplied on a new Project, the value is validated
against the FTC; if a SAN is supplied, the corresponding Org Id is resolved
and stored.
Internal handler override. The endpoint normally infers this:
insert_project- new project (auto-selected whenproject_codedoes not exist)update_project- update existing project (auto-selected when it exists)deactivate_project- mark project inactivereactivate_project- reactivate an inactive project
Pass
xml to return a full XML document describing the resulting Project,
its Campaigns, and (for SmartBlock-enabled accounts) SmartBlock settings.Free-form project notes.
Inherit the Master Project’s Internal DNC / DNM database.
Inherit the Master Project’s EBR / override database.
Inherit the Master Project’s DNC policy.
Inherit the Master Project’s national DNC subscription.
Inherit the Master Project’s training materials.
Example Request
Response
| Status Code | Meaning |
|---|---|
200 | Project updated successfully (no body unless output=xml) |
201 | Project created successfully (no body unless output=xml) |
400 | Validation or save error - reason phrase contains the error message |
403 | Project exists but is inactive (use handler=reactivate_project) |
output=xml is supplied, the response body is an XML document rooted at
<DncCompliance><DncScrub><Accounts><Account><Projects>...</Projects></Account></Accounts></DncScrub></DncCompliance>
containing the Project, its Campaigns, and any FTC Org Id metadata that was
just resolved.
Reactivating an Inactive Project
Ifproject_code matches an inactive Project, the endpoint returns 403 Inactive Project unless you explicitly request reactivation:
Master Project Operations
PassprojId=<acctId> (with no project_code) to update settings on your
account’s Master Project:
Listing All Projects
There is no separate list endpoint - this same endpoint returns a full project enumeration when you target the Master Project withoutput=xml and no fields
to update. Because no fields change, the call is read-only:
projId rather than your
account ID.
To get details for a single Project, pass that Project’s projId:
Best Practices
Idempotent Upserts
Idempotent Upserts
The same request creates a Project on first call and updates it on
subsequent calls. Use the HTTP status code (
201 vs 200) to tell the
cases apart.Use output=xml on Create
Use output=xml on Create
Adding
output=xml to a create request returns the new Project’s full
record (including the auto-created default Campaign) so you don’t need a
follow-up call to get its IDs.FTC Org Id Validation
FTC Org Id Validation
Supplying
nat_dnc_org_id on a new Project triggers FTC validation. Make
sure the Org Id (or SAN) is correct, or the create will fail with an FTC
error message.Project Code Rules
Project Code Rules
Project codes are uppercased automatically. Avoid the
_ character in your
raw code if your account uses auto-prefixing - the prefix delimiter is
_.