Sample code for 30+ languages & platforms
AutoIt

Find a Label ID by Name

See more GMail REST API Examples

Lookup the ID of a GMail label by the label name.

Chilkat AutoIt Downloads

AutoIt
Local $bSuccess = False

; This example requires the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.

$oHttp = ObjCreate("Chilkat.Http")
$oHttp.AuthToken = "GMAIL-ACCESS-TOKEN"

Local $sUserId = "me"
$oHttp.SetUrlVar("userId",$sUserId)

Local $sUrl = "https://www.googleapis.com/gmail/v1/users/{$userId}/labels"

; Get the list of GMail labels as JSON.
$oSb = ObjCreate("Chilkat.StringBuilder")
$bSuccess = $oHttp.QuickGetSb($sUrl,$oSb)
If ($bSuccess <> True) Then
    ConsoleWrite($oHttp.LastErrorText & @CRLF)
    Exit
EndIf

$oJson = ObjCreate("Chilkat.JsonObject")
$oJson.LoadSb($oSb)
$oJson.EmitCompact = False
ConsoleWrite($oJson.Emit() & @CRLF)

If ($oHttp.LastStatus <> 200) Then
    ConsoleWrite("Failed." & @CRLF)
    Exit
EndIf

; The JSON returned looks like this:
; {
;   "labels": [
;     {
;       "id": "Label_5",
;       "name": "QA",
;       "messageListVisibility": "show",
;       "labelListVisibility": "labelShow",
;       "type": "user"
;     },
;     {
;       "id": "Label_21",
;       "name": "[Gmail]/testFolder",
;       "type": "user"
;     },
;     {
;       "id": "CATEGORY_PERSONAL",
;       "name": "CATEGORY_PERSONAL",
;       "type": "system"
;     },
; 	...

; The name of the label is generally known because it's what we visually see.
; The id is what we need to get.  Assuming the name is unique,
; find the JSON record having name=<desired name>
; For example...
Local $oJRecord = $oJson.FindRecord("labels","name","QA",False)
If ($oJson.LastMethodSuccess = True) Then
    ConsoleWrite("The id of QA is: " & $oJRecord.StringOf("id") & @CRLF)

EndIf

$oJRecord = $oJson.FindRecord("labels","name","[Gmail]/testFolder",False)
If ($oJson.LastMethodSuccess = True) Then
    ConsoleWrite("The id of [Gmail]/testFolder is: " & $oJRecord.StringOf("id") & @CRLF)

EndIf

$oJRecord = $oJson.FindRecord("labels","name","questions",False)
If ($oJson.LastMethodSuccess = True) Then
    ConsoleWrite("The id of questions is: " & $oJRecord.StringOf("id") & @CRLF)

EndIf

; Output:

; The id of QA is: Label_5
; The id of [Gmail]/testFolder is: Label_21
; The id of questions is: Label_43