Etapas para usar a API de pesquisa personalizada do Google no .NET

Estou tentando usar a API de pesquisa personalizada do Google no meu projeto .NET. Eu tenho uma chave de API fornecida pela minha empresa. Eu criei um mecanismo de pesquisa personalizado usando minha conta do Google e copiei o valor 'cx'.

Estou usando o seguinte código:

string apiKey = "My company Key";
string cx = "Cx";
string query = tbSearch.Text;

WebClient webClient = new WebClient();
webClient.Headers.Add("user-agent", "Only a test!");

string result = webClient.DownloadString(String.Format("https://www.googleapis.com/customsearch/v1?key={0}&cx={1}&q={2}&alt=json", apiKey, cx, query));

Estou recebendo o seguinte erro: "O servidor remoto retornou um erro: (403) proibido."

Eu tentei o seguinte código também:

Google.Apis.Customsearch.v1.CustomsearchService svc = new Google.Apis.Customsearch.v1.CustomsearchService();
svc.Key = apiKey;

Google.Apis.Customsearch.v1.CseResource.ListRequest listRequest = svc.Cse.List(query);
listRequest.Cx = cx;
Google.Apis.Customsearch.v1.Data.Search search = listRequest.Fetch();

foreach (Google.Apis.Customsearch.v1.Data.Result result1 in search.Items)
{
   Console.WriteLine("Title: {0}", result1.Title);
   Console.WriteLine("Link: {0}", result1.Link);
}

Aqui eu recebo a seguinte exceção em Fetch ():

Acesso ao Google.Apis.Requests.RequestError não configurado [403] Erros [Mensagem [Acesso não configurado] Localização [-] Motivo [accessNotConfigured] Domínio [usageLimits]

O parâmetro CX é obrigatório? Estou recebendo o erro porque estou usando a chave fornecida pela minha empresa e usando o parâmetro CX do mecanismo de pesquisa personalizado usando minha conta do Google?

Existe alguma outra maneira de obter 'cx'? Não queremos exibir anúncios do Google.

Muito obrigado antecipadamente por ajuda.

questionAnswers(2)

yourAnswerToTheQuestion