> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://contentful.com/developers/docs/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://contentful.com/_mcp/server. # Get an asset GET https://cdn.contentful.com/spaces/{space_id}/environments/{environment_id}/assets/{asset_id} Reference: https://contentful.com/developers/docs/references/content-delivery-api/assets/get-an-asset ## Request ### Path parameters - `space_id` (string, required) — Alphanumeric id of the space to retrieve. - `environment_id` (string, required) — ID of the environment in form of a string. - `asset_id` (string, required) — Alphanumeric id of the asset to retrieve. ### Query parameters - `access_token` (string, required) — A *production* Content Delivery API key. ## Response ### 200 OK - Request successful - `map from string to any` ## Examples **Response** ```json { "fields": { "file": { "contentType": "image/png", "details": { "image": { "height": 250, "width": 250 }, "size": 12273 }, "fileName": "Nyan_cat_250px_frame.png", "url": "//images.ctfassets.net/yadj1kx9rmg0/4gp6taAwW4CmSgumq2ekUm/9da0cd1936871b8d72343e895a00d611/Nyan_cat_250px_frame.png" }, "title": "Nyan Cat" }, "metadata": { "tags": [ { "sys": { "id": "nyCampaign", "linkType": "Tag", "type": "Link" } } ] }, "sys": { "createdAt": "2025-08-05T01:51:02.000Z", "id": "nyancat", "revision": 1, "space": { "sys": { "id": "yadj1kx9rmg0", "linkType": "Space", "type": "Link" } }, "type": "Asset", "updatedAt": "2025-08-05T01:51:02.000Z" } } ``` **SDK Code** ```android Android // Create the Contentful client. final CDAClient client = CDAClient .builder() .setToken("") .setSpace("") .setEnvironment("") .build(); client .observe(CDAAsset.class) .one("") .observeOn(AndroidSchedulers.mainThread()) .subscribeOn(io.reactivex.schedulers.Schedulers.io()) .subscribe( new DisposableSubscriber() { CDAAsset result; @Override public void onComplete() { // Do something with the asset. new AlertDialog.Builder(context) .setTitle("Contentful") .setMessage("Found asset: " + (result == null ? "" : result.toString())) .show(); } @Override public void onError(Throwable e) { // Handle error case. new AlertDialog.Builder(context) .setTitle("Contentful") .setMessage("Could not find asset." + e.toString()) .show(); } @Override public void onNext(CDAAsset asset) { // Array received, maybe more to come. result = asset; } } ); ``` ```java Java // Create the Contentful client. final CDAClient client = CDAClient .builder() .setToken("") // required .setSpace("") // required .setEnvironment("") // optional, defaults to `master` .build(); final CDAAsset one = client .fetch(CDAAsset.class) .one(""); ``` ```kotlin Kotlin // Create the Contentful client. val client = CDAClient .builder() .setToken("") // required .setSpace("") // required .setEnvironment("") // optional, defaults to `master` .build() val one = client .fetch(CDAAsset::class.java) .one("") ``` ```swift Swift import Contentful // Retain the client as a property on a type you define so that // the client's asynchronous network callbacks are executed. let client = Client(spaceId: "", environmentId: "", // Defaults to "master" if omitted accessToken: "") client.fetchAsset(id: "") { (result: Result) in switch result { case .success(let asset): print(asset.id) case .error(let error): print(error) } } ``` ```javascript JavaScript import { createClient } from 'contentful-management' const client = createClient({ space: '', environment: '', // defaults to 'master' if not set accessToken: '' }) client.getAsset('') .then((asset) => console.log(asset)) .catch(console.error); ``` ```php PHP // contentful.php 3.0 $client = new Contentful\Delivery\Client( '', '', '' // Defaults to "master" if ommitted ); $asset = $client->getAsset(''); ``` ```ruby Ruby require 'contentful' client = Contentful::Client.new( space: '', access_token: '', environment: 'master', # Optional - defaults to 'master'. dynamic_entries: :auto # Enables Content Type caching. ) asset = client.asset('') ``` ```python Python from contentful import Client client = Client( '', '', environment='master' # Optional - it defaults to 'master'. ) asset = client.asset('') ``` ```.net .NET // This client should only be created once per application. var httpClient = new HttpClient(); var client = new ContentfulClient(httpClient, "", "", ""); var asset = await client.GetAsset(""); ```