Connecticut Pick 4 Evening API integration
Step-by-step guide for fetching lottery metadata, schedule context, draw years, latest results, history, number frequency, and result checks with compact JSON read models.
Auth model
Use `Authorization: Bearer YOUR_API_KEY` from a server environment. Public website pages must not embed customer tokens.
Manage keysView statistics previewIntegration overview
Our public API uses stable `game_code` identifiers instead of numeric legacy IDs. Use the same game code in metadata, latest-result, history, frequency, and checker workflows.
Base URL
https://api.lotteryfeedapi.com
Format
JSON UTF-8
Auth
Bearer token
Draw date
2026-08-31
Endpoint matrix
Canonical routes for this game code.
API key
/account/api-keysLottery info
/v1/lotteries/ct-pick4-eveningSchedule
/v1/schedules?game_code=ct-pick4-evening&date=2026-08-31Draw years
/v1/lotteries/ct-pick4-evening/draw-yearsResults
/v1/results/latest/ct-pick4-evening?short=1Frequency
/v1/lotteries/ct-pick4-evening/frequencyChecker
/v1/results/checkGenerate an API key
Create a workspace key in your account and send it as a bearer token from a server environment.
Authorization: Bearer YOUR_API_KEY
Get Connecticut Pick 4 Evening metadata
Fetch state, country, ball count, latest result envelope, draw schedule metadata, and the canonical game code before wiring result jobs.
GET https://api.lotteryfeedapi.com/v1/lotteries/ct-pick4-evening
Add date-aware schedule context
Add date=YYYY-MM-DD when an integration needs a day-specific scheduled/not-scheduled hint, local draw label, UTC label, and timezone.
GET https://api.lotteryfeedapi.com/v1/schedules?game_code=ct-pick4-evening&date=2026-08-31
Discover available draw years
Use this before requesting yearly archives or building history filters in your own UI. The response uses indexed stored history when available and falls back to the latest visible draw year while backfills are still warming up.
GET https://api.lotteryfeedapi.com/v1/lotteries/ct-pick4-evening/draw-years
Fetch latest and historical results
Start with the latest-result route, then move to bounded history requests when you need a specific draw date or backfill.
GET https://api.lotteryfeedapi.com/v1/results/latest/ct-pick4-evening?short=1 GET https://api.lotteryfeedapi.com/v1/results/history?game_code=ct-pick4-evening&date=2026-08-31&short=1&limit=60
Calculate number frequency
Build bounded frequency summaries from the latest customer-visible draw date by default, or add a date parameter for a specific backfill day. Use the public statistics page as the human-readable preview.
GET https://api.lotteryfeedapi.com/v1/lotteries/ct-pick4-evening/frequency GET https://api.lotteryfeedapi.com/v1/lotteries/ct-pick4-evening/frequency?date=2026-08-31
Run a result checker
Submit selected numbers and compare them against the stored draw for this game code.
POST https://api.lotteryfeedapi.com/v1/results/check
{
"game_code": "ct-pick4-evening",
"draw_date": "2026-08-31",
"numbers": ["1","2","3"]
}Code examples
Keep keys server-side. The examples below fetch the latest result for `ct-pick4-evening` and use the same authorization model as every public `/v1` endpoint.
cURL
Minimal request for CLI checks and scheduled workers.
curl -sS 'https://api.lotteryfeedapi.com/v1/results/latest/ct-pick4-evening?short=1' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer YOUR_API_KEY'JavaScript
Server-side fetch wrapper for Node, Next.js route handlers, or workers.
const response = await fetch('https://api.lotteryfeedapi.com/v1/results/latest/ct-pick4-evening?short=1', {
headers: {
accept: 'application/json',
authorization: `Bearer ${process.env.LOTTERY_FEED_API_KEY}`
}
});
if (!response.ok) throw new Error(`Lottery Feed failed: ${response.status}`);
const result = await response.json();Python
Requests-based job for data sync or result alerting.
import os
import requests
response = requests.get(
'https://api.lotteryfeedapi.com/v1/results/latest/ct-pick4-evening?short=1',
headers={
'Accept': 'application/json',
'Authorization': f"Bearer {os.environ['LOTTERY_FEED_API_KEY']}",
},
timeout=10,
)
response.raise_for_status()
result = response.json()PHP
Guzzle example for platform and CRM backends.
use GuzzleHttp\Client;
$client = new Client(['base_uri' => 'https://api.lotteryfeedapi.com', 'timeout' => 10]);
$response = $client->get('/v1/results/latest/ct-pick4-evening?short=1', [
'headers' => [
'Accept' => 'application/json',
'Authorization' => 'Bearer ' . getenv('LOTTERY_FEED_API_KEY'),
],
]);
$result = json_decode($response->getBody()->getContents(), true);Ruby
Net::HTTP request for lightweight backend jobs.
require 'json'
require 'net/http'
require 'uri'
uri = URI('https://api.lotteryfeedapi.com/v1/results/latest/ct-pick4-evening?short=1')
request = Net::HTTP::Get.new(uri)
request['Accept'] = 'application/json'
request['Authorization'] = "Bearer #{ENV.fetch('LOTTERY_FEED_API_KEY')}"
response = Net::HTTP.start(uri.host, uri.port, use_ssl: true) { |http| http.request(request) }
result = JSON.parse(response.body)Go
Typed backend service or polling worker request.
package main
import (
"fmt"
"net/http"
"os"
)
func main() {
req, _ := http.NewRequest("GET", "https://api.lotteryfeedapi.com/v1/results/latest/ct-pick4-evening?short=1", nil)
req.Header.Set("Accept", "application/json")
req.Header.Set("Authorization", "Bearer "+os.Getenv("LOTTERY_FEED_API_KEY"))
resp, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer resp.Body.Close()
fmt.Println(resp.Status)
}Compact response fields
Customer-facing result evidence stays small and stable.
{
"game_code": "ct-pick4-evening",
"name": "Connecticut Pick 4 Evening",
"draw_date": "2026-08-31",
"numbers": [],
"numbers_formatted": "",
"numbers_string": "",
"source": "source",
"status": "stored",
"links": {
"schedule_api": "/v1/schedules?game_code=ct-pick4-evening&date=2026-08-31"
}
}Auth, rate limits, and delivery
Use this copy in customer applications, sales handoffs, and support responses.
Public demo — 24h delivery delay. This is an access policy, not an ingestion target.
Recent platform work corrected draw schedules across lotteries, including intraday and day-specific timings, increased polling frequency, and improved result detection and processing. Update times are already improving and should continue improving gradually where source access permits.
F6 and F7 reduce the plan delivery delay after feed storage. They do not create an ingestion SLA; any source-specific ingestion commitment requires separate review.
F7 applies a 5-minute plan delivery delay and is not included in standard subscriptions. It does not guarantee five-minute ingestion from draw time or official publication.FAQ
Operational notes for production integrations.
Which identifier should I store?
Store the stable game_code "ct-pick4-evening". Numeric reference-site IDs are only supported as compatibility redirects.
How do I get history?
Use /v1/results/history with game_code and date filters. Start with 2026-08-31 and expand by date or year as your product needs.
When should I poll?
Use /v1/schedules?game_code=ct-pick4-evening&date=2026-08-31 for date_context, local draw time, UTC time, and day rules before scheduling result checks.
Can I embed the token in a browser?
No. Keep bearer tokens in server-side jobs, backend routes, or secure worker environments. Use the embeddable widgets docs when you need a browser-safe result block.