--- title: "API_SetKeyField" slug: "api-setkeyfield" updated: 2025-08-18T09:35:44Z published: 2025-08-18T09:35:44Z canonical: "help.quickbase.com/api-setkeyfield" --- > ## Documentation Index > Fetch the complete documentation index at: https://help.quickbase.com/llms.txt > Use this file to discover all available pages before exploring further. # API_SetKeyField **Don't forget to check out our** [**JSON RESTful APIs**](https://developer.quickbase.com/)**, they can help you utilize and extend Quickbase with ease.** ## Overview Use API_SetKeyField to specify a field in the table as the key field. You invoke this call on a table dbid. You must have full administration rights on the application to use this call. If you don't specify a key field, Quickbase uses the built-in Record ID field as the key field. However, if you want to use a different field as the key field for a table, the following conditions must be met: - The field type you pick must support uniqueness (make sure the Unique checkbox is checked, which disallows duplicate entries). - If there is data in the table, the field values must all be unique and cannot be blank. - You cannot specify a List - user or Multi-select text field, or any formula field, as the key field in a table. ## Request parameters | Parameter | Value | Required? | | --- | --- | --- | | ticket | A valid authentication ticket. The authentication ticket is returned via the API_Authenticate call. | yes, one of: - ticket - username/password - user token | | usertoken | The user token is an alternative means of authentication, used for API access. User tokens cannot be used to access the Quickbase UI. | yes, one of: - ticket - username/password - user token | | apptoken | A valid application token. | yes, if the application requires application tokens | | fid | The field ID of the table field to be used as the key field. | yes | | udata | A string value that you want returned. It will not be handled by Quickbase but it will be returned in the response. | no | ## Response values | Element Name | Value | | --- | --- | | action | The originating request, for example, API_SetKeyField. | | errcode | Identifies the error code, if any. (See the [Error Codes appendix](/v1/docs/error-codes) for a list of possible error codes.) 0 indicates that no error was encountered. | | errtext | Text that explains the error code. "No error" indicates that no error was encountered. | | udata | Optional. Contains any udata value supplied in the request. | ## Sample XML Request ```xml POST https://target_domain/db/target_dbid? Content-Type: application/xml Content-Length: QUICKBASE-ACTION: API_SetKeyField   auth_ticket   app_token   6   myudata ``` ## URL alternative ```plaintext https://target_domain/db/target_dbid?a=API_SetKeyField&fid=7 &ticket=auth_ticket&apptoken=app_token ``` where *target_domain* is the domain against which you are invoking this call, for example, *quickbase.com*. [Read about this notation](/v1/docs/understanding-the-api-call-reference). ## Sample response ```xml   API_SetKeyField   0   No error   myudata ```