Search API

October 24, 2012 - HTTPS is now supported for Search and Lookup requests. Please update your processes to use https or follow a redirect from http.

Table of Contents


Overview

The Search API allows you to place search fields in your website to search for content within the iTunes Store, App Store, iBookstore and Mac App Store. You can search for a variety of content; including apps, ebooks, movies, podcasts, music, music videos, audiobooks, and TV shows. You can also call an ID-based lookup request to create mappings between your content library and the digital catalog. Terms and conditions apply.

The Affiliate Program allows you to earn a commission on qualifying revenue generated by clicks initiated from your website or app into the iTunes Store, App Store, iBookstore, and Mac App Store. For more information on the Affiliate Program, see http://www.apple.com/itunes/affiliates.

Searching

To search for content from a field in your website and display the results in your website, you must create a search field that passes a fully-qualified URL content request to the iTunes Store, parse the JavaScript Object Notation (JSON) format returned from the search, and display the results in your website.

The fully-qualified URL must have the following format:

https://itunes.apple.com/search?parameterkeyvalue

Where parameterkeyvalue can be one or more parameter key and value pairs indicating the details of your query.

To construct a parameter key and value pair, you must concatenate each parameter key with an equal sign (=) and a value string. For example:key1=value1. To create a string of parameter key and value pairs, you must concatenate each pair using an ampersand (&). For example:

key1=value1&key2=value2&key3=value3

Note: When creating search fields and scripts for your website, you should use dynamic script tags for your xmlhttp script call requests. For example:

<script src="https://.../search?parameterkeyvalue&callback="{name of JavaScript function in webpage}"/>

The following table defines the parameter keys and values you can specify to search for content within the iTunes Store, App Store, iBookstore and Mac App Store:

Parameter Key Description Required Values
term The URL-encoded text string you want to search for. For example: jack+johnson. Y

Any URL-encoded text string.

Note: URL encoding replaces spaces with the plus (+) character and all characters except the following are encoded: letters, numbers, periods (.), dashes (-), underscores (_), and asterisks (*).

country

The two-letter country code for the store you want to search. The search uses the default store front for the specified country. For example: US.

The default is US.

Y See http://en.wikipedia.org/wiki/ ISO_3166-1_alpha-2 for a list of ISO Country Codes.
media

The media type you want to search for. For example: movie.

The default is all.

N movie, podcast, music, musicVideo, audiobook, shortFilm, tvShow, software, ebook, all
entity

The type of results you want returned, relative to the specified media type. For example: movieArtist for a movie media type search.

The default is the track entity associated with the specified media type.

N

The following entities are available for each media type:

movie movieArtist, movie
podcast podcastAuthor, podcast
music musicArtist, musicTrack, album, musicVideo, mix, song
Please note that "musicTrack" can include both songs and music videos in the results
musicVideo musicArtist, musicVideo
audiobook audiobookAuthor, audiobook
shortFilm shortFilmArtist, shortFilm
tvShow tvEpisode, tvSeason
software software, iPadSoftware, macSoftware
ebook ebook
all movie, album, allArtist, podcast, musicVideo, mix, audiobook, tvSeason, allTrack
attribute

The attribute you want to search for in the stores, relative to the specified media type. For example, if you want to search for an artist by name specify entity=allArtist&attribute=allArtistTerm.

In this example, if you search for term=maroon, iTunes returns "Maroon 5" in the search results, instead of all artists who have ever recorded a song with the word "maroon" in the title.

The default is all attributes associated with the specified media type.

N

The following attributes are available for each media type:

movie actorTerm, genreIndex, artistTerm, shortFilmTerm, producerTerm, ratingTerm, directorTerm, releaseYearTerm, featureFilmTerm, movieArtistTerm, movieTerm, ratingIndex, descriptionTerm
podcast titleTerm, languageTerm, authorTerm, genreIndex, artistTerm, ratingIndex, keywordsTerm, descriptionTerm
music mixTerm, genreIndex, artistTerm, composerTerm, albumTerm, ratingIndex, songTerm
musicVideo genreIndex, artistTerm, albumTerm, ratingIndex, songTerm
audiobook titleTerm, authorTerm, genreIndex, ratingIndex
shortFilm genreIndex, artistTerm, shortFilmTerm, ratingIndex, descriptionTerm
software softwareDeveloper
tvShow genreIndex, tvEpisodeTerm, showTerm, tvSeasonTerm, ratingIndex, descriptionTerm
all actorTerm, languageTerm, allArtistTerm, tvEpisodeTerm, shortFilmTerm, directorTerm, releaseYearTerm, titleTerm, featureFilmTerm, ratingIndex, keywordsTerm, descriptionTerm, authorTerm, genreIndex, mixTerm, allTrackTerm, artistTerm, composerTerm, tvSeasonTerm, producerTerm, ratingTerm, songTerm, movieArtistTerm, showTerm, movieTerm, albumTerm
callback The name of the Javascript callback function you want to use when returning search results to your website. For example: wsSearchCB. Y, for cross-site searches wsSearchCB
limit

The number of search results you want the iTunes Store to return. For example: 25.

The default is 50.

N 1 to 200
lang

The language, English or Japanese, you want to use when returning search results. Specify the language using the five-letter codename. For example: en_us.

The default is en_us (English).

N en_us, ja_jp
version

The search result key version you want to receive back from your search.

The default is 2.

N 1, 2
explicit

A flag indicating whether or not you want to include explicit content in your search results.

The default is Yes.

N Yes, No
Notes
  • It is critical to encode your URLs correctly in order to be commissioned for affiliate links. Notes on affiliate encoding raw links can be found in theAdvanced Affiliate Linking document.
  • To improve response times, minimize the number of search results the Search API returns by specifying an appropriate value for the limit parameter key.
  • Large websites should set up caching logic for the search and lookup requests sent to the Search API. For an illustration, see Caching Architecture later in this document.
Search Examples

The following are examples of fully-qualified URLs for specific search requests:

Lookup Examples

You can also create a lookup request to search for content in the stores based on iTunes IDs, UPCs/ EANs, and All Music Guide (AMG) IDs. ID-based lookups are faster and contain fewer false-positive results.

The following are examples of fully-qualified URLs for specific lookup requests:

Understanding Search Results

The Search API returns your search results in JavaScript Object Notation (JSON) format. JSON is built on two structures:

  • A collection of name/value pairs, also known as an object; this concept is similar to a Java Map object, a Javascript Dictionary, or a Pearl/Ruby hash. An object is an unordered set of name/value pairs, beginning with a left brace ( { ) and ending with a right brace ( } ). Each name is surrounded by double-quotes and followed by a colon ( : ); the name/value pairs are separated by commas ( , ).
  • An ordered list of values, also known as an array. An array is an ordered collection of values, beginning with a left bracket ( [ ) and ending with a right bracket ( ] ). Values are separated by commas ( , ).

All JSON results are encoded as UTF-8. For more information on JSON, please see http://www.json.org.

The following example displays the JSON results for a song in the iTunes Store:

{"wrapperType":"track",
"kind":"song",
"artistId":909253,
"collectionId":120954021,
"trackId":120954025,
"artistName":"Jack Johnson",
"collectionName":"Sing-a-Longs and Lullabies for the Film Curious George",
"trackName":"Upside Down",
"collectionCensoredName":"Sing-a-Longs and Lullabies for the Film Curious George",
"trackCensoredName":"Upside Down",
"artistViewUrl":"https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewArtist?id=909253",
"collectionViewUrl":"https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewAlbum?i=120954025&id=120954021&s=143441",
"trackViewUrl":"https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewAlbum?i=120954025&id=120954021&s=143441",
"previewUrl":"http://a1099.itunes.apple.com/r10/Music/f9/54/43/mzi.gqvqlvcq.aac.p.m4p",
"artworkUrl60":"http://a1.itunes.apple.com/r10/Music/3b/6a/33/mzi.qzdqwsel.60x60-50.jpg",
"artworkUrl100":"http://a1.itunes.apple.com/r10/Music/3b/6a/33/mzi.qzdqwsel.100x100-75.jpg",
"collectionPrice":10.99,
"trackPrice":0.99,
"collectionExplicitness":"notExplicit",
"trackExplicitness":"notExplicit",
"discCount":1,
"discNumber":1,
"trackCount":14,
"trackNumber":1,
"trackTimeMillis":210743,
"country":"USA",
"currency":"USD",
"primaryGenreName":"Rock"}

The following table defines the JSON result keys and values:

Result Key Description Returned Return Values and Examples
wrapperType The name of the object returned by the search request. Y

track, collection, artist

For example: track.

*explicitness

The Recording Industry Association of America (RIAA) parental advisory for the content returned by the search request.

For more information, seehttp://itunes.apple.com/WebObjects/MZStore.woa/wa/parentalAdvisory.

Y

explicit (explicit lyrics, possibly explicit album cover), cleaned (explicit lyrics "bleeped out"), notExplicit (no explicit lyrics)

For example: "trackExplicitness":"notExplicit".

kind The kind of content returned by the search request. Y

book, album, coached-audio, feature-movie, interactive- booklet, music-video, pdf podcast, podcast-episode, software-package, song, tv- episode, artist

For example: song.

trackName The name of the track, song, video, TV episode, and so on returned by the search request. Y For example: "Banana Pancakes".
artistName The name of the artist returned by the search request. Y For example: Jack Johnson.
collectionName The name of the album, TV season, audiobook, and so on returned by the search request. Y For example: "In Between Dreams".
*censoredName

The name of the album, TV season, audiobook, and so on returned by the search request, with objectionable words *'d out.

Note: Artist names are never censored.

Y For example: "S**t Happens".
artworkUrl100, artworkUrl60 A URL for the artwork associated with the returned media type, sized to 100x100 pixels or 60x60 pixels. Only returned when artwork is available For example: "http:// a1.itunes.apple.com/jp/r10/Music/ y2005/m06/d03/h05/ s05.oazjtxkw.100x100-75.jpg".
*viewURL A URL for the content associated with the returned media type. You can click the URL to view the content in the iTunes Store. Y For example: "http:// itunes.apple.com/WebObjects/ MZStore.woa/wa/viewAlbum? i=68615807&id=68615813&s=1434 62".
previewUrl A URL referencing the 30-second preview file for the content associated with the returned media type. . Only returned when media type is track For example: "http:// a392.itunes.apple.com/jp/r10/ Music/y2005/m06/d03/h05/s05.zdzqlufu.p.m4p".
trackTimeMillis The returned track's time in milliseconds. Only returned when media type is track  

Caching Architecture

Legal

Affiliate may use certain promotional content as may be provided by Apple, including previews of songs and music videos, album art, and App icons ("Promo Content"), for the purposes of promoting the subject of the Promo Content; provided such Promo Content: (i) is placed only on pages that promote the content on which the Promo Content is based; (ii) is proximate to a "Download on iTunes" or "Available on the App Store" badge (as approved by Apple) that acts as a link directly to pages within iTunes or the App Store where consumers can purchase the promoted content; (iii) includes attribution indicating the Promo Content was "provided courtesy of iTunes" if such Promo Content includes song or music video previews; (iv) is streamed only, and not downloaded, saved, cached, or synchronized with video, if such Promo Content includes song or music video previews; (v) is not used for independent entertainment value apart from its promotional purpose; and (vi) is not used to promote any other goods or services. Affiliate acknowledges that Apple provides the Promo Content "as is," and disclaims any and all representations or warranties, including, but not limited to, non-infringement. Affiliate shall forward any claims received in connection with the Promo Content to Apple immediately upon receipt, and will remove any Promo Content immediately upon request from Apple.

This agreement and your use of Promo Content are governed by California law.

Search API 官方文档 可以用了查看自己的app的更多相关文章

  1. SolrJ API 官方文档最佳实践

    以下内容译自Solr Wiki官方文档,版权没有,随意转载. Solrj 是一个访问solr的Java客户端.它提供了一个java接口用于添加更新和查询solr索引.本页面介绍SolrJ最新版本1.4 ...

  2. 【Android API】Android 4.1 API官方文档详解

    原文:http://android.eoe.cn/topic/summary 翻译:[eoeAndroid原创团队]kris.流风而逝.贼寇在何方.snowxwyo.lsy4833406 更新日期:2 ...

  3. 《Spark Python API 官方文档中文版》 之 pyspark.sql (一)

    摘要:在Spark开发中,由于需要用Python实现,发现API与Scala的略有不同,而Python API的中文资料相对很少.每次去查英文版API的说明相对比较慢,还是中文版比较容易get到所需, ...

  4. 《Spark Python API 官方文档中文版》 之 pyspark.sql (二)

    摘要:在Spark开发中,由于需要用Python实现,发现API与Scala的略有不同,而Python API的中文资料相对很少.每次去查英文版API的说明相对比较慢,还是中文版比较容易get到所需, ...

  5. 《Spark Python API 官方文档中文版》 之 pyspark.sql (四)

    摘要:在Spark开发中,由于需要用Python实现,发现API与Scala的略有不同,而Python API的中文资料相对很少.每次去查英文版API的说明相对比较慢,还是中文版比较容易get到所需, ...

  6. 《Spark Python API 官方文档中文版》 之 pyspark.sql (三)

    摘要:在Spark开发中,由于需要用Python实现,发现API与Scala的略有不同,而Python API的中文资料相对很少.每次去查英文版API的说明相对比较慢,还是中文版比较容易get到所需, ...

  7. Restful API官方文档

    理解Restful架构:http://www.ruanyifeng.com/blog/2011/09/restful RESTful设计指南:http://www.ruanyifeng.com/blo ...

  8. ElasticSearch(6.2.2)的java API官方文档的总结 (三)

    一 : SearchRequest用于任何与搜索文档,聚合和建议有关的操作,并且还提供了对生成的文档进行高亮显示的方法. 在最基本的形式中,我们可以向请求添加一个查询:    1:添加一个Search ...

  9. lua api 官方文档 函数后面的方括号 说明 [-0, +0, –]

    本博客注有“转”字样的为转载文章,其余为本人原创文章,转载请务必注明出处或保存此段.c++/lua/windows逆向交流群:69148232 每一个lua api 函数结尾都给出了这样的说明例如: ...

随机推荐

  1. 深入浅出MongoDB(三)环境搭建

    上次的博文深入浅出MongoDB(二)概述中我们已经将MongoDB的相关概念讲解了一下,接下来我们继续进行MongoDB学习.在学习之前,大家首先需要在自己的电脑上安装MongoDB. 1.安装 安 ...

  2. 黑白棋游戏 (codevs 2743)题解

    [问题描述] 黑白棋游戏的棋盘由4×4方格阵列构成.棋盘的每一方格中放有1枚棋子,共有8枚白棋子和8枚黑棋子.这16枚棋子的每一种放置方案都构成一个游戏状态.在棋盘上拥有1条公共边的2个方格称为相邻方 ...

  3. 创业日记-关于学习Python

    2015年7月2日 深圳 阴天 学习Python有一个月了,总整感觉Python是一个比较小而灵活的语言. 为什么要学习Python 今年我已入行有9年了,一直在写C#,关于微软的集成环境也用的比较顺 ...

  4. Python学习教程(learning Python)--2.2 Python下的变量基础

    变量的基本概念,变量可以这样去理解,变量是一个值,这个值存储在计算机的内存里.以 网购为例,您在选购傻商品的时候,是在不同页面里选不同的商品,选好一件点击“放入购物车”,选完了再点击去结帐,这些商品的 ...

  5. DB2物化表

    DB2物化查询表(MQT)是DB2数据库中一类特殊的表 物化表和视图的区别 物化表是一个查询结果集,视图是一个SQL语句. 以下是一个简单例子(说明物化表) 1.创建表,插入测试数据 ----创建表 ...

  6. Should .close() be put in finally block or not?

    The following are 3 different ways to close a output writer. The first one puts close() method in tr ...

  7. KnockoutJS学习笔记10:KonckoutJS foreach绑定

      KnockoutJS foreach绑定用来处理数组,通常用来将一个数组绑定到一个列表或者table中.在foreach绑定中,我们可以使用if.with等嵌套绑定. 示例代码: <tabl ...

  8. PHY

    Linux 下smi/mdio总线通信 韩大卫@吉林师范大学 下面代码描述了在用户层访问smi/mdio总线, 读写phy芯片寄存器的通用代码.Linux内核2.6以上通用. 将下面代码编译后,将可执 ...

  9. iOS学习之C语言指针

     访问数据的两种方式: 1.直接访问: 2.间接访问:先找到内存地址,根据地址访问存储单元.(内存地址 被称为指针) 定义指针变量: 类型修饰符 *指针变量名 = NULL; NULL表示空指针,相当 ...

  10. TFS(Taobao File System)安装方法

    文章目录: 一.TFS(Taobao File System)安装方法 二.TFS(Taobao File System)配置dataServer.分区.挂载数据盘 三.TFS(Taobao File ...