API Set Project Id: Difference between revisions

From zFairs Contest Management
Peter (talk | contribs)
No edit summary
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 11: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.