An Objective-C job talks to Trends API with one POST to https://api.trendsapi.ai/api, a Bearer key, and a JSON body that names a mode. There is no official CocoaPods package. NSURLSession sends the request. NSJSONSerialization parses the envelope, then parses the body string a second time. Pulled on 2026-09-28, Google Search for objective-c scored 19.0 for the week of 2026-09-26, down 9.52% from 21.0. objective c scored 46.0, up 15.0% from 40.0. objc scored 24.0, up 9.09% from 22.0. Do not copy 46.0 onto 19.0. Do not treat cocoa Search 67.0, up 15.52% from 58.0, as the language token. The same helper that stores those rows also pulls a live Google Trends board; a rank-12 token that weekly Search printed at 21.0 versus 7.0 is documented in Cornell University live rank versus weekly Search.
How does an Objective-C client call Trends API?
POST https://api.trendsapi.ai/api
Authorization: Bearer <api_key>
Content-Type: application/json
{"mode":"get_growth","source":"google search","keyword":"objective-c","percent_growth":["7D","30D","3M","12M"]}
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSString *key = [[[NSProcessInfo processInfo] environment] objectForKey:@"TRENDSAPI_API_KEY"];
NSURL *url = [NSURL URLWithString:@"https://api.trendsapi.ai/api"];
NSMutableURLRequest *req = [NSMutableURLRequest requestWithURL:url];
[req setHTTPMethod:@"POST"];
[req setValue:[NSString stringWithFormat:@"Bearer %@", key] forHTTPHeaderField:@"Authorization"];
[req setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
NSString *payload = @"{\"mode\":\"get_growth\",\"source\":\"google search\",\"keyword\":\"objective-c\",\"percent_growth\":[\"7D\",\"30D\",\"3M\",\"12M\"]}";
[req setHTTPBody:[payload dataUsingEncoding:NSUTF8StringEncoding]];
dispatch_semaphore_t sem = dispatch_semaphore_create(0);
NSURLSessionDataTask *task = [[NSURLSession sharedSession] dataTaskWithRequest:req completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSInteger code = [(NSHTTPURLResponse *)response statusCode];
if (code != 200) { dispatch_semaphore_signal(sem); return; }
NSDictionary *envelope = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
// body is a JSON string; parse it a second time
NSData *innerData = [envelope[@"body"] dataUsingEncoding:NSUTF8StringEncoding];
id inner = [NSJSONSerialization JSONObjectWithData:innerData options:0 error:nil];
NSLog(@"%@", inner);
dispatch_semaphore_signal(sem);
}];
[task resume];
dispatch_semaphore_wait(sem, dispatch_time(DISPATCH_TIME_NOW, 30LL * NSEC_PER_SEC));
}
return 0;
}
The first mistake most clients make is treating the body field as an object after one parse. It is still a JSON string. Parse the envelope, then parse body a second time. Library docs:
https://developer.apple.com/documentation/foundation/nsurlsession
https://developer.apple.com/documentation/foundation/nsjsonserialization
Free tier allows 100 successful requests per month. Only HTTP 200 responses count against quota. Starter is 5,000, Pro is 25,000, Business is 100,000. There is no Objective-C-specific source on this API. npm covers npmjs package names. python covers PyPI project names. A watchlist that needs CocoaPods or Swift Package Index download counts has to pull those from somewhere else. A Swift sibling of this helper is on Swift Trends API. A Kotlin sibling is on Kotlin Trends API.
What did get_growth return for Objective-C language tokens?
get_growth for objective-c on google search tips on 2026-09-26. Store the exact strings. The hyphenated language name, the spaced phrase, the concatenated token, the programming phrase, the IDE token, and the cocoa token are different series.
| Keyword | Period | Recent date | Recent | Baseline date | Baseline | Growth |
|---|---|---|---|---|---|---|
| objective-c | 7D | 2026-09-26 | 19.0 | 2026-09-19 | 21.0 | -9.52% |
| objective-c | 14D | 2026-09-26 | 19.0 | 2026-09-12 | 39.0 | -51.28% |
| objective-c | 30D | 2026-09-26 | 19.0 | 2026-08-29 | 22.0 | -13.64% |
| objective-c | 3M | 2026-09-26 | 19.0 | 2026-06-27 | 48.0 | -60.42% |
| objective-c | 12M | 2026-09-26 | 19.0 | 2025-09-27 | 17.0 | +11.76% |
| objective-c | YTD | 2026-09-26 | 19.0 | 2026-01-03 | 9.0 | +111.11% |
| objective c | 7D | 2026-09-26 | 46.0 | 2026-09-19 | 40.0 | +15.0% |
| objective c | 14D | 2026-09-26 | 46.0 | 2026-09-12 | 56.0 | -17.86% |
| objective c | 30D | 2026-09-26 | 46.0 | 2026-08-29 | 39.0 | +17.95% |
| objective c | 3M | 2026-09-26 | 46.0 | 2026-06-27 | 73.0 | -36.99% |
| objective c | 12M | 2026-09-26 | 46.0 | 2025-09-27 | 45.0 | +2.22% |
| objective c | YTD | 2026-09-26 | 46.0 | 2026-01-03 | 27.0 | +70.37% |
| objc | 7D | 2026-09-26 | 24.0 | 2026-09-19 | 22.0 | +9.09% |
| objc | 14D | 2026-09-26 | 24.0 | 2026-09-12 | 42.0 | -42.86% |
| objc | 3M | 2026-09-26 | 24.0 | 2026-06-27 | 54.0 | -55.56% |
| objc | 12M | 2026-09-26 | 24.0 | 2025-09-27 | 31.0 | -22.58% |
| objc | YTD | 2026-09-26 | 24.0 | 2026-01-03 | 18.0 | +33.33% |
| objective-c programming | 7D | 2026-09-26 | 21.0 | 2026-09-19 | 14.0 | +50.0% |
| objective-c programming | 3M | 2026-09-26 | 21.0 | 2026-06-27 | 50.0 | -58.0% |
| xcode | 7D | 2026-09-26 | 48.0 | 2026-09-19 | 56.0 | -14.29% |
| xcode | 30D | 2026-09-26 | 48.0 | 2026-08-29 | 32.0 | +50.0% |
| xcode | 3M | 2026-09-26 | 48.0 | 2026-06-27 | 93.0 | -48.39% |
| xcode | 12M | 2026-09-26 | 48.0 | 2025-09-27 | 91.0 | -47.25% |
| xcode | YTD | 2026-09-26 | 48.0 | 2026-01-03 | 43.0 | +11.63% |
| cocoa | 7D | 2026-09-26 | 67.0 | 2026-09-19 | 58.0 | +15.52% |
| cocoa | 12M | 2026-09-26 | 67.0 | 2025-09-27 | 60.0 | +11.67% |
| cocoa | YTD | 2026-09-26 | 67.0 | 2026-01-03 | 69.0 | -2.9% |
get_time_series for objective-c on Google Search closed at 19 on 2026-09-26, matching get_growth 19.0. Adjacent weeks: 21 on 2026-09-19, 39 on 2026-09-12, 43 on 2026-09-05, 22 on 2026-08-29. Peak in this pull is 100 on 2026-05-16, with 84 on 2026-05-09, 69 on 2026-05-02, and 66 on 2026-06-06. Tip 19 is a slide off that May 2026 high, not a new peak. 3M printed -60.42% versus 48.0. 14D printed -51.28% versus 39.0. 7D printed -9.52% versus 21.0. YTD printed +111.11% versus 9.0. A job that alerts on 7D -9.52% while YTD sits at +111.11% is reading a one-week dip, not a year-to-date drop.
objective c closed at 46.0, up 15.0% from 40.0. 7D signs diverge: spaced +15.0% versus hyphenated -9.52%. 30D signs also diverge: spaced +17.95% versus hyphenated -13.64%. Do not copy 46.0 onto objective-c 19.0. objc closed at 24.0, up 9.09% from 22.0. 12M was 24.0 versus 31.0 (-22.58%) while hyphenated 12M was +11.76%. objective-c programming closed at 21.0, up 50.0% from 14.0. The payload marked data_quality low. 14D printed growth 999999 versus 0.0. Report 21.0 versus 0.0. Do not alert language adoption off a sparse programming-phrase 7D move.
xcode closed at 48.0, down 14.29% from 56.0. 30D was 48.0 versus 32.0 (+50.0%). 3M was 48.0 versus 93.0 (-48.39%). A job that alerts "Objective-C is down" off Xcode 7D is reading the IDE series. cocoa closed at 67.0, up 15.52% from 58.0, with estimated Search volume 4,300,000 versus 3,720,000. 12M was 67.0 versus 60.0 (+11.67%). That token is a commodity series, not a framework series. Do not copy 67.0 onto objective-c 19.0. There is no CocoaPods source. cocoa Search 67.0 is still a Search series, not registry volume.
Neighbors this session: swift programming Search 17.0, down 10.53% from 19.0, 12M 17.0 versus 35.0 (-51.43%), YTD 17.0 versus 24.0 (-29.17%). python programming Search 27.0, down 44.9% from 49.0, 12M 27.0 versus 26.0 (+3.85%). kotlin Search 30.0, down 11.76% from 34.0, 12M 30.0 versus 62.0 (-51.61%), YTD 30.0 versus 30.0 (0.0%). A Python client that does the same double parse is on Python Trends API. A VBA WinHttp sibling is on VBA Trends API.
How do YouTube, News, and Wikipedia disagree with Search?
YouTube get_growth for objective-c closed at 9.0 versus 9.0 (0.0%). The payload marked data_quality low. get_time_series closed at 9, matching growth. Adjacent weeks: 9 on 2026-09-19, 0 on 2026-09-12, 0 on 2026-09-05, 0 on 2026-08-29. Peak in this pull is 100 on 2025-12-13, with 97 on 2022-06-18, 93 on 2026-07-11, and 91 on 2026-07-25. The series is mostly zeros. 14D printed growth 999999 versus 0.0. Report 9.0 versus 0.0. 7D signs: YouTube flat at 9.0 versus Search -9.52%. Store the low-quality flag. Do not fill YouTube from Search 19.0.
Google News for objective-c returned 502 source_unavailable on two tries this session. Store the miss. Do not fill News from Search 19.0. Keyword objective c on Google News printed 0.0 versus 0.0 on 7D, 14D, 12M, and YTD, with data_quality low. Keyword News and the Google News Top News board are different feeds. Source docs for Search sit at Google Trends.
Wikipedia get_growth for Objective-C resolved to Objective-c. August 2026 scored 3.4 with 50 pageviews versus July 1.5 with 24 pageviews (score +126.67%, volume +108.33%). 3M was 3.4 / 50 versus May 2.6 / 38, volume +31.58%. 12M was 3.4 / 50 versus August 2025 2.5 / 37, volume +35.14%. YTD was 3.4 / 50 versus January 3.0 / 44, volume +13.64%. 7D and 14D collapsed to the same monthly point. Peak in this pull is 100.0 / 1,366 in February 2022. Fifty August views is not the high-traffic language article. Compare Wikipedia on volume. Do not join 50 pageviews onto Search 19.0. Source docs for Wikipedia sit at Wikipedia Trends.
How does an Objective-C job pull a live board?
POST https://api.trendsapi.ai/api
Authorization: Bearer <api_key>
Content-Type: application/json
{"mode":"get_top_trends","type":"Google Trends","limit":25}
NSString *board = @"{\"mode\":\"get_top_trends\",\"type\":\"Google Trends\",\"limit\":25}";
[req setHTTPBody:[board dataUsingEncoding:NSUTF8StringEncoding]];
get_top_trends takes a feed type, not a keyword. Pair the live snapshot with sort=rank_change on 1d and 7d. On 2026-09-28T08:01:35Z the live Google Trends board ranked cornell university at 12. Weekly Search for that string closed at 21.0 versus 7.0. A helper that only stores 7D Search for objective-c at 19.0 misses that board. Mode docs live at Docs.
What belongs in an Objective-C watchlist?
Store objective-c, objective c, objc, objective-c programming, and xcode as separate Search series. Add YouTube objective-c because the series is sparse and 7D already disagrees in magnitude with Search. Add Wikipedia volume for the resolved title, not the 0-100 score. Skip a CocoaPods column: that source does not exist. Do not store cocoa 67.0 as language adoption. Six Search keywords plus one live Google Trends board is 7 calls. Four weekly runs fit the free 100-request cap. Starter is 5,000, Pro 25,000, Business 100,000. Only successful 200 responses count.