Difference between revisions of "API Set Project Id"

From zFairs Contest Management
(Document batch setFixedId body array)
Line 1: Line 1:
== Set Project Id==
+
== Set Project Id ==
You can use our api to set an entry's or projects Id. To do this you need to POST a message to your site. Below is an example of what needs to be posted.
+
Sets fixed/display project ids for one or more existing projects.
  
If you only want to update a project see [[API Update Project]]
+
=== Authentication ===
 +
All data API calls are <code>POST</code> (unless noted) with JSON body:
  
 +
{| class="wikitable"
 +
|-
 +
! Field !! Required !! Description
 +
|-
 +
| <code>ApiKey</code> || Yes* || Private API key for your site. Prefer this over username/password.
 +
|-
 +
| <code>Username</code> / <code>Password</code> || Yes* || Alternate auth if not using ApiKey.
 +
|-
 +
| <code>FairId</code> || Yes || Fair GUID from the site URL (<code>f</code> query parameter).
 +
|-
 +
| <code>Body</code> || Depends || Request payload. Use <code>{}</code> when no body fields are needed.
 +
|}
 +
 +
* Provide '''either''' <code>ApiKey</code> '''or''' <code>Username</code>+<code>Password</code>.
 +
 +
Calls must be run '''server-side''' — do not expose your API key in a browser.
 +
 +
=== Response envelope ===
 +
Most endpoints return:
 +
 +
<pre>
 +
{
 +
  Success: true,
 +
  Message: null,  // error text when Success is false
 +
  Body: { ... }    // endpoint-specific payload
 +
}
 +
</pre>
 +
 +
 +
=== Request ===
 
<syntaxhighlight lang="JavaScript" line>
 
<syntaxhighlight lang="JavaScript" line>
 
 
fetch('/api/data/setFixedId', {
 
fetch('/api/data/setFixedId', {
 
     method:'POST',
 
     method:'POST',
Line 11: Line 41:
 
     body: JSON.stringify({
 
     body: JSON.stringify({
 
             ApiKey:'<Private key>',
 
             ApiKey:'<Private key>',
             FairId: '9df61f13-474b-442f-ac1f-edca7348ef71', //This value can be found in your url it's the value of f
+
             FairId: '9df61f13-474b-442f-ac1f-edca7348ef71', // value of f in your URL
             Body: [{
+
             Body: [
                  ProjectKey: '36 char GUID',
+
{ ProjectKey: "32161f13-474b-442f-ac1f-edca7348e000", FixedId: "AB-100" },
                  FixedId: 'Your Id'
+
{ ProjectKey: "42161f13-474b-442f-ac1f-edca7348e001", FixedId: "AB-101" }
            },...]
+
]
 
         })
 
         })
 
})
 
})
Line 21: Line 51:
 
.then(data=>{console.log('Success: ',data);})
 
.then(data=>{console.log('Success: ',data);})
 
.catch((error)=>{console.log('Error: ', error);});
 
.catch((error)=>{console.log('Error: ', error);});
 +
</syntaxhighlight>
 +
 +
=== Response ===
 +
On success:
 +
 +
<pre>
 +
{
 +
  Success: true,
 +
  Message: "",  // lists any ProjectKeys that failed: "Id not set for {guid}"
 +
  Body: null
 +
}
 +
</pre>
 +
 +
 +
=== Field notes ===
 +
* <code>Body</code> is an '''array''' of <code>{ ProjectKey, FixedId }</code> (not a single object).
 +
* Empty array returns: <code>There are no Id's to set.</code>
 +
* Individual failures are reported in <code>Message</code> while <code>Success</code> may still be true.
  
</syntaxhighlight>
 
  
If you want to remove the fixed id you set just set the value of FixedId to null FixedId:null
+
=== Related APIs ===
 +
* [[API Add Project]] (also accepts <code>FixedProjectId</code> at create time)
 +
* [[API Get Projects]]
  
*The body of the posted data is an array so you can update multiple project Id's at once.
 
  
 +
<br/><br/>
 
[[Category: API]]
 
[[Category: API]]

Revision as of 12:49, 25 July 2026

Set Project Id

Sets fixed/display project ids for one or more existing projects.

Authentication

All data API calls are POST (unless noted) with JSON body:

Field Required Description
ApiKey Yes* Private API key for your site. Prefer this over username/password.
Username / Password Yes* Alternate auth if not using ApiKey.
FairId Yes Fair GUID from the site URL (f query parameter).
Body Depends Request payload. Use {} when no body fields are needed.
  • Provide either ApiKey or Username+Password.

Calls must be run server-side — do not expose your API key in a browser.

Response envelope

Most endpoints return:

{
  Success: true,
  Message: null,   // error text when Success is false
  Body: { ... }    // endpoint-specific payload
}


Request

fetch('/api/data/setFixedId', {
    method:'POST',
    headers:{'Content-Type': 'application/json'},
    body: JSON.stringify({
            ApiKey:'<Private key>',
            FairId: '9df61f13-474b-442f-ac1f-edca7348ef71', // value of f in your URL
            Body: [
				{ ProjectKey: "32161f13-474b-442f-ac1f-edca7348e000", FixedId: "AB-100" },
				{ ProjectKey: "42161f13-474b-442f-ac1f-edca7348e001", FixedId: "AB-101" }
			]
        })
})
.then(response => response.json())
.then(data=>{console.log('Success: ',data);})
.catch((error)=>{console.log('Error: ', error);});

Response

On success:

{
  Success: true,
  Message: "",  // lists any ProjectKeys that failed: "Id not set for {guid}"
  Body: null
}


Field notes

  • Body is an array of { ProjectKey, FixedId } (not a single object).
  • Empty array returns: There are no Id's to set.
  • Individual failures are reported in Message while Success may still be true.


Related APIs