Get information about a context cache

You can learn about the time a context cache was created, the time it was most recently updated, and the time it expires. To get information about every context cache associated with a Google Cloud project, including their cache IDs, use the command to list context caches. If you know the cache ID of a context cache, you can get information about just that context cache.

Get a list of context caches

To get a list of the context caches associated with a Google Cloud project, you need the region where you created and the ID of your Google Cloud project. The following shows you how to get a list of context caches for a Google Cloud project.

Python

Install

pip install --upgrade google-genai

To learn more, see the SDK reference documentation .

Set environment variables to use the Gen AI SDK with Vertex AI:

 # Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values 
 # with appropriate values for your project. 
 export 
  
 GOOGLE_CLOUD_PROJECT 
 = 
 GOOGLE_CLOUD_PROJECT 
 export 
  
 GOOGLE_CLOUD_LOCATION 
 = 
 us-central1 
 export 
  
 GOOGLE_GENAI_USE_VERTEXAI 
 = 
True
  from 
  
 google 
  
 import 
 genai 
 from 
  
 google.genai.types 
  
 import 
 HttpOptions 
 client 
 = 
 genai 
 . 
 Client 
 ( 
 http_options 
 = 
 HttpOptions 
 ( 
 api_version 
 = 
 "v1" 
 )) 
 content_cache_list 
 = 
 client 
 . 
 caches 
 . 
 list 
 () 
 # Access individual properties of a ContentCache object(s) 
 for 
 content_cache 
 in 
 content_cache_list 
 : 
 print 
 ( 
 f 
 "Cache ` 
 { 
 content_cache 
 . 
 name 
 } 
 ` for model ` 
 { 
 content_cache 
 . 
 model 
 } 
 `" 
 ) 
 print 
 ( 
 f 
 "Last updated at: 
 { 
 content_cache 
 . 
 update_time 
 } 
 " 
 ) 
 print 
 ( 
 f 
 "Expires at: 
 { 
 content_cache 
 . 
 expire_time 
 } 
 " 
 ) 
 # Example response: 
 # * Cache `projects/111111111111/locations/us-central1/cachedContents/1111111111111111111` for 
 #       model `projects/111111111111/locations/us-central1/publishers/google/models/gemini-XXX-pro-XXX` 
 # * Last updated at: 2025-02-13 14:46:42.620490+00:00 
 # * CachedContentUsageMetadata(audio_duration_seconds=None, image_count=167, text_count=153, total_token_count=43130, video_duration_seconds=None) 
 # ... 
 

Go

Learn how to install or update the Go .

To learn more, see the SDK reference documentation .

Set environment variables to use the Gen AI SDK with Vertex AI:

 # Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values 
 # with appropriate values for your project. 
 export 
  
 GOOGLE_CLOUD_PROJECT 
 = 
 GOOGLE_CLOUD_PROJECT 
 export 
  
 GOOGLE_CLOUD_LOCATION 
 = 
 us-central1 
 export 
  
 GOOGLE_GENAI_USE_VERTEXAI 
 = 
True
  import 
  
 ( 
 "context" 
 "fmt" 
 "io" 
 "net/http" 
 "time" 
 "google.golang.org/genai" 
 ) 
 // 
 listContentCache 
 shows 
 how 
 to 
 retrieve 
 details 
 about 
 cached 
 content 
 . 
 func 
 listContentCache 
 ( 
 w 
 io 
 . 
 Writer 
 ) 
 error 
 { 
 ctx 
 := 
 context 
 . 
 Background 
 () 
 client 
 , 
 err 
 := 
 genai 
 . 
 NewClient 
 ( 
 ctx 
 , 
& genai 
 . 
 ClientConfig 
 { 
 HTTPOptions 
 : 
 genai 
 . 
 HTTPOptions 
 { 
 APIVersion 
 : 
 "v1" 
 }, 
 }) 
 if 
 err 
 != 
 nil 
 { 
 return 
 fmt 
 . 
 Errorf 
 ( 
 "failed to create genai client: %w" 
 , 
 err 
 ) 
 } 
 // 
 Retrieve 
 cached 
 content 
 metadata 
 cache 
 , 
 err 
 := 
 client 
 . 
 Caches 
 . 
 List 
 ( 
 ctx 
 , 
& genai 
 . 
 ListCachedContentsConfig 
 { 
 HTTPOptions 
 : 
& genai 
 . 
 HTTPOptions 
 { 
 Headers 
 : 
 http 
 . 
 Header 
 { 
 "X-Custom-Header" 
 : 
 [] 
 string 
 { 
 "example" 
 }}, 
 APIVersion 
 : 
 "v1" 
 , 
 }, 
 }) 
 if 
 err 
 != 
 nil 
 { 
 return 
 fmt 
 . 
 Errorf 
 ( 
 "failed to get content cache: %w" 
 , 
 err 
 ) 
 } 
 // 
 Print 
 basic 
 info 
 about 
 the 
 cached 
 content 
 fmt 
 . 
 Fprintf 
 ( 
 w 
 , 
 "Cache name: 
 %s 
 \n 
 " 
 , 
 cache 
 . 
 Name 
 ) 
 fmt 
 . 
 Fprintf 
 ( 
 w 
 , 
 "Display name: 
 %s 
 \n 
 " 
 , 
 cache 
 . 
 Items 
 [ 
 0 
 ] 
 . 
 DisplayName 
 ) 
 fmt 
 . 
 Fprintf 
 ( 
 w 
 , 
 "Model: 
 %s 
 \n 
 " 
 , 
 cache 
 . 
 Items 
 [ 
 0 
 ] 
 . 
 Model 
 ) 
 fmt 
 . 
 Fprintf 
 ( 
 w 
 , 
 "Create time: 
 %s 
 \n 
 " 
 , 
 cache 
 . 
 Items 
 [ 
 0 
 ] 
 . 
 CreateTime 
 . 
 Format 
 ( 
 time 
 . 
 RFC3339 
 )) 
 fmt 
 . 
 Fprintf 
 ( 
 w 
 , 
 "Update time: 
 %s 
 \n 
 " 
 , 
 cache 
 . 
 Items 
 [ 
 0 
 ] 
 . 
 UpdateTime 
 . 
 Format 
 ( 
 time 
 . 
 RFC3339 
 )) 
 fmt 
 . 
 Fprintf 
 ( 
 w 
 , 
 "Expire time: 
 %s 
 (in 
 %s 
 ) 
 \n 
 " 
 , 
 cache 
 . 
 Items 
 [ 
 0 
 ] 
 . 
 ExpireTime 
 . 
 Format 
 ( 
 time 
 . 
 RFC3339 
 ), 
 time 
 . 
 Until 
 ( 
 cache 
 . 
 Items 
 [ 
 0 
 ] 
 . 
 ExpireTime 
 ) 
 . 
 Round 
 ( 
 time 
 . 
 Second 
 )) 
 if 
 cache 
 . 
 Items 
 [ 
 0 
 ] 
 . 
 UsageMetadata 
 != 
 nil 
 { 
 fmt 
 . 
 Fprintf 
 ( 
 w 
 , 
 "Usage metadata: %+v 
 \n 
 " 
 , 
 cache 
 . 
 Items 
 [ 
 0 
 ] 
 . 
 UsageMetadata 
 ) 
 } 
 // 
 Example 
 response 
 : 
 // 
 Cache 
 name 
 : 
 projects 
 / 
 111111111111 
 / 
 locations 
 / 
 us 
 - 
 central1 
 / 
 cachedContents 
 / 
 1234567890123456789 
 // 
 Display 
 name 
 : 
 product_recommendations_prompt 
 // 
 Model 
 : 
 models 
 / 
 gemini 
 - 
 2.5 
 - 
 flash 
 // 
 Create 
 time 
 : 
 2025 
 - 
 04 
 - 
 08 
 T02 
 : 
 15 
 : 
 23 
 Z 
 // 
 Update 
 time 
 : 
 2025 
 - 
 04 
 - 
 08 
 T03 
 : 
 05 
 : 
 11 
 Z 
 // 
 Expire 
 time 
 : 
 2025 
 - 
 04 
 - 
 20 
 T03 
 : 
 05 
 : 
 11 
 Z 
 ( 
 in 
 167 
 h59m59s 
 ) 
 // 
 Usage 
 metadata 
 : 
& { 
 AudioDurationSeconds 
 : 
 0 
 ImageCount 
 : 
 167 
 TextCount 
 : 
 153 
 TotalTokenCount 
 : 
 43124 
 VideoDurationSeconds 
 : 
 0 
 } 
 return 
 nil 
 } 
 

Java

Learn how to install or update the Java .

To learn more, see the SDK reference documentation .

Set environment variables to use the Gen AI SDK with Vertex AI:

 # Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values 
 # with appropriate values for your project. 
 export 
  
 GOOGLE_CLOUD_PROJECT 
 = 
 GOOGLE_CLOUD_PROJECT 
 export 
  
 GOOGLE_CLOUD_LOCATION 
 = 
 us-central1 
 export 
  
 GOOGLE_GENAI_USE_VERTEXAI 
 = 
True
  import 
  
 com.google.genai.Client 
 ; 
 import 
  
 com.google.genai.types.CachedContent 
 ; 
 import 
  
 com.google.genai.types.HttpOptions 
 ; 
 import 
  
 com.google.genai.types.ListCachedContentsConfig 
 ; 
 public 
 class 
  
 ContentCacheList 
 { 
 public 
 static 
 void 
 main 
 ( 
 String 
 [] 
 args 
 ) 
 { 
 contentCacheList 
 (); 
 } 
 // 
 Lists 
 all 
 cached 
 contents 
 public 
 static 
 void 
 contentCacheList 
 () 
 { 
 // 
 Initialize 
 client 
 that 
 will 
 be 
 used 
 to 
 send 
 requests 
 . 
 This 
 client 
 only 
 needs 
 to 
 be 
 created 
 // 
 once 
 , 
 and 
 can 
 be 
 reused 
 for 
 multiple 
 requests 
 . 
 try 
 ( 
 Client 
 client 
 = 
 Client 
 . 
 builder 
 () 
 . 
 location 
 ( 
 "global" 
 ) 
 . 
 vertexAI 
 ( 
 true 
 ) 
 . 
 httpOptions 
 ( 
 HttpOptions 
 . 
 builder 
 () 
 . 
 apiVersion 
 ( 
 "v1" 
 ) 
 . 
 build 
 ()) 
 . 
 build 
 ()) 
 { 
 for 
 ( 
 CachedContent 
 content 
 : 
 client 
 . 
 caches 
 . 
 list 
 ( 
 ListCachedContentsConfig 
 . 
 builder 
 () 
 . 
 build 
 ())) 
 { 
 content 
 . 
 name 
 () 
 . 
 ifPresent 
 ( 
 name 
 - 
> System 
 . 
 out 
 . 
 println 
 ( 
 "Name: " 
 + 
 name 
 )); 
 content 
 . 
 model 
 () 
 . 
 ifPresent 
 ( 
 model 
 - 
> System 
 . 
 out 
 . 
 println 
 ( 
 "Model: " 
 + 
 model 
 )); 
 content 
 . 
 updateTime 
 () 
 . 
 ifPresent 
 ( 
 time 
 - 
> System 
 . 
 out 
 . 
 println 
 ( 
 "Last updated at: " 
 + 
 time 
 )); 
 content 
 . 
 expireTime 
 () 
 . 
 ifPresent 
 ( 
 time 
 - 
> System 
 . 
 out 
 . 
 println 
 ( 
 "Expires at: " 
 + 
 time 
 )); 
 } 
 // 
 Example 
 response 
 : 
 // 
 Name 
 : 
 projects 
 / 
 111111111111 
 / 
 locations 
 / 
 global 
 / 
 cachedContents 
 / 
 1111111111111111111 
 // 
 Model 
 : 
 // 
 projects 
 / 
 111111111111 
 / 
 locations 
 / 
 global 
 / 
 publishers 
 / 
 google 
 / 
 models 
 / 
 gemini 
 - 
 2.5 
 - 
 flash 
 // 
 Last 
 updated 
 at 
 : 
 2025 
 - 
 07 
 - 
 28 
 T21 
 : 
 54 
 : 
 19.125825 
 Z 
 // 
 Expires 
 at 
 : 
 2025 
 - 
 08 
 - 
 04 
 T21 
 : 
 54 
 : 
 18.328233500 
 Z 
 // 
 ... 
 } 
 } 
 } 
 

REST

The following shows how to use REST to list the context caches associated with a Google Cloud project by sending a GET request to the publisher model endpoint.

Before using any of the request data, make the following replacements:

HTTP method and URL:

GET https:// LOCATION 
-aiplatform.googleapis.com/v1/projects/ PROJECT_ID 
/locations/ LOCATION 
/cachedContents

To send your request, choose one of these options:

curl

Execute the following command:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https:// LOCATION -aiplatform.googleapis.com/v1/projects/ PROJECT_ID /locations/ LOCATION /cachedContents"

PowerShell

Execute the following command:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https:// LOCATION -aiplatform.googleapis.com/v1/projects/ PROJECT_ID /locations/ LOCATION /cachedContents" | Select-Object -Expand Content

You should receive a JSON response similar to the following:

Example curl command

  LOCATION 
 = 
 "us-central1" 
 PROJECT_ID 
 = 
 " PROJECT_ID 
" 
curl  
 \ 
-X  
GET  
 \ 
-H  
 "Authorization: Bearer 
 $( 
gcloud  
auth  
print-access-token ) 
 " 
  
 \ 
https:// ${ 
 LOCATION 
 } 
-aiplatform.googleapis.com/v1/projects/ ${ 
 PROJECT_ID 
 } 
/locations/ ${ 
 LOCATION 
 } 
/cachedContents 

Get information about a context cache

To get information about one context cache, you need its cache ID, the Google Cloud project ID with which the context cache is associated, and the region where the request to create the context cache was processed. The cache ID of a context cache is returned when you create the context cache. You can also get the cache ID of each context cache associated with a project using the context cache list command .

The following shows you how to get information about one context cache.

Go

Before trying this sample, follow the Go setup instructions in the Vertex AI quickstart. For more information, see the Vertex AI Go SDK for Gemini reference documentation .

To authenticate to Vertex AI, set up Application Default Credentials. For more information, see Set up ADC for a local development environment .

Streaming and non-streaming responses

You can choose whether the model generates streaming responses or non-streaming responses. For streaming responses, you receive each response as soon as its output token is generated. For non-streaming responses, you receive all responses after all of the output tokens are generated.

For a streaming response, use the GenerateContentStream method.

iter := model.GenerateContentStream(ctx, genai.Text("Tell me a story about a lumberjack and his giant ox. Keep it very short."))

For a non-streaming response, use the GenerateContent method.

resp, err := model.GenerateContent(ctx, genai.Text("What is the average size of a swallow?"))

Sample code

  import 
  
 ( 
  
 "context" 
  
 "fmt" 
  
 "io" 
  
 "cloud.google.com/go/vertexai/genai" 
 ) 
 // getContextCache shows how to retrieve the metadata of a cached content 
 // contentName is the ID of the cached content to retrieve 
 func 
  
 getContextCache 
 ( 
 w 
  
 io 
 . 
 Writer 
 , 
  
 contentName 
  
 string 
 , 
  
 projectID 
 , 
  
 location 
  
 string 
 ) 
  
 error 
  
 { 
  
 // location := "us-central1" 
  
 ctx 
  
 := 
  
 context 
 . 
 Background 
 () 
  
 client 
 , 
  
 err 
  
 := 
  
 genai 
 . 
  NewClient 
 
 ( 
 ctx 
 , 
  
 projectID 
 , 
  
 location 
 ) 
  
 if 
  
 err 
  
 != 
  
 nil 
  
 { 
  
 return 
  
 fmt 
 . 
 Errorf 
 ( 
 "unable to create client: %w" 
 , 
  
 err 
 ) 
  
 } 
  
 defer 
  
 client 
 . 
  Close 
 
 () 
  
 cachedContent 
 , 
  
 err 
  
 := 
  
 client 
 . 
  GetCachedContent 
 
 ( 
 ctx 
 , 
  
 contentName 
 ) 
  
 if 
  
 err 
  
 != 
  
 nil 
  
 { 
  
 return 
  
 fmt 
 . 
 Errorf 
 ( 
 "GetCachedContent: %w" 
 , 
  
 err 
 ) 
  
 } 
  
 fmt 
 . 
 Fprintf 
 ( 
 w 
 , 
  
 "Retrieved cached content %q" 
 , 
  
 cachedContent 
 . 
  Name 
 
 ) 
  
 return 
  
 nil 
 } 
 

REST

The following shows how to use REST to list the context caches associated with a Google Cloud project by sending a GET request to the publisher model endpoint.

Before using any of the request data, make the following replacements:

  • PROJECT_ID : .
  • LOCATION : The region where the request to create the context cache was processed.
  • CACHE_ID : The ID of the context cache. The context cache ID is returned when you create the context cache. You can also find context cache IDs by listing the context caches for a Google Cloud project using. For more information, see create a context cache and list context caches .

HTTP method and URL:

GET https:// LOCATION 
-aiplatform.googleapis.com/v1/projects/ PROJECT_ID 
/locations/ LOCATION 
/cachedContents/ CACHE_ID 

To send your request, choose one of these options:

curl

Execute the following command:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https:// LOCATION -aiplatform.googleapis.com/v1/projects/ PROJECT_ID /locations/ LOCATION /cachedContents/ CACHE_ID "

PowerShell

Execute the following command:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https:// LOCATION -aiplatform.googleapis.com/v1/projects/ PROJECT_ID /locations/ LOCATION /cachedContents/ CACHE_ID " | Select-Object -Expand Content

You should receive a JSON response similar to the following:

Example curl command

  LOCATION 
 = 
 "us-central1" 
 PROJECT_ID 
 = 
 " PROJECT_ID 
" 
 CACHE_ID 
 = 
 " CACHE_ID 
" 
curl  
 \ 
-X  
GET  
 \ 
-H  
 "Authorization: Bearer 
 $( 
gcloud  
auth  
print-access-token ) 
 " 
  
 \ 
https:// ${ 
 LOCATION 
 } 
-aiplatform.googleapis.com/v1/projects/ ${ 
 PROJECT_ID 
 } 
/locations/ ${ 
 LOCATION 
 } 
/ ${ 
 CACHE_ID 
 } 
 
Create a Mobile Website
View Site in Mobile | Classic
Share by: