%[text] # HTTP calls with MATLAB %[text:tableOfContents]{"heading":"**Table of Contents**"} %[text] %% %[text] ### 1. The Basics: A Simple GET Request % Coinbase API endpoint for spot BTC price in USD data = webread("https://api.coinbase.com/v2/prices/BTC-USD/spot") %[output:49bc4e68] % Extract the price btcPrice = str2double(data.data.amount) %[output:6996c251] %% %[text] ### 2. Sending Parameters in a Request % Example: GET request with query parameters url = "https://api.agify.io"; % Predicts age by first name age = webread(url, name="Yann") %[output:2fb7a581] %% %[text] ### 3. Custom Headers (e.g. API Keys) %[text] In order to access certain web services like OpenAI, you will be required to pass an API key along with your request. loadenv(".env") OPENAI_API_KEY = getenv("OPENAI_API_KEY"); %% % Example with headers url = "https://api.openai.com/v1/models"; % Create HTTP header with an API key headers = matlab.net.http.HeaderField("Authorization", "Bearer " + OPENAI_API_KEY); % Create request request = matlab.net.http.RequestMessage(matlab.net.http.RequestMethod.GET, headers); % Send request response = send(request, url); % Parse body json = response.Body.Data %[output:9e4635a2] json.data %[output:78b2f467] %% %[text] ### 4. POST Requests with JSON Body % Example: POST request with JSON body url = "https://jsonplaceholder.typicode.com/posts"; body = struct("title","foo","body","bar","userId",1); options = weboptions("MediaType","application/json"); response = webwrite(url, body, options) %[output:0fbe6d90] %% %[text] ### 5. Using the Full `matlab.net.http` Workflow import matlab.net.* import matlab.net.http.* url = "https://jsonplaceholder.typicode.com/posts"; % JSON body bodyData = struct("title","MATLAB","body","Hello Web","userId",2); % Build request header = HeaderField("Content-Type","application/json"); req = RequestMessage(RequestMethod.POST, header, bodyData); % Send resp = req.send(url) %[output:6afcb61e] resp.Body.Data %[output:4786e540] %% %[text] ### 6. Handling Errors try %[output:group:7091fe91] webread("https://api.github.com/invalid-endpoint"); catch ME disp(ME.message) %[output:50d27447] end %[output:group:7091fe91] %% %[text] ### 7. Practical Example: Download Weather Data (Open-Meteo API) %[text] [🌦️ Docs | Open-Meteo.com](https://open-meteo.com/en/docs) url = "https://api.open-meteo.com/v1/forecast"; data = webread(url, latitude=48.85, longitude=2.35,hourly="temperature_2m"); % Paris % Convert time to datetime timeData = datetime(data.hourly.time, InputFormat="yyyy-MM-dd'T'HH:mm", TimeZone='GMT'); plot(timeData, data.hourly.temperature_2m) xlabel("Time") ylabel("Temperature (°C)") title("Hourly Temperature in Paris") grid on %% %[text] ### 8. Practical Example: Get commits history from a GitHub repo %[text] [REST API endpoints for repositories - GitHub Docs](https://docs.github.com/en/rest/repos/repos?apiVersion=2022-11-28#get-a-repository) url = "https://api.github.com/repos/matlab-deep-learning/llms-with-matlab"; response = webread(url) %[output:33fbccc4] %% commits_url = strrep(response.commits_url, '{/sha}', ''); c = webread(commits_url) % Extract commits from the response %[output:4ca442f1] %% % pull out the nested commit structs as a flat 1×N struct array commits = [c.commit] % -> struct array with fields: author, message, ... %[output:51d2c43f] %% a = [commits.author] %[output:0ced3a1e] %% % ISO 8601 → datetime (UTC) commitDate = datetime(string({a.date}).', ... %[output:group:95547510] %[output:65b2032a] 'InputFormat','yyyy-MM-dd''T''HH:mm:ss''Z', 'TimeZone','UTC') %[output:group:95547510] %[output:65b2032a] %% % Count per calendar day [counts,days] = groupcounts(dateshift(commitDate,'start','day')); % returns sorted days bar(days, counts) title('Commits per day') xlabel('Day') ylabel('Number of commits') xtickangle(45) %[appendix]{"version":"1.0"} %--- %[metadata:view] % data: {"layout":"inline"} %--- %[output:49bc4e68] % data: {"dataType":"textualVariable","outputData":{"header":"struct with fields:","name":"data","value":" data: [1×1 struct]\n"}} %--- %[output:6996c251] % data: {"dataType":"textualVariable","outputData":{"name":"btcPrice","value":"1.1208e+05"}} %--- %[output:2fb7a581] % data: {"dataType":"textualVariable","outputData":{"header":"struct with fields:","name":"age","value":" count: 27549\n name: 'Yann'\n age: 51\n"}} %--- %[output:9e4635a2] % data: {"dataType":"textualVariable","outputData":{"header":"struct with fields:","name":"json","value":" object: 'list'\n data: [88×1 struct]\n"}} %--- %[output:78b2f467] % data: {"dataType":"tabular","outputData":{"columnNames":["id","object","created","owned_by"],"columns":4,"cornerText":"Fields","dataTypes":["char","char","double","char"],"header":"88×1 struct array with fields:","name":"ans","rows":88,"type":"struct","value":[["'gpt-4-0613'","'model'","1.6866e+09","'openai'"],["'gpt-4'","'model'","1.6879e+09","'openai'"],["'gpt-3.5-turbo'","'model'","1.6776e+09","'openai'"],["'gpt-5-nano'","'model'","1.7544e+09","'system'"],["'gpt-5'","'model'","1.7544e+09","'system'"],["'gpt-5-mini-2025-08-07'","'model'","1.7544e+09","'system'"],["'gpt-5-mini'","'model'","1.7544e+09","'system'"],["'gpt-5-nano-2025-08-07'","'model'","1.7544e+09","'system'"],["'davinci-002'","'model'","1.6926e+09","'system'"],["'babbage-002'","'model'","1.6926e+09","'system'"],["'gpt-3.5-turbo-instruct'","'model'","1.6929e+09","'system'"],["'gpt-3.5-turbo-instruct-0914'","'model'","1.6941e+09","'system'"],["'dall-e-3'","'model'","1.6988e+09","'system'"],["'dall-e-2'","'model'","1.6988e+09","'system'"]]}} %--- %[output:0fbe6d90] % data: {"dataType":"textualVariable","outputData":{"header":"struct with fields:","name":"response","value":" title: 'foo'\n body: 'bar'\n userId: 1\n id: 101\n"}} %--- %[output:6afcb61e] % data: {"dataType":"textualVariable","outputData":{"name":"resp","value":" ResponseMessage<\/a> with properties:\n\n StatusLine: 'HTTP\/1.1 201 Created'\n StatusCode: Created\n Header: [1×27 matlab.net.http.HeaderField]\n Body: [1×1 matlab.net.http.MessageBody]\n Completed: 0\n"}} %--- %[output:4786e540] % data: {"dataType":"textualVariable","outputData":{"header":"struct with fields:","name":"ans","value":" title: 'MATLAB'\n body: 'Hello Web'\n userId: 2\n id: 101\n"}} %--- %[output:50d27447] % data: {"dataType":"text","outputData":{"text":"The server returned the status 404 with message \"Not Found\" in response to the request to URL https:\/\/api.github.com\/invalid-endpoint.\n","truncated":false}} %--- %[output:33fbccc4] % data: {"dataType":"textualVariable","outputData":{"header":"struct with fields:","name":"response","value":" id: 702556818\n node_id: 'R_kgDOKeAqkg'\n name: 'llms-with-matlab'\n full_name: 'matlab-deep-learning\/llms-with-matlab'\n private: 0\n owner: [1×1 struct]\n html_url: 'https:\/\/github.com\/matlab-deep-learning\/llms-with-matlab'\n description: 'Connect MATLAB to LLM APIs, including OpenAI® Chat Completions, Azure® OpenAI Services, and Ollama™'\n fork: 0\n url: 'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab'\n forks_url: 'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/forks'\n keys_url: 'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/keys{\/key_id}'\n collaborators_url: 'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/collaborators{\/collaborator}'\n teams_url: 'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/teams'\n hooks_url: 'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/hooks'\n issue_events_url: 'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/issues\/events{\/number}'\n events_url: 'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/events'\n assignees_url: 'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/assignees{\/user}'\n branches_url: 'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/branches{\/branch}'\n tags_url: 'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/tags'\n blobs_url: 'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/git\/blobs{\/sha}'\n git_tags_url: 'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/git\/tags{\/sha}'\n git_refs_url: 'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/git\/refs{\/sha}'\n trees_url: 'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/git\/trees{\/sha}'\n statuses_url: 'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/statuses\/{sha}'\n languages_url: 'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/languages'\n stargazers_url: 'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/stargazers'\n contributors_url: 'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/contributors'\n subscribers_url: 'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/subscribers'\n subscription_url: 'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/subscription'\n commits_url: 'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/commits{\/sha}'\n git_commits_url: 'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/git\/commits{\/sha}'\n comments_url: 'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/comments{\/number}'\n issue_comment_url: 'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/issues\/comments{\/number}'\n contents_url: 'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/contents\/{+path}'\n compare_url: 'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/compare\/{base}...{head}'\n merges_url: 'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/merges'\n archive_url: 'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/{archive_format}{\/ref}'\n downloads_url: 'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/downloads'\n issues_url: 'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/issues{\/number}'\n pulls_url: 'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/pulls{\/number}'\n milestones_url: 'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/milestones{\/number}'\n notifications_url: 'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/notifications{?since,all,participating}'\n labels_url: 'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/labels{\/name}'\n releases_url: 'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/releases{\/id}'\n deployments_url: 'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/deployments'\n created_at: '2023-10-09T14:39:17Z'\n updated_at: '2025-08-21T06:25:41Z'\n pushed_at: '2025-08-15T14:53:39Z'\n git_url: 'git:\/\/github.com\/matlab-deep-learning\/llms-with-matlab.git'\n ssh_url: 'git@github.com:matlab-deep-learning\/llms-with-matlab.git'\n clone_url: 'https:\/\/github.com\/matlab-deep-learning\/llms-with-matlab.git'\n svn_url: 'https:\/\/github.com\/matlab-deep-learning\/llms-with-matlab'\n homepage: ''\n size: 90269\n stargazers_count: 171\n watchers_count: 171\n language: 'MATLAB'\n has_issues: 1\n has_projects: 1\n has_downloads: 1\n has_wiki: 0\n has_pages: 0\n has_discussions: 0\n forks_count: 42\n mirror_url: []\n archived: 0\n disabled: 0\n open_issues_count: 3\n license: [1×1 struct]\n allow_forking: 1\n is_template: 0\n web_commit_signoff_required: 0\n topics: {8×1 cell}\n visibility: 'public'\n forks: 42\n open_issues: 3\n watchers: 171\n default_branch: 'main'\n temp_clone_token: []\n custom_properties: [1×1 struct]\n organization: [1×1 struct]\n network_count: 42\n subscribers_count: 20\n"}} %--- %[output:4ca442f1] % data: {"dataType":"tabular","outputData":{"columnNames":["sha","node_id","commit","url","html_url","comments_url","author","committer","parents"],"columns":9,"cornerText":"Fields","dataTypes":["char","char","struct","char","char","char","struct","struct","struct"],"header":"30×1 struct array with fields:","name":"c","rows":30,"type":"struct","value":[["'4962a43c428bbb051a362e703a7459d78f8caf9a'","'C_kwDOKeAqktoAKDQ5NjJhNDNjNDI4YmJiMDUxYTM2MmU3MDNhNzQ1OWQ3OGY4Y2FmOWE'","1×1 struct","'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/commits\/4962a43c428bbb051a362e703a7459d78f8caf9a'","'https:\/\/github.com\/matlab-deep-learning\/llms-with-matlab\/commit\/4962a43c428bbb051a362e703a7459d78f8caf9a'","'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/commits\/4962a43c428bbb051a362e703a7459d78f8caf9a\/comments'","1×1 struct","1×1 struct","1×1 struct"],["'f124f182f8f41bb8ee066019b67c53bf65f5c0cb'","'C_kwDOKeAqktoAKGYxMjRmMTgyZjhmNDFiYjhlZTA2NjAxOWI2N2M1M2JmNjVmNWMwY2I'","1×1 struct","'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/commits\/f124f182f8f41bb8ee066019b67c53bf65f5c0cb'","'https:\/\/github.com\/matlab-deep-learning\/llms-with-matlab\/commit\/f124f182f8f41bb8ee066019b67c53bf65f5c0cb'","'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/commits\/f124f182f8f41bb8ee066019b67c53bf65f5c0cb\/comments'","[ ]","[ ]","1×1 struct"],["'c30a5883d6cde22caa042f3537a29884c0f2bb29'","'C_kwDOKeAqktoAKGMzMGE1ODgzZDZjZGUyMmNhYTA0MmYzNTM3YTI5ODg0YzBmMmJiMjk'","1×1 struct","'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/commits\/c30a5883d6cde22caa042f3537a29884c0f2bb29'","'https:\/\/github.com\/matlab-deep-learning\/llms-with-matlab\/commit\/c30a5883d6cde22caa042f3537a29884c0f2bb29'","'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/commits\/c30a5883d6cde22caa042f3537a29884c0f2bb29\/comments'","1×1 struct","1×1 struct","1×1 struct"],["'306803c7ca34911a54d5fd07a71576bf592703c5'","'C_kwDOKeAqktoAKDMwNjgwM2M3Y2EzNDkxMWE1NGQ1ZmQwN2E3MTU3NmJmNTkyNzAzYzU'","1×1 struct","'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/commits\/306803c7ca34911a54d5fd07a71576bf592703c5'","'https:\/\/github.com\/matlab-deep-learning\/llms-with-matlab\/commit\/306803c7ca34911a54d5fd07a71576bf592703c5'","'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/commits\/306803c7ca34911a54d5fd07a71576bf592703c5\/comments'","1×1 struct","1×1 struct","1×1 struct"],["'8dd0e717d419c0c2c6cd88fd20ff27d486c8627d'","'C_kwDOKeAqktoAKDhkZDBlNzE3ZDQxOWMwYzJjNmNkODhmZDIwZmYyN2Q0ODZjODYyN2Q'","1×1 struct","'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/commits\/8dd0e717d419c0c2c6cd88fd20ff27d486c8627d'","'https:\/\/github.com\/matlab-deep-learning\/llms-with-matlab\/commit\/8dd0e717d419c0c2c6cd88fd20ff27d486c8627d'","'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/commits\/8dd0e717d419c0c2c6cd88fd20ff27d486c8627d\/comments'","1×1 struct","1×1 struct","1×1 struct"],["'92449b8eb67e015850a54a2a96e89fd07eb63f98'","'C_kwDOKeAqktoAKDkyNDQ5YjhlYjY3ZTAxNTg1MGE1NGEyYTk2ZTg5ZmQwN2ViNjNmOTg'","1×1 struct","'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/commits\/92449b8eb67e015850a54a2a96e89fd07eb63f98'","'https:\/\/github.com\/matlab-deep-learning\/llms-with-matlab\/commit\/92449b8eb67e015850a54a2a96e89fd07eb63f98'","'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/commits\/92449b8eb67e015850a54a2a96e89fd07eb63f98\/comments'","1×1 struct","1×1 struct","1×1 struct"],["'aa1ecf038529be28a171206936ca7677e305191d'","'C_kwDOKeAqktoAKGFhMWVjZjAzODUyOWJlMjhhMTcxMjA2OTM2Y2E3Njc3ZTMwNTE5MWQ'","1×1 struct","'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/commits\/aa1ecf038529be28a171206936ca7677e305191d'","'https:\/\/github.com\/matlab-deep-learning\/llms-with-matlab\/commit\/aa1ecf038529be28a171206936ca7677e305191d'","'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/commits\/aa1ecf038529be28a171206936ca7677e305191d\/comments'","1×1 struct","1×1 struct","1×1 struct"],["'4fcab78f2f8efca30fcc69d8e48798e44523cd6d'","'C_kwDOKeAqktoAKDRmY2FiNzhmMmY4ZWZjYTMwZmNjNjlkOGU0ODc5OGU0NDUyM2NkNmQ'","1×1 struct","'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/commits\/4fcab78f2f8efca30fcc69d8e48798e44523cd6d'","'https:\/\/github.com\/matlab-deep-learning\/llms-with-matlab\/commit\/4fcab78f2f8efca30fcc69d8e48798e44523cd6d'","'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/commits\/4fcab78f2f8efca30fcc69d8e48798e44523cd6d\/comments'","1×1 struct","1×1 struct","1×1 struct"],["'0a75d31be2ce134c1c3d60c21619583e0d70026c'","'C_kwDOKeAqktoAKDBhNzVkMzFiZTJjZTEzNGMxYzNkNjBjMjE2MTk1ODNlMGQ3MDAyNmM'","1×1 struct","'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/commits\/0a75d31be2ce134c1c3d60c21619583e0d70026c'","'https:\/\/github.com\/matlab-deep-learning\/llms-with-matlab\/commit\/0a75d31be2ce134c1c3d60c21619583e0d70026c'","'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/commits\/0a75d31be2ce134c1c3d60c21619583e0d70026c\/comments'","1×1 struct","1×1 struct","1×1 struct"],["'a9a56e941afeebb0dd8769034fcb56bc955baeb7'","'C_kwDOKeAqktoAKGE5YTU2ZTk0MWFmZWViYjBkZDg3NjkwMzRmY2I1NmJjOTU1YmFlYjc'","1×1 struct","'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/commits\/a9a56e941afeebb0dd8769034fcb56bc955baeb7'","'https:\/\/github.com\/matlab-deep-learning\/llms-with-matlab\/commit\/a9a56e941afeebb0dd8769034fcb56bc955baeb7'","'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/commits\/a9a56e941afeebb0dd8769034fcb56bc955baeb7\/comments'","1×1 struct","1×1 struct","1×1 struct"],["'d54de597b9235796f4e05a6bb752f2d1b4cd9c47'","'C_kwDOKeAqktoAKGQ1NGRlNTk3YjkyMzU3OTZmNGUwNWE2YmI3NTJmMmQxYjRjZDljNDc'","1×1 struct","'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/commits\/d54de597b9235796f4e05a6bb752f2d1b4cd9c47'","'https:\/\/github.com\/matlab-deep-learning\/llms-with-matlab\/commit\/d54de597b9235796f4e05a6bb752f2d1b4cd9c47'","'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/commits\/d54de597b9235796f4e05a6bb752f2d1b4cd9c47\/comments'","1×1 struct","1×1 struct","1×1 struct"],["'191d112751fe73be8f8c24649bbd52543195b847'","'C_kwDOKeAqktoAKDE5MWQxMTI3NTFmZTczYmU4ZjhjMjQ2NDliYmQ1MjU0MzE5NWI4NDc'","1×1 struct","'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/commits\/191d112751fe73be8f8c24649bbd52543195b847'","'https:\/\/github.com\/matlab-deep-learning\/llms-with-matlab\/commit\/191d112751fe73be8f8c24649bbd52543195b847'","'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/commits\/191d112751fe73be8f8c24649bbd52543195b847\/comments'","1×1 struct","1×1 struct","1×1 struct"],["'c4c5fa6de9c3e902062ae7296bf1a9aadcefd94a'","'C_kwDOKeAqktoAKGM0YzVmYTZkZTljM2U5MDIwNjJhZTcyOTZiZjFhOWFhZGNlZmQ5NGE'","1×1 struct","'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/commits\/c4c5fa6de9c3e902062ae7296bf1a9aadcefd94a'","'https:\/\/github.com\/matlab-deep-learning\/llms-with-matlab\/commit\/c4c5fa6de9c3e902062ae7296bf1a9aadcefd94a'","'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/commits\/c4c5fa6de9c3e902062ae7296bf1a9aadcefd94a\/comments'","1×1 struct","1×1 struct","1×1 struct"],["'d286f1c5fb92be6382a8f1aeb6479f5c6792c1af'","'C_kwDOKeAqktoAKGQyODZmMWM1ZmI5MmJlNjM4MmE4ZjFhZWI2NDc5ZjVjNjc5MmMxYWY'","1×1 struct","'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/commits\/d286f1c5fb92be6382a8f1aeb6479f5c6792c1af'","'https:\/\/github.com\/matlab-deep-learning\/llms-with-matlab\/commit\/d286f1c5fb92be6382a8f1aeb6479f5c6792c1af'","'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/commits\/d286f1c5fb92be6382a8f1aeb6479f5c6792c1af\/comments'","1×1 struct","1×1 struct","1×1 struct"]]}} %--- %[output:51d2c43f] % data: {"dataType":"tabular","outputData":{"columnNames":["author","committer","message","tree","url","comment_count","verification"],"columns":7,"cornerText":"Fields","dataTypes":["struct","struct","char","struct","char","double","struct"],"header":"1×30 struct array with fields:","name":"commits","rows":30,"type":"struct","value":[["1×1 struct","1×1 struct","'Add new example to readme- added the new example to the example list in the main readme- created subsections in the example list for improved scanability and discoverability'","1×1 struct","'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/git\/commits\/4962a43c428bbb051a362e703a7459d78f8caf9a'","0","1×1 struct"],["1×1 struct","1×1 struct","'Add math reasoning agent example'","1×1 struct","'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/git\/commits\/f124f182f8f41bb8ee066019b67c53bf65f5c0cb'","0","1×1 struct"],["1×1 struct","1×1 struct","'New OpenAI models* Update OpenAI text model list* Remove o1-preview usage from test and production code* Remove o1-preview from places where it was mentioned in documentation'","1×1 struct","'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/git\/commits\/c30a5883d6cde22caa042f3537a29884c0f2bb29'","0","1×1 struct"],["1×1 struct","1×1 struct","'Fix broken link in readmeFixed typos in broken link on the readme.'","1×1 struct","'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/git\/commits\/306803c7ca34911a54d5fd07a71576bf592703c5'","0","1×1 struct"],["1×1 struct","1×1 struct","'Move more test points towards more mocks'","1×1 struct","'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/git\/commits\/8dd0e717d419c0c2c6cd88fd20ff27d486c8627d'","0","1×1 struct"],["1×1 struct","1×1 struct","'Structured output with tool callingFixed:Structured output not working in conjunction with tool calling when calling generateollamaChat constructor erroring with ResponseFormat NVP set to a structAdded:Double-quotes to .githooks\/pre-commit to handle spaces in repo path'","1×1 struct","'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/git\/commits\/92449b8eb67e015850a54a2a96e89fd07eb63f98'","0","1×1 struct"],["1×1 struct","1×1 struct","'add encoding to webread in exampleOur CI pipeline is running 24b on a system with an encoding different from UTF-8.That causes this `webread` command to return mangled characters, throwing off the example test.'","1×1 struct","'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/git\/commits\/aa1ecf038529be28a171206936ca7677e305191d'","0","1×1 struct"],["1×1 struct","1×1 struct","'Add test seam to mock out actual https connectionAdd test seam to mock out actual https connection, add a single test using it per chat backend'","1×1 struct","'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/git\/commits\/4fcab78f2f8efca30fcc69d8e48798e44523cd6d'","0","1×1 struct"],["1×1 struct","1×1 struct","'Prepare for switching the Azure default deployment from 3.5 to 4o-mini'","1×1 struct","'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/git\/commits\/0a75d31be2ce134c1c3d60c21619583e0d70026c'","0","1×1 struct"],["1×1 struct","1×1 struct","'Remove redundant addpath callsSince we recommend users get this code via Add-On Manager, which adds everything to the path,all those `addpath` calls are redundant.'","1×1 struct","'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/git\/commits\/a9a56e941afeebb0dd8769034fcb56bc955baeb7'","0","1×1 struct"],["1×1 struct","1×1 struct","'Switch specialErrorForUnsupportedResponseFormat to other deploymentThe gpt-4o deployment no longer errors for structured output (aftermodel update). Switch to a deployment that does error.'","1×1 struct","'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/git\/commits\/d54de597b9235796f4e05a6bb752f2d1b4cd9c47'","0","1×1 struct"],["1×1 struct","1×1 struct","'add new OpenAI models: o4-mini and o3'","1×1 struct","'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/git\/commits\/191d112751fe73be8f8c24649bbd52543195b847'","0","1×1 struct"],["1×1 struct","1×1 struct","'support for new OpenAI models'","1×1 struct","'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/git\/commits\/c4c5fa6de9c3e902062ae7296bf1a9aadcefd94a'","0","1×1 struct"],["1×1 struct","1×1 struct","'Fix broken links on Ollama.md'","1×1 struct","'https:\/\/api.github.com\/repos\/matlab-deep-learning\/llms-with-matlab\/git\/commits\/d286f1c5fb92be6382a8f1aeb6479f5c6792c1af'","0","1×1 struct"]]}} %--- %[output:0ced3a1e] % data: {"dataType":"tabular","outputData":{"columnNames":["name","email","date"],"columns":3,"cornerText":"Fields","dataTypes":["char","char","char"],"header":"1×30 struct array with fields:","name":"a","rows":30,"type":"struct","value":[["'Miriam Scharnke'","'mscharnk@mathworks.com'","'2025-08-15T14:51:04Z'"],["'Cheuk Lun Ko'","'cheukluk@mathworks.com'","'2025-08-15T09:37:57Z'"],["'Christopher Creutzig'","'ccreutzi@mathworks.com'","'2025-08-12T11:13:44Z'"],["'Miriam Scharnke'","'mscharnk@mathworks.com'","'2025-08-12T09:19:55Z'"],["'Christopher Creutzig'","'ccreutzi@mathworks.com'","'2025-07-16T14:17:22Z'"],["'Christopher Creutzig'","'ccreutzi@mathworks.com'","'2025-07-14T11:23:47Z'"],["'Christopher Creutzig'","'ccreutzi@mathworks.com'","'2025-07-14T11:23:47Z'"],["'Christopher Creutzig'","'ccreutzi@mathworks.com'","'2025-07-14T09:36:59Z'"],["'Christopher Creutzig'","'ccreutzi@mathworks.com'","'2025-07-11T14:37:05Z'"],["'Christopher Creutzig'","'ccreutzi@mathworks.com'","'2025-07-02T13:05:21Z'"],["'Christopher Creutzig'","'ccreutzi@mathworks.com'","'2025-05-20T11:21:06Z'"],["'Christopher Creutzig'","'ccreutzi@mathworks.com'","'2025-05-20T11:11:21Z'"],["'Christopher Creutzig'","'ccreutzi@mathworks.com'","'2025-04-15T14:39:47Z'"],["'Miriam Scharnke'","'mscharnk@mathworks.com'","'2025-03-19T10:30:05Z'"]]}} %--- %[output:65b2032a] % data: {"dataType":"matrix","outputData":{"columns":1,"header":"30×1 datetime array","name":"commitDate","rows":30,"type":"datetime","value":[["15-Aug-2025 14:51:04"],["15-Aug-2025 09:37:57"],["12-Aug-2025 11:13:44"],["12-Aug-2025 09:19:55"],["16-Jul-2025 14:17:22"],["14-Jul-2025 11:23:47"],["14-Jul-2025 11:23:47"],["14-Jul-2025 09:36:59"],["11-Jul-2025 14:37:05"],["02-Jul-2025 13:05:21"]]}} %---