{"id":868,"date":"2026-08-10T13:17:03","date_gmt":"2026-08-10T13:17:03","guid":{"rendered":"https:\/\/trendroute.ai\/?page_id=868"},"modified":"2026-08-18T08:41:44","modified_gmt":"2026-08-18T08:41:44","slug":"api-documentation","status":"publish","type":"page","link":"https:\/\/trendroute.ai\/en\/api-documentation\/","title":{"rendered":"API Documentation"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"868\" class=\"elementor elementor-868\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-58d4d4d e-con-full e-flex e-con e-parent\" data-id=\"58d4d4d\" data-element_type=\"container\" data-e-type=\"container\" data-no-translation=\"\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a3f3e7e elementor-widget elementor-widget-html\" data-id=\"a3f3e7e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\r\n\/* =========================================================\r\n   TRENDROUTE \u2014 API OVERVIEW & INTEGRATION PAGE\r\n   Elementor-ready \/ Fully scoped\r\n   ========================================================= *\/\r\n\r\n#tr-api-page,\r\n#tr-api-page * {\r\n    box-sizing: border-box;\r\n}\r\n\r\n#tr-api-page {\r\n    --tr-navy: #0d304f;\r\n    --tr-navy-deep: #071f34;\r\n    --tr-navy-soft: #163f61;\r\n    --tr-teal: #13aaa6;\r\n    --tr-teal-dark: #0d8f8c;\r\n    --tr-teal-light: #eaf9f8;\r\n    --tr-blue-light: #f3f7fa;\r\n    --tr-border: #dbe5ec;\r\n    --tr-text: #263a4c;\r\n    --tr-muted: #667887;\r\n    --tr-white: #ffffff;\r\n    --tr-code: #071e2d;\r\n    --tr-success: #1d9875;\r\n\r\n    width: 100%;\r\n    color: var(--tr-text);\r\n    font-family: Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Arial, sans-serif;\r\n    font-size: 16px;\r\n    line-height: 1.65;\r\n    background: #fff;\r\n    overflow: hidden;\r\n}\r\n\r\n#tr-api-page a {\r\n    color: inherit;\r\n    text-decoration: none;\r\n}\r\n\r\n#tr-api-page h1,\r\n#tr-api-page h2,\r\n#tr-api-page h3,\r\n#tr-api-page h4,\r\n#tr-api-page p {\r\n    margin-top: 0;\r\n}\r\n\r\n#tr-api-page .tr-container {\r\n    width: min(1180px, calc(100% - 48px));\r\n    margin: 0 auto;\r\n}\r\n\r\n#tr-api-page .tr-section {\r\n    padding: 90px 0;\r\n}\r\n\r\n#tr-api-page .tr-section-soft {\r\n    background: var(--tr-blue-light);\r\n}\r\n\r\n#tr-api-page .tr-section-dark {\r\n    color: #fff;\r\n    background:\r\n        radial-gradient(circle at 85% 15%, rgba(19,170,166,.22), transparent 30%),\r\n        linear-gradient(135deg, #071f34 0%, #0d304f 100%);\r\n}\r\n\r\n#tr-api-page .tr-eyebrow {\r\n    display: inline-flex;\r\n    align-items: center;\r\n    gap: 9px;\r\n    margin-bottom: 13px;\r\n    color: var(--tr-teal-dark);\r\n    font-size: 13px;\r\n    line-height: 1.2;\r\n    font-weight: 800;\r\n    letter-spacing: .09em;\r\n    text-transform: uppercase;\r\n}\r\n\r\n#tr-api-page .tr-eyebrow:before {\r\n    content: \"\";\r\n    width: 22px;\r\n    height: 3px;\r\n    border-radius: 10px;\r\n    background: var(--tr-teal);\r\n}\r\n\r\n#tr-api-page .tr-section-dark .tr-eyebrow {\r\n    color: #77ded9;\r\n}\r\n\r\n#tr-api-page .tr-heading {\r\n    max-width: 760px;\r\n    margin-bottom: 45px;\r\n}\r\n\r\n#tr-api-page .tr-heading h2 {\r\n    margin-bottom: 14px;\r\n    color: var(--tr-navy);\r\n    font-size: clamp(32px, 4vw, 50px);\r\n    line-height: 1.08;\r\n    letter-spacing: -.035em;\r\n    font-weight: 800;\r\n}\r\n\r\n#tr-api-page .tr-heading p {\r\n    max-width: 720px;\r\n    margin-bottom: 0;\r\n    color: var(--tr-muted);\r\n    font-size: 17px;\r\n}\r\n\r\n#tr-api-page .tr-section-dark .tr-heading h2 {\r\n    color: #fff;\r\n}\r\n\r\n#tr-api-page .tr-section-dark .tr-heading p {\r\n    color: rgba(255,255,255,.72);\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   HERO\r\n   ========================================================= *\/\r\n\r\n#tr-api-page .tr-hero {\r\n    position: relative;\r\n    padding: 110px 0 95px;\r\n    color: #fff;\r\n    background:\r\n        radial-gradient(circle at 88% 12%, rgba(19,170,166,.28), transparent 27%),\r\n        radial-gradient(circle at 5% 95%, rgba(33,113,161,.28), transparent 32%),\r\n        linear-gradient(135deg, #061d30 0%, #0c3152 68%, #0e3e5a 100%);\r\n}\r\n\r\n#tr-api-page .tr-hero:after {\r\n    content: \"\";\r\n    position: absolute;\r\n    right: -180px;\r\n    bottom: -230px;\r\n    width: 520px;\r\n    height: 520px;\r\n    border: 1px solid rgba(255,255,255,.08);\r\n    border-radius: 50%;\r\n}\r\n\r\n#tr-api-page .tr-hero-grid {\r\n    position: relative;\r\n    z-index: 2;\r\n    display: grid;\r\n    grid-template-columns: minmax(0, 1.2fr) minmax(350px, .8fr);\r\n    align-items: center;\r\n    gap: 70px;\r\n}\r\n\r\n#tr-api-page .tr-brand {\r\n    display: inline-flex;\r\n    align-items: center;\r\n    margin-bottom: 35px;\r\n    font-size: 20px;\r\n    font-weight: 800;\r\n    letter-spacing: -.02em;\r\n}\r\n\r\n#tr-api-page .tr-brand span {\r\n    color: #73ddd8;\r\n}\r\n\r\n#tr-api-page .tr-hero-badge {\r\n    display: inline-flex;\r\n    align-items: center;\r\n    gap: 9px;\r\n    padding: 8px 13px;\r\n    margin-bottom: 21px;\r\n    border: 1px solid rgba(117,224,218,.25);\r\n    border-radius: 100px;\r\n    color: #b9f4f1;\r\n    background: rgba(19,170,166,.1);\r\n    font-size: 12px;\r\n    font-weight: 800;\r\n    letter-spacing: .07em;\r\n    text-transform: uppercase;\r\n}\r\n\r\n#tr-api-page .tr-hero-badge:before {\r\n    content: \"\";\r\n    width: 7px;\r\n    height: 7px;\r\n    border-radius: 50%;\r\n    background: #67ddd7;\r\n    box-shadow: 0 0 0 5px rgba(103,221,215,.1);\r\n}\r\n\r\n#tr-api-page .tr-hero h1 {\r\n    max-width: 780px;\r\n    margin-bottom: 24px;\r\n    color: #fff;\r\n    font-size: clamp(45px, 6vw, 74px);\r\n    line-height: .99;\r\n    letter-spacing: -.055em;\r\n    font-weight: 800;\r\n}\r\n\r\n#tr-api-page .tr-hero h1 span {\r\n    color: #70ddd8;\r\n}\r\n\r\n#tr-api-page .tr-hero-copy {\r\n    max-width: 725px;\r\n    margin-bottom: 33px;\r\n    color: rgba(255,255,255,.76);\r\n    font-size: 18px;\r\n    line-height: 1.7;\r\n}\r\n\r\n#tr-api-page .tr-hero-copy strong {\r\n    color: #fff;\r\n    font-weight: 700;\r\n}\r\n\r\n#tr-api-page .tr-actions {\r\n    display: flex;\r\n    flex-wrap: wrap;\r\n    gap: 13px;\r\n}\r\n\r\n#tr-api-page .tr-button {\r\n    display: inline-flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n    min-height: 51px;\r\n    padding: 0 24px;\r\n    border-radius: 10px;\r\n    font-size: 14px;\r\n    font-weight: 800;\r\n    transition: transform .2s ease, box-shadow .2s ease, background .2s ease;\r\n}\r\n\r\n#tr-api-page .tr-button:hover {\r\n    transform: translateY(-2px);\r\n}\r\n\r\n#tr-api-page .tr-button-primary {\r\n    color: #062a35;\r\n    background: #65d7d2;\r\n    box-shadow: 0 12px 28px rgba(0,0,0,.16);\r\n}\r\n\r\n#tr-api-page .tr-button-primary:hover {\r\n    background: #78e0dc;\r\n}\r\n\r\n#tr-api-page .tr-button-secondary {\r\n    color: #fff;\r\n    border: 1px solid rgba(255,255,255,.25);\r\n    background: rgba(255,255,255,.06);\r\n}\r\n\r\n#tr-api-page .tr-button-secondary:hover {\r\n    background: rgba(255,255,255,.11);\r\n}\r\n\r\n\r\n\/* Hero API visual *\/\r\n\r\n#tr-api-page .tr-terminal {\r\n    overflow: hidden;\r\n    border: 1px solid rgba(255,255,255,.13);\r\n    border-radius: 18px;\r\n    background: rgba(5,23,37,.77);\r\n    box-shadow: 0 35px 80px rgba(0,0,0,.3);\r\n    backdrop-filter: blur(10px);\r\n}\r\n\r\n#tr-api-page .tr-terminal-top {\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 7px;\r\n    height: 48px;\r\n    padding: 0 18px;\r\n    border-bottom: 1px solid rgba(255,255,255,.09);\r\n    background: rgba(255,255,255,.03);\r\n}\r\n\r\n#tr-api-page .tr-terminal-dot {\r\n    width: 8px;\r\n    height: 8px;\r\n    border-radius: 50%;\r\n    background: rgba(255,255,255,.25);\r\n}\r\n\r\n#tr-api-page .tr-terminal-label {\r\n    margin-left: auto;\r\n    color: rgba(255,255,255,.46);\r\n    font-size: 11px;\r\n    font-weight: 700;\r\n    letter-spacing: .06em;\r\n    text-transform: uppercase;\r\n}\r\n\r\n#tr-api-page .tr-terminal-body {\r\n    padding: 24px 24px 27px;\r\n    font-family: \"SFMono-Regular\", Consolas, \"Liberation Mono\", monospace;\r\n    font-size: 12px;\r\n    line-height: 1.8;\r\n}\r\n\r\n#tr-api-page .tr-code-method {\r\n    color: #79e4dc;\r\n    font-weight: 800;\r\n}\r\n\r\n#tr-api-page .tr-code-path {\r\n    color: #fff;\r\n}\r\n\r\n#tr-api-page .tr-code-key {\r\n    color: #82bfe5;\r\n}\r\n\r\n#tr-api-page .tr-code-value {\r\n    color: #d4e8a7;\r\n}\r\n\r\n#tr-api-page .tr-code-muted {\r\n    color: rgba(255,255,255,.38);\r\n}\r\n\r\n#tr-api-page .tr-terminal-divider {\r\n    height: 1px;\r\n    margin: 19px 0;\r\n    background: rgba(255,255,255,.08);\r\n}\r\n\r\n#tr-api-page .tr-terminal-result {\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 10px;\r\n    margin-top: 16px;\r\n    padding: 11px 13px;\r\n    border: 1px solid rgba(92,218,180,.14);\r\n    border-radius: 9px;\r\n    color: #b7ebd8;\r\n    background: rgba(38,169,128,.08);\r\n    font-family: inherit;\r\n}\r\n\r\n#tr-api-page .tr-terminal-result:before {\r\n    content: \"\u2713\";\r\n    display: inline-grid;\r\n    place-items: center;\r\n    width: 19px;\r\n    height: 19px;\r\n    border-radius: 50%;\r\n    color: #082f27;\r\n    background: #62d3a8;\r\n    font-weight: 900;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   STATS BAR\r\n   ========================================================= *\/\r\n\r\n#tr-api-page .tr-stats {\r\n    position: relative;\r\n    z-index: 4;\r\n    width: min(1080px, calc(100% - 48px));\r\n    margin: -38px auto 0;\r\n    display: grid;\r\n    grid-template-columns: repeat(4, 1fr);\r\n    overflow: hidden;\r\n    border: 1px solid var(--tr-border);\r\n    border-radius: 16px;\r\n    background: #fff;\r\n    box-shadow: 0 20px 55px rgba(17,48,72,.11);\r\n}\r\n\r\n#tr-api-page .tr-stat {\r\n    padding: 25px 25px 23px;\r\n    border-right: 1px solid var(--tr-border);\r\n}\r\n\r\n#tr-api-page .tr-stat:last-child {\r\n    border-right: none;\r\n}\r\n\r\n#tr-api-page .tr-stat strong {\r\n    display: block;\r\n    margin-bottom: 2px;\r\n    color: var(--tr-navy);\r\n    font-size: 23px;\r\n    line-height: 1.2;\r\n}\r\n\r\n#tr-api-page .tr-stat span {\r\n    color: var(--tr-muted);\r\n    font-size: 12px;\r\n    font-weight: 650;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   ARCHITECTURE\r\n   ========================================================= *\/\r\n\r\n#tr-api-page .tr-architecture {\r\n    display: grid;\r\n    grid-template-columns: 1fr 50px 1fr 50px 1fr;\r\n    align-items: stretch;\r\n}\r\n\r\n#tr-api-page .tr-arch-card {\r\n    position: relative;\r\n    padding: 31px;\r\n    border: 1px solid var(--tr-border);\r\n    border-radius: 14px;\r\n    background: #fff;\r\n    box-shadow: 0 10px 35px rgba(18,54,78,.055);\r\n}\r\n\r\n#tr-api-page .tr-arch-card-featured {\r\n    color: #fff;\r\n    border-color: var(--tr-navy);\r\n    background:\r\n        linear-gradient(145deg, var(--tr-navy-deep), var(--tr-navy));\r\n    box-shadow: 0 18px 44px rgba(11,48,79,.18);\r\n}\r\n\r\n#tr-api-page .tr-arch-icon {\r\n    display: inline-grid;\r\n    place-items: center;\r\n    width: 43px;\r\n    height: 43px;\r\n    margin-bottom: 21px;\r\n    border-radius: 11px;\r\n    color: var(--tr-teal-dark);\r\n    background: var(--tr-teal-light);\r\n    font-size: 18px;\r\n    font-weight: 900;\r\n}\r\n\r\n#tr-api-page .tr-arch-card-featured .tr-arch-icon {\r\n    color: #062c35;\r\n    background: #67dad4;\r\n}\r\n\r\n#tr-api-page .tr-arch-card h3 {\r\n    margin-bottom: 8px;\r\n    color: var(--tr-navy);\r\n    font-size: 18px;\r\n    line-height: 1.3;\r\n    font-weight: 800;\r\n}\r\n\r\n#tr-api-page .tr-arch-card-featured h3 {\r\n    color: #fff;\r\n}\r\n\r\n#tr-api-page .tr-arch-card p {\r\n    margin: 0;\r\n    color: var(--tr-muted);\r\n    font-size: 14px;\r\n}\r\n\r\n#tr-api-page .tr-arch-card-featured p {\r\n    color: rgba(255,255,255,.68);\r\n}\r\n\r\n#tr-api-page .tr-arrow {\r\n    display: grid;\r\n    place-items: center;\r\n    color: var(--tr-teal);\r\n    font-size: 27px;\r\n    font-weight: 800;\r\n}\r\n\r\n#tr-api-page .tr-interface-note {\r\n    display: flex;\r\n    gap: 16px;\r\n    margin-top: 27px;\r\n    padding: 18px 21px;\r\n    border: 1px solid #cfe9e7;\r\n    border-radius: 11px;\r\n    background: #f1fbfa;\r\n}\r\n\r\n#tr-api-page .tr-interface-note strong {\r\n    color: var(--tr-navy);\r\n}\r\n\r\n#tr-api-page .tr-interface-icon {\r\n    flex: 0 0 auto;\r\n    display: grid;\r\n    place-items: center;\r\n    width: 32px;\r\n    height: 32px;\r\n    border-radius: 8px;\r\n    color: #fff;\r\n    background: var(--tr-teal);\r\n    font-size: 13px;\r\n    font-weight: 900;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   CAPABILITY CARDS\r\n   ========================================================= *\/\r\n\r\n#tr-api-page .tr-capabilities {\r\n    display: grid;\r\n    grid-template-columns: repeat(2, 1fr);\r\n    gap: 20px;\r\n}\r\n\r\n#tr-api-page .tr-cap-card {\r\n    position: relative;\r\n    min-height: 230px;\r\n    padding: 30px;\r\n    overflow: hidden;\r\n    border: 1px solid var(--tr-border);\r\n    border-radius: 16px;\r\n    background: #fff;\r\n    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;\r\n}\r\n\r\n#tr-api-page .tr-cap-card:hover {\r\n    transform: translateY(-5px);\r\n    border-color: #b7dcd9;\r\n    box-shadow: 0 18px 50px rgba(20,54,77,.09);\r\n}\r\n\r\n#tr-api-page .tr-cap-number {\r\n    position: absolute;\r\n    top: 20px;\r\n    right: 24px;\r\n    color: #e8eff4;\r\n    font-size: 54px;\r\n    line-height: 1;\r\n    font-weight: 900;\r\n}\r\n\r\n#tr-api-page .tr-cap-icon {\r\n    display: grid;\r\n    place-items: center;\r\n    width: 47px;\r\n    height: 47px;\r\n    margin-bottom: 21px;\r\n    border-radius: 12px;\r\n    color: var(--tr-teal-dark);\r\n    background: var(--tr-teal-light);\r\n    font-size: 18px;\r\n    font-weight: 900;\r\n}\r\n\r\n#tr-api-page .tr-cap-card h3 {\r\n    position: relative;\r\n    margin-bottom: 9px;\r\n    color: var(--tr-navy);\r\n    font-size: 20px;\r\n    font-weight: 800;\r\n}\r\n\r\n#tr-api-page .tr-cap-card p {\r\n    position: relative;\r\n    max-width: 510px;\r\n    margin-bottom: 17px;\r\n    color: var(--tr-muted);\r\n    font-size: 14px;\r\n}\r\n\r\n#tr-api-page .tr-endpoint {\r\n    position: relative;\r\n    display: inline-flex;\r\n    padding: 7px 10px;\r\n    border-radius: 7px;\r\n    color: #087f7c;\r\n    background: #eef9f8;\r\n    font-family: \"SFMono-Regular\", Consolas, monospace;\r\n    font-size: 12px;\r\n    font-weight: 700;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   TABLES\r\n   ========================================================= *\/\r\n\r\n#tr-api-page .tr-table-block + .tr-table-block {\r\n    margin-top: 43px;\r\n}\r\n\r\n#tr-api-page .tr-table-title {\r\n    margin-bottom: 15px;\r\n    color: var(--tr-navy);\r\n    font-size: 23px;\r\n    line-height: 1.3;\r\n    font-weight: 800;\r\n}\r\n\r\n#tr-api-page .tr-table-wrap {\r\n    overflow-x: auto;\r\n    border: 1px solid var(--tr-border);\r\n    border-radius: 14px;\r\n    background: #fff;\r\n    box-shadow: 0 8px 30px rgba(18,54,78,.04);\r\n}\r\n\r\n#tr-api-page .tr-table {\r\n    width: 100%;\r\n    min-width: 850px;\r\n    border-collapse: collapse;\r\n    table-layout: fixed;\r\n}\r\n\r\n#tr-api-page .tr-table th {\r\n    padding: 14px 15px;\r\n    color: #fff;\r\n    background: var(--tr-navy);\r\n    font-size: 12px;\r\n    line-height: 1.35;\r\n    text-align: left;\r\n    font-weight: 800;\r\n}\r\n\r\n#tr-api-page .tr-table td {\r\n    padding: 16px 15px;\r\n    border-bottom: 1px solid var(--tr-border);\r\n    color: #4f6271;\r\n    font-size: 13px;\r\n    line-height: 1.5;\r\n    vertical-align: top;\r\n}\r\n\r\n#tr-api-page .tr-table tr:last-child td {\r\n    border-bottom: none;\r\n}\r\n\r\n#tr-api-page .tr-table tbody tr {\r\n    transition: background .2s ease;\r\n}\r\n\r\n#tr-api-page .tr-table tbody tr:hover {\r\n    background: #f7fbfc;\r\n}\r\n\r\n#tr-api-page .tr-service {\r\n    color: var(--tr-navy);\r\n    font-weight: 800;\r\n}\r\n\r\n#tr-api-page .tr-method {\r\n    display: inline-block;\r\n    margin-right: 5px;\r\n    color: var(--tr-teal-dark);\r\n    font-family: Consolas, monospace;\r\n    font-size: 11px;\r\n    font-weight: 900;\r\n}\r\n\r\n#tr-api-page .tr-path {\r\n    color: #118d89;\r\n    font-family: Consolas, monospace;\r\n    font-size: 11px;\r\n}\r\n\r\n#tr-api-page .tr-level {\r\n    display: inline-flex;\r\n    padding: 5px 9px;\r\n    border-radius: 100px;\r\n    color: #187a61;\r\n    background: #e9f8f2;\r\n    font-size: 11px;\r\n    font-weight: 800;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   DATA MODEL\r\n   ========================================================= *\/\r\n\r\n#tr-api-page .tr-data-grid {\r\n    display: grid;\r\n    grid-template-columns: repeat(2, 1fr);\r\n    gap: 20px;\r\n}\r\n\r\n#tr-api-page .tr-data-card {\r\n    padding: 30px;\r\n    border: 1px solid var(--tr-border);\r\n    border-radius: 16px;\r\n    background: #fff;\r\n}\r\n\r\n#tr-api-page .tr-data-card h3 {\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 11px;\r\n    margin-bottom: 21px;\r\n    color: var(--tr-navy);\r\n    font-size: 21px;\r\n    font-weight: 800;\r\n}\r\n\r\n#tr-api-page .tr-data-card h3 span {\r\n    display: inline-grid;\r\n    place-items: center;\r\n    width: 32px;\r\n    height: 32px;\r\n    border-radius: 8px;\r\n    color: var(--tr-teal-dark);\r\n    background: var(--tr-teal-light);\r\n    font-size: 14px;\r\n}\r\n\r\n#tr-api-page .tr-list {\r\n    list-style: none;\r\n    margin: 0;\r\n    padding: 0;\r\n}\r\n\r\n#tr-api-page .tr-list li {\r\n    position: relative;\r\n    padding: 9px 0 9px 25px;\r\n    border-bottom: 1px solid #edf2f5;\r\n    color: #526674;\r\n    font-size: 14px;\r\n}\r\n\r\n#tr-api-page .tr-list li:last-child {\r\n    border-bottom: none;\r\n}\r\n\r\n#tr-api-page .tr-list li:before {\r\n    content: \"\u2713\";\r\n    position: absolute;\r\n    left: 0;\r\n    top: 9px;\r\n    color: var(--tr-teal-dark);\r\n    font-weight: 900;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   FEEDBACK BANNER\r\n   ========================================================= *\/\r\n\r\n#tr-api-page .tr-feedback {\r\n    display: grid;\r\n    grid-template-columns: auto 1fr;\r\n    gap: 20px;\r\n    align-items: start;\r\n    margin-top: 25px;\r\n    padding: 27px 30px;\r\n    border: 1px solid #bfe4e1;\r\n    border-radius: 15px;\r\n    background:\r\n        linear-gradient(120deg, #effaf9 0%, #f7fcfc 100%);\r\n}\r\n\r\n#tr-api-page .tr-feedback-icon {\r\n    display: grid;\r\n    place-items: center;\r\n    width: 46px;\r\n    height: 46px;\r\n    border-radius: 12px;\r\n    color: white;\r\n    background: var(--tr-teal);\r\n    font-size: 19px;\r\n}\r\n\r\n#tr-api-page .tr-feedback h3 {\r\n    margin-bottom: 6px;\r\n    color: var(--tr-navy);\r\n    font-size: 18px;\r\n    font-weight: 800;\r\n}\r\n\r\n#tr-api-page .tr-feedback p {\r\n    margin: 0;\r\n    color: #566c7a;\r\n    font-size: 14px;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   WORKFLOW\r\n   ========================================================= *\/\r\n\r\n#tr-api-page .tr-workflow {\r\n    display: grid;\r\n    grid-template-columns: repeat(5, 1fr);\r\n    gap: 0;\r\n    overflow: hidden;\r\n    border: 1px solid rgba(255,255,255,.12);\r\n    border-radius: 16px;\r\n    background: rgba(255,255,255,.04);\r\n}\r\n\r\n#tr-api-page .tr-step {\r\n    position: relative;\r\n    min-height: 240px;\r\n    padding: 28px 22px;\r\n    border-right: 1px solid rgba(255,255,255,.1);\r\n}\r\n\r\n#tr-api-page .tr-step:last-child {\r\n    border-right: none;\r\n}\r\n\r\n#tr-api-page .tr-step:nth-child(3) {\r\n    background: rgba(19,170,166,.16);\r\n}\r\n\r\n#tr-api-page .tr-step-number {\r\n    display: grid;\r\n    place-items: center;\r\n    width: 34px;\r\n    height: 34px;\r\n    margin-bottom: 26px;\r\n    border: 1px solid rgba(108,224,218,.25);\r\n    border-radius: 50%;\r\n    color: #71ddd8;\r\n    background: rgba(19,170,166,.08);\r\n    font-size: 13px;\r\n    font-weight: 900;\r\n}\r\n\r\n#tr-api-page .tr-step h3 {\r\n    margin-bottom: 10px;\r\n    color: #fff;\r\n    font-size: 17px;\r\n    line-height: 1.3;\r\n    font-weight: 800;\r\n}\r\n\r\n#tr-api-page .tr-step p {\r\n    margin-bottom: 0;\r\n    color: rgba(255,255,255,.61);\r\n    font-size: 13px;\r\n    line-height: 1.6;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   CODE EXAMPLE\r\n   ========================================================= *\/\r\n\r\n#tr-api-page .tr-code-shell {\r\n    overflow: hidden;\r\n    border: 1px solid #14384c;\r\n    border-radius: 15px;\r\n    background: var(--tr-code);\r\n    box-shadow: 0 18px 45px rgba(8,33,49,.13);\r\n}\r\n\r\n#tr-api-page .tr-code-header {\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: space-between;\r\n    padding: 13px 19px;\r\n    border-bottom: 1px solid rgba(255,255,255,.08);\r\n    color: rgba(255,255,255,.6);\r\n    background: rgba(255,255,255,.025);\r\n    font-size: 11px;\r\n    font-weight: 700;\r\n}\r\n\r\n#tr-api-page .tr-code-language {\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 8px;\r\n}\r\n\r\n#tr-api-page .tr-code-language:before {\r\n    content: \"\";\r\n    width: 7px;\r\n    height: 7px;\r\n    border-radius: 50%;\r\n    background: #66d9d4;\r\n}\r\n\r\n#tr-api-page pre {\r\n    margin: 0;\r\n    padding: 27px;\r\n    overflow-x: auto;\r\n    color: #d8e5eb;\r\n    background: transparent;\r\n    font-family: \"SFMono-Regular\", Consolas, \"Liberation Mono\", monospace;\r\n    font-size: 12px;\r\n    line-height: 1.7;\r\n    white-space: pre;\r\n}\r\n\r\n#tr-api-page .tr-code-description {\r\n    margin: 19px 3px 0;\r\n    color: var(--tr-muted);\r\n    font-size: 14px;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   CHECKLIST\r\n   ========================================================= *\/\r\n\r\n#tr-api-page .tr-checklist {\r\n    display: grid;\r\n    grid-template-columns: repeat(2, 1fr);\r\n    gap: 15px;\r\n}\r\n\r\n#tr-api-page .tr-check-item {\r\n    display: grid;\r\n    grid-template-columns: 43px 1fr;\r\n    gap: 17px;\r\n    padding: 23px;\r\n    border: 1px solid var(--tr-border);\r\n    border-radius: 14px;\r\n    background: #fff;\r\n    transition: border-color .2s ease, box-shadow .2s ease;\r\n}\r\n\r\n#tr-api-page .tr-check-item:hover {\r\n    border-color: #b8dcd9;\r\n    box-shadow: 0 12px 32px rgba(15,51,76,.06);\r\n}\r\n\r\n#tr-api-page .tr-check-icon {\r\n    display: grid;\r\n    place-items: center;\r\n    width: 43px;\r\n    height: 43px;\r\n    border-radius: 11px;\r\n    color: var(--tr-teal-dark);\r\n    background: var(--tr-teal-light);\r\n    font-size: 15px;\r\n    font-weight: 900;\r\n}\r\n\r\n#tr-api-page .tr-check-item h3 {\r\n    margin: 0 0 6px;\r\n    color: var(--tr-navy);\r\n    font-size: 16px;\r\n    font-weight: 800;\r\n}\r\n\r\n#tr-api-page .tr-check-item p {\r\n    margin: 0 0 9px;\r\n    color: var(--tr-muted);\r\n    font-size: 13px;\r\n}\r\n\r\n#tr-api-page .tr-check-answer {\r\n    color: #23847f;\r\n    font-size: 12px;\r\n    font-weight: 700;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   FINAL CTA\r\n   ========================================================= *\/\r\n\r\n#tr-api-page .tr-final {\r\n    padding: 90px 0;\r\n}\r\n\r\n#tr-api-page .tr-final-box {\r\n    position: relative;\r\n    overflow: hidden;\r\n    padding: 65px;\r\n    border-radius: 22px;\r\n    color: #fff;\r\n    background:\r\n        radial-gradient(circle at 90% 20%, rgba(28,195,188,.3), transparent 27%),\r\n        linear-gradient(135deg, #072238, #0e3a59);\r\n    box-shadow: 0 24px 60px rgba(15,50,75,.16);\r\n}\r\n\r\n#tr-api-page .tr-final-box:after {\r\n    content: \"\";\r\n    position: absolute;\r\n    right: -70px;\r\n    bottom: -120px;\r\n    width: 300px;\r\n    height: 300px;\r\n    border: 45px solid rgba(255,255,255,.035);\r\n    border-radius: 50%;\r\n}\r\n\r\n#tr-api-page .tr-final-content {\r\n    position: relative;\r\n    z-index: 2;\r\n    max-width: 750px;\r\n}\r\n\r\n#tr-api-page .tr-final h2 {\r\n    margin-bottom: 17px;\r\n    color: #fff;\r\n    font-size: clamp(34px, 4.3vw, 53px);\r\n    line-height: 1.05;\r\n    letter-spacing: -.04em;\r\n    font-weight: 800;\r\n}\r\n\r\n#tr-api-page .tr-final p {\r\n    max-width: 670px;\r\n    margin-bottom: 28px;\r\n    color: rgba(255,255,255,.7);\r\n    font-size: 16px;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   RESPONSIVE\r\n   ========================================================= *\/\r\n\r\n@media (max-width: 1024px) {\r\n\r\n    #tr-api-page .tr-hero-grid {\r\n        grid-template-columns: 1fr;\r\n        gap: 55px;\r\n    }\r\n\r\n    #tr-api-page .tr-terminal {\r\n        max-width: 700px;\r\n    }\r\n\r\n    #tr-api-page .tr-stats {\r\n        grid-template-columns: repeat(2, 1fr);\r\n    }\r\n\r\n    #tr-api-page .tr-stat:nth-child(2) {\r\n        border-right: none;\r\n    }\r\n\r\n    #tr-api-page .tr-stat:nth-child(-n+2) {\r\n        border-bottom: 1px solid var(--tr-border);\r\n    }\r\n\r\n    #tr-api-page .tr-architecture {\r\n        grid-template-columns: 1fr;\r\n        gap: 13px;\r\n    }\r\n\r\n    #tr-api-page .tr-arrow {\r\n        height: 30px;\r\n        transform: rotate(90deg);\r\n    }\r\n\r\n    #tr-api-page .tr-workflow {\r\n        grid-template-columns: repeat(2, 1fr);\r\n    }\r\n\r\n    #tr-api-page .tr-step {\r\n        border-bottom: 1px solid rgba(255,255,255,.1);\r\n    }\r\n\r\n    #tr-api-page .tr-step:nth-child(2),\r\n    #tr-api-page .tr-step:nth-child(4) {\r\n        border-right: none;\r\n    }\r\n}\r\n\r\n@media (max-width: 767px) {\r\n\r\n    #tr-api-page .tr-container {\r\n        width: min(100% - 30px, 1180px);\r\n    }\r\n\r\n    #tr-api-page .tr-section {\r\n        padding: 65px 0;\r\n    }\r\n\r\n    #tr-api-page .tr-hero {\r\n        padding: 70px 0 75px;\r\n    }\r\n\r\n    #tr-api-page .tr-hero h1 {\r\n        font-size: 42px;\r\n    }\r\n\r\n    #tr-api-page .tr-hero-copy {\r\n        font-size: 16px;\r\n    }\r\n\r\n    #tr-api-page .tr-actions {\r\n        flex-direction: column;\r\n    }\r\n\r\n    #tr-api-page .tr-button {\r\n        width: 100%;\r\n    }\r\n\r\n    #tr-api-page .tr-stats {\r\n        width: min(100% - 30px, 1080px);\r\n        grid-template-columns: 1fr 1fr;\r\n    }\r\n\r\n    #tr-api-page .tr-stat {\r\n        padding: 19px 17px;\r\n    }\r\n\r\n    #tr-api-page .tr-stat strong {\r\n        font-size: 18px;\r\n    }\r\n\r\n    #tr-api-page .tr-heading {\r\n        margin-bottom: 30px;\r\n    }\r\n\r\n    #tr-api-page .tr-heading h2 {\r\n        font-size: 32px;\r\n    }\r\n\r\n    #tr-api-page .tr-capabilities,\r\n    #tr-api-page .tr-data-grid,\r\n    #tr-api-page .tr-checklist {\r\n        grid-template-columns: 1fr;\r\n    }\r\n\r\n    #tr-api-page .tr-cap-card {\r\n        min-height: auto;\r\n    }\r\n\r\n    #tr-api-page .tr-workflow {\r\n        grid-template-columns: 1fr;\r\n    }\r\n\r\n    #tr-api-page .tr-step {\r\n        min-height: auto;\r\n        border-right: none;\r\n        border-bottom: 1px solid rgba(255,255,255,.1);\r\n    }\r\n\r\n    #tr-api-page .tr-step:last-child {\r\n        border-bottom: none;\r\n    }\r\n\r\n    #tr-api-page .tr-feedback {\r\n        grid-template-columns: 1fr;\r\n    }\r\n\r\n    #tr-api-page .tr-final {\r\n        padding: 55px 0;\r\n    }\r\n\r\n    #tr-api-page .tr-final-box {\r\n        padding: 38px 26px;\r\n    }\r\n\r\n    #tr-api-page pre {\r\n        padding: 20px;\r\n        font-size: 11px;\r\n    }\r\n}\r\n<\/style>\r\n\r\n\r\n<div id=\"tr-api-page\">\r\n\r\n    <!-- ====================================================\r\n         HERO\r\n    ===================================================== -->\r\n    <section class=\"tr-hero\">\r\n        <div class=\"tr-container\">\r\n            <div class=\"tr-hero-grid\">\r\n\r\n                <div>\r\n                    <div class=\"tr-brand\">\r\n                        TrendRoute<span>.ai<\/span>\r\n                    <\/div>\r\n\r\n                    <div class=\"tr-hero-badge\">\r\n                        API & Integration\r\n                    <\/div>\r\n\r\n                    <h1>\r\n                         TrendRoute API  \r\n                        <span>Documentation Overview.<\/span>\r\n                    <\/h1>\r\n\r\n                    <p class=\"tr-hero-copy\">\r\n                        Meta description: Route Optimization & ETA REST APIs. Integrate route optimization, ETA calculation, and geospatial APIs into your logistics platform. REST\/JSON APIs with API-key auth, explore endpoints and \r\n                        <strong>quick-start examples.<\/strong>\r\n                    <\/p>\r\n\r\n                    <div class=\"tr-actions\">\r\n                        <a href=\"https:\/\/trendroute.ai\/route-optimisation-sandbox\"\r\n                           class=\"tr-button tr-button-primary\">\r\n                            Explore the Sandbox \u2192\r\n                        <\/a>\r\n\r\n                       \r\n                    <\/div>\r\n                <\/div>\r\n\r\n\r\n                <div class=\"tr-terminal\">\r\n\r\n                    <div class=\"tr-terminal-top\">\r\n                        <span class=\"tr-terminal-dot\"><\/span>\r\n                        <span class=\"tr-terminal-dot\"><\/span>\r\n                        <span class=\"tr-terminal-dot\"><\/span>\r\n\r\n                        <span class=\"tr-terminal-label\">\r\n                            TrendRoute API\r\n                        <\/span>\r\n                    <\/div>\r\n\r\n                    <div class=\"tr-terminal-body\">\r\n\r\n                        <div>\r\n                            <span class=\"tr-code-method\">POST<\/span>\r\n                            <span class=\"tr-code-path\">\r\n                                \/api\/v1\/route-optimization\/\r\n                            <\/span>\r\n                        <\/div>\r\n\r\n                        <div class=\"tr-code-muted\">\r\n                            X-API-Key: &lt;your-api-key&gt;\r\n                        <\/div>\r\n\r\n                        <div class=\"tr-terminal-divider\"><\/div>\r\n\r\n                        <div>{<\/div>\r\n\r\n                        <div>\r\n                            &nbsp;&nbsp;<span class=\"tr-code-key\">\"region_id\"<\/span>:\r\n                            <span class=\"tr-code-value\">\"stockholm\"<\/span>,\r\n                        <\/div>\r\n\r\n                        <div>\r\n                            &nbsp;&nbsp;<span class=\"tr-code-key\">\"orders\"<\/span>: [...]\r\n                        <\/div>\r\n\r\n                        <div>\r\n                            &nbsp;&nbsp;<span class=\"tr-code-key\">\"vehicle\"<\/span>:\r\n                            <span class=\"tr-code-value\">\"van-12\"<\/span>,\r\n                        <\/div>\r\n\r\n                        <div>\r\n                            &nbsp;&nbsp;<span class=\"tr-code-key\">\"optimization_criteria\"<\/span>:\r\n                            <span class=\"tr-code-value\">\"duration\"<\/span>\r\n                        <\/div>\r\n\r\n                        <div>}<\/div>\r\n\r\n                        <div class=\"tr-terminal-result\">\r\n                            Optimised route returned successfully\r\n                        <\/div>\r\n\r\n                    <\/div>\r\n                <\/div>\r\n\r\n            <\/div>\r\n        <\/div>\r\n    <\/section>\r\n\r\n\r\n    <!-- Stats -->\r\n    <div class=\"tr-stats\">\r\n\r\n        <div class=\"tr-stat\">\r\n            <strong>REST<\/strong>\r\n            <span>JSON over HTTP<\/span>\r\n        <\/div>\r\n\r\n        <div class=\"tr-stat\">\r\n            <strong>API Key<\/strong>\r\n            <span>X-API-Key authentication<\/span>\r\n        <\/div>\r\n\r\n        <div class=\"tr-stat\">\r\n            <strong>4<\/strong>\r\n            <span>Core API service families<\/span>\r\n        <\/div>\r\n\r\n        <div class=\"tr-stat\">\r\n            <strong>Flexible<\/strong>\r\n            <span>Coordinates or addresses<\/span>\r\n        <\/div>\r\n\r\n    <\/div>\r\n\r\n\r\n    <!-- ====================================================\r\n         ARCHITECTURE\r\n    ===================================================== -->\r\n    <section class=\"tr-section\">\r\n\r\n        <div class=\"tr-container\">\r\n\r\n            <div class=\"tr-heading\">\r\n\r\n                <div class=\"tr-eyebrow\">\r\n                    Architecture\r\n                <\/div>\r\n\r\n                <h2>\r\n                    Integration at a glance\r\n                <\/h2>\r\n\r\n                <p>\r\n                    Your logistics platform remains the system of record.\r\n                    TrendRoute receives the planning problem, processes it\r\n                    through its optimisation and geospatial services, and\r\n                    returns structured operational results.\r\n                <\/p>\r\n\r\n            <\/div>\r\n\r\n\r\n            <div class=\"tr-architecture\">\r\n\r\n                <div class=\"tr-arch-card\">\r\n\r\n                    <div class=\"tr-arch-icon\">01<\/div>\r\n\r\n                    <h3>Your Logistics Platform<\/h3>\r\n\r\n                    <p>\r\n                        Orders, missions, vehicles, static routes\r\n                        and operational rules.\r\n                    <\/p>\r\n\r\n                <\/div>\r\n\r\n\r\n                <div class=\"tr-arrow\">\u2192<\/div>\r\n\r\n\r\n                <div class=\"tr-arch-card tr-arch-card-featured\">\r\n\r\n                    <div class=\"tr-arch-icon\">API<\/div>\r\n\r\n                    <h3>TrendRoute APIs<\/h3>\r\n\r\n                    <p>\r\n                        Optimisation, extension, ETA \/ recalculation\r\n                        and geospatial services.\r\n                    <\/p>\r\n\r\n                <\/div>\r\n\r\n\r\n                <div class=\"tr-arrow\">\u2192<\/div>\r\n\r\n\r\n                <div class=\"tr-arch-card\">\r\n\r\n                    <div class=\"tr-arch-icon\">03<\/div>\r\n\r\n                    <h3>Operational Output<\/h3>\r\n\r\n                    <p>\r\n                        Routes, assignments, ETAs, KPIs,\r\n                        geometry and unassigned orders.\r\n                    <\/p>\r\n\r\n                <\/div>\r\n\r\n            <\/div>\r\n\r\n\r\n            <div class=\"tr-interface-note\">\r\n\r\n                <div class=\"tr-interface-icon\">i<\/div>\r\n\r\n                <div>\r\n                    <strong>Interface basics:<\/strong>\r\n                    JSON over HTTP, API-key authentication through the\r\n                    <code>X-API-Key<\/code> header and standard validation\r\n                    responses. Requests can use geographic coordinates\r\n                    or addresses where supported.\r\n                <\/div>\r\n\r\n            <\/div>\r\n\r\n        <\/div>\r\n\r\n    <\/section>\r\n\r\n\r\n    <!-- ====================================================\r\n         CORE CAPABILITIES\r\n    ===================================================== -->\r\n    <section class=\"tr-section tr-section-soft\">\r\n\r\n        <div class=\"tr-container\">\r\n\r\n            <div class=\"tr-heading\">\r\n\r\n                <div class=\"tr-eyebrow\">\r\n                    Capabilities\r\n                <\/div>\r\n\r\n                <h2>\r\n                    Core API service families\r\n                <\/h2>\r\n\r\n                <p>\r\n                    Use only the services your workflow needs \u2014\r\n                    from single-route optimisation to ETA recalculation\r\n                    and geospatial infrastructure.\r\n                <\/p>\r\n\r\n            <\/div>\r\n\r\n\r\n            <div class=\"tr-capabilities\">\r\n\r\n                <!-- Card -->\r\n                <div class=\"tr-cap-card\">\r\n\r\n                    <span class=\"tr-cap-number\">01<\/span>\r\n\r\n                    <div class=\"tr-cap-icon\">\u2197<\/div>\r\n\r\n                    <h3>Route Optimisation<\/h3>\r\n\r\n                    <p>\r\n                        Optimise one route, allocate orders across multiple\r\n                        routes, or solve pickup-and-delivery shipment flows.\r\n                    <\/p>\r\n\r\n                    <span class=\"tr-endpoint\">\r\n                        \/api\/v1\/route-optimization\/...\r\n                    <\/span>\r\n\r\n                <\/div>\r\n\r\n\r\n                <!-- Card -->\r\n                <div class=\"tr-cap-card\">\r\n\r\n                    <span class=\"tr-cap-number\">02<\/span>\r\n\r\n                    <div class=\"tr-cap-icon\">\uff0b<\/div>\r\n\r\n                    <h3>Route Extension<\/h3>\r\n\r\n                    <p>\r\n                        Insert new candidate orders into existing or static\r\n                        routes with optional post-optimisation and\r\n                        extra-route creation.\r\n                    <\/p>\r\n\r\n                    <span class=\"tr-endpoint\">\r\n                        \/api\/v1\/route-extension\/multi\r\n                    <\/span>\r\n\r\n                <\/div>\r\n\r\n\r\n                <!-- Card -->\r\n                <div class=\"tr-cap-card\">\r\n\r\n                    <span class=\"tr-cap-number\">03<\/span>\r\n\r\n                    <div class=\"tr-cap-icon\">\u2301<\/div>\r\n\r\n                    <h3>Route Recalculation & ETA<\/h3>\r\n\r\n                    <p>\r\n                        Keep the supplied route sequence while calculating\r\n                        ETAs and route performance, including optional\r\n                        courier-performance tuning.\r\n                    <\/p>\r\n\r\n                    <span class=\"tr-endpoint\">\r\n                        \/api\/v1\/route-recalculation\/...\r\n                    <\/span>\r\n\r\n                <\/div>\r\n\r\n\r\n                <!-- Card -->\r\n                <div class=\"tr-cap-card\">\r\n\r\n                    <span class=\"tr-cap-number\">04<\/span>\r\n\r\n                    <div class=\"tr-cap-icon\">\u25ce<\/div>\r\n\r\n                    <h3>Geospatial Services<\/h3>\r\n\r\n                    <p>\r\n                        Distance and duration matrices, route directions,\r\n                        geocoding, reverse geocoding and snapped\r\n                        route geometry.\r\n                    <\/p>\r\n\r\n                    <span class=\"tr-endpoint\">\r\n                        \/api\/v1\/geospatial\/...\r\n                    <\/span>\r\n\r\n                <\/div>\r\n\r\n            <\/div>\r\n\r\n        <\/div>\r\n\r\n    <\/section>\r\n\r\n\r\n    <!-- ====================================================\r\n         API CATALOGUE\r\n    ===================================================== -->\r\n    <section class=\"tr-section\" id=\"api-catalogue\">\r\n\r\n        <div class=\"tr-container\">\r\n\r\n            <div class=\"tr-heading\">\r\n\r\n                <div class=\"tr-eyebrow\">\r\n                    What is available\r\n                <\/div>\r\n\r\n                <h2>\r\n                    API service catalogue\r\n                <\/h2>\r\n\r\n                <p>\r\n                    A high-level compatibility view for solution architects\r\n                    and developers evaluating how TrendRoute fits into\r\n                    an existing operational platform.\r\n                <\/p>\r\n\r\n            <\/div>\r\n\r\n\r\n            <!-- Operational -->\r\n            <div class=\"tr-table-block\">\r\n\r\n                <h3 class=\"tr-table-title\">\r\n                    Operational APIs\r\n                <\/h3>\r\n\r\n                <div class=\"tr-table-wrap\">\r\n\r\n                    <table class=\"tr-table\">\r\n\r\n                        <colgroup>\r\n                            <col style=\"width:16%\">\r\n                            <col style=\"width:22%\">\r\n                            <col style=\"width:27%\">\r\n                            <col style=\"width:25%\">\r\n                            <col style=\"width:10%\">\r\n                        <\/colgroup>\r\n\r\n                        <thead>\r\n                            <tr>\r\n                                <th>Service<\/th>\r\n                                <th>Endpoint<\/th>\r\n                                <th>Best used for<\/th>\r\n                                <th>Key data exchanged<\/th>\r\n                                <th>Integration<\/th>\r\n                            <\/tr>\r\n                        <\/thead>\r\n\r\n                        <tbody>\r\n\r\n                            <tr>\r\n                                <td class=\"tr-service\">Single route<\/td>\r\n\r\n                                <td>\r\n                                    <span class=\"tr-method\">POST<\/span>\r\n                                    <span class=\"tr-path\">\r\n                                        \/route-optimization\/\r\n                                    <\/span>\r\n                                <\/td>\r\n\r\n                                <td>\r\n                                    Optimising the stop sequence for\r\n                                    one vehicle \/ route.\r\n                                <\/td>\r\n\r\n                                <td>\r\n                                    Orders, hub, optional vehicle,\r\n                                    constraints, start time and objective.\r\n                                <\/td>\r\n\r\n                                <td>\r\n                                    <span class=\"tr-level\">Low<\/span>\r\n                                <\/td>\r\n                            <\/tr>\r\n\r\n\r\n                            <tr>\r\n                                <td class=\"tr-service\">Multi-route<\/td>\r\n\r\n                                <td>\r\n                                    <span class=\"tr-method\">POST<\/span>\r\n                                    <span class=\"tr-path\">\r\n                                        \/route-optimization\/multi\r\n                                    <\/span>\r\n                                <\/td>\r\n\r\n                                <td>\r\n                                    Allocating orders across vehicles and\r\n                                    optimising all resulting routes.\r\n                                <\/td>\r\n\r\n                                <td>\r\n                                    Orders, hub, vehicles, capacities,\r\n                                    route limits and objective.\r\n                                <\/td>\r\n\r\n                                <td>\r\n                                    <span class=\"tr-level\">Medium<\/span>\r\n                                <\/td>\r\n                            <\/tr>\r\n\r\n\r\n                            <tr>\r\n                                <td class=\"tr-service\">Shipment<\/td>\r\n\r\n                                <td>\r\n                                    <span class=\"tr-method\">POST<\/span>\r\n                                    <span class=\"tr-path\">\r\n                                        \/route-optimization\/shipment\r\n                                    <\/span>\r\n                                <\/td>\r\n\r\n                                <td>\r\n                                    Express, food and courier flows where\r\n                                    pickup must precede delivery.\r\n                                <\/td>\r\n\r\n                                <td>\r\n                                    Pickup \/ delivery steps, vehicle,\r\n                                    hub, capacity and route constraints.\r\n                                <\/td>\r\n\r\n                                <td>\r\n                                    <span class=\"tr-level\">Medium<\/span>\r\n                                <\/td>\r\n                            <\/tr>\r\n\r\n\r\n                            <tr>\r\n                                <td class=\"tr-service\">Route extension<\/td>\r\n\r\n                                <td>\r\n                                    <span class=\"tr-method\">POST<\/span>\r\n                                    <span class=\"tr-path\">\r\n                                        \/route-extension\/multi\r\n                                    <\/span>\r\n                                <\/td>\r\n\r\n                                <td>\r\n                                    Adding dynamic orders to existing\r\n                                    or static routes.\r\n                                <\/td>\r\n\r\n                                <td>\r\n                                    Existing routes, vehicles,\r\n                                    candidate orders, hub and limits.\r\n                                <\/td>\r\n\r\n                                <td>\r\n                                    <span class=\"tr-level\">Medium<\/span>\r\n                                <\/td>\r\n                            <\/tr>\r\n\r\n\r\n                            <tr>\r\n                                <td class=\"tr-service\">Recalculation \/ ETA<\/td>\r\n\r\n                                <td>\r\n                                    <span class=\"tr-method\">POST<\/span>\r\n                                    <span class=\"tr-path\">\r\n                                        \/route-recalculation\/\r\n                                    <\/span>\r\n                                <\/td>\r\n\r\n                                <td>\r\n                                    Calculating ETAs and route KPIs without\r\n                                    changing the supplied route sequence.\r\n                                <\/td>\r\n\r\n                                <td>\r\n                                    Ordered stops, hub, start time and\r\n                                    optional courier context.\r\n                                <\/td>\r\n\r\n                                <td>\r\n                                    <span class=\"tr-level\">Low<\/span>\r\n                                <\/td>\r\n                            <\/tr>\r\n\r\n\r\n                            <tr>\r\n                                <td class=\"tr-service\">\r\n                                    Shipment recalculation\r\n                                <\/td>\r\n\r\n                                <td>\r\n                                    <span class=\"tr-method\">POST<\/span>\r\n                                    <span class=\"tr-path\">\r\n                                        \/route-recalculation\/shipment\r\n                                    <\/span>\r\n                                <\/td>\r\n\r\n                                <td>\r\n                                    ETA and KPI recalculation for routes\r\n                                    with pickup dependencies.\r\n                                <\/td>\r\n\r\n                                <td>\r\n                                    Ordered shipment stops, hub,\r\n                                    start time and courier context.\r\n                                <\/td>\r\n\r\n                                <td>\r\n                                    <span class=\"tr-level\">\r\n                                        Low\u2013Medium\r\n                                    <\/span>\r\n                                <\/td>\r\n                            <\/tr>\r\n\r\n                        <\/tbody>\r\n                    <\/table>\r\n\r\n                <\/div>\r\n\r\n            <\/div>\r\n\r\n\r\n            <!-- Geo -->\r\n            <div class=\"tr-table-block\">\r\n\r\n                <h3 class=\"tr-table-title\">\r\n                    Geospatial APIs\r\n                <\/h3>\r\n\r\n                <div class=\"tr-table-wrap\">\r\n\r\n                    <table class=\"tr-table\">\r\n\r\n                        <colgroup>\r\n                            <col style=\"width:18%\">\r\n                            <col style=\"width:28%\">\r\n                            <col style=\"width:31%\">\r\n                            <col style=\"width:23%\">\r\n                        <\/colgroup>\r\n\r\n                        <thead>\r\n                            <tr>\r\n                                <th>Service<\/th>\r\n                                <th>Endpoint<\/th>\r\n                                <th>Purpose<\/th>\r\n                                <th>Compatibility notes<\/th>\r\n                            <\/tr>\r\n                        <\/thead>\r\n\r\n                        <tbody>\r\n\r\n                            <tr>\r\n                                <td class=\"tr-service\">Matrix<\/td>\r\n\r\n                                <td>\r\n                                    <span class=\"tr-method\">POST<\/span>\r\n                                    <span class=\"tr-path\">\r\n                                        \/geospatial\/matrix\r\n                                    <\/span>\r\n                                <\/td>\r\n\r\n                                <td>\r\n                                    Generate pairwise travel distance\r\n                                    and duration matrices.\r\n                                <\/td>\r\n\r\n                                <td>\r\n                                    Minimum 2 geolocations.\r\n                                <\/td>\r\n                            <\/tr>\r\n\r\n\r\n                            <tr>\r\n                                <td class=\"tr-service\">Directions<\/td>\r\n\r\n                                <td>\r\n                                    <span class=\"tr-method\">POST<\/span>\r\n                                    <span class=\"tr-path\">\r\n                                        \/geospatial\/direction\r\n                                    <\/span>\r\n                                <\/td>\r\n\r\n                                <td>\r\n                                    Return route distance, duration,\r\n                                    encoded geometry and ordered point groups.\r\n                                <\/td>\r\n\r\n                                <td>\r\n                                    2\u2013500 points, car \/ bike routing,\r\n                                    snapped locations and walking groups.\r\n                                <\/td>\r\n                            <\/tr>\r\n\r\n\r\n                            <tr>\r\n                                <td class=\"tr-service\">Geocode<\/td>\r\n\r\n                                <td>\r\n                                    <span class=\"tr-method\">POST<\/span>\r\n                                    <span class=\"tr-path\">\r\n                                        \/geospatial\/geocode\r\n                                    <\/span>\r\n                                <\/td>\r\n\r\n                                <td>\r\n                                    Convert addresses to latitude \/\r\n                                    longitude while preserving caller IDs.\r\n                                <\/td>\r\n\r\n                                <td>\r\n                                    1\u2013100 addresses per request.\r\n                                <\/td>\r\n                            <\/tr>\r\n\r\n\r\n                            <tr>\r\n                                <td class=\"tr-service\">Reverse geocode<\/td>\r\n\r\n                                <td>\r\n                                    <span class=\"tr-method\">POST<\/span>\r\n                                    <span class=\"tr-path\">\r\n                                        \/geospatial\/reverse-geocode\r\n                                    <\/span>\r\n                                <\/td>\r\n\r\n                                <td>\r\n                                    Convert coordinates to addresses\r\n                                    while preserving caller IDs.\r\n                                <\/td>\r\n\r\n                                <td>\r\n                                    1\u2013100 coordinates per request.\r\n                                <\/td>\r\n                            <\/tr>\r\n\r\n                        <\/tbody>\r\n\r\n                    <\/table>\r\n\r\n                <\/div>\r\n            <\/div>\r\n\r\n        <\/div>\r\n\r\n    <\/section>\r\n\r\n\r\n    <!-- ====================================================\r\n         DATA MODEL\r\n    ===================================================== -->\r\n    <section class=\"tr-section tr-section-soft\">\r\n\r\n        <div class=\"tr-container\">\r\n\r\n            <div class=\"tr-heading\">\r\n\r\n                <div class=\"tr-eyebrow\">\r\n                    Inputs & Outputs\r\n                <\/div>\r\n\r\n                <h2>\r\n                    Data model compatibility\r\n                <\/h2>\r\n\r\n                <p>\r\n                    TrendRoute exchanges the operational data your platform\r\n                    already works with while keeping your own IDs\r\n                    and business workflow in control.\r\n                <\/p>\r\n\r\n            <\/div>\r\n\r\n\r\n            <div class=\"tr-data-grid\">\r\n\r\n                <div class=\"tr-data-card\">\r\n\r\n                    <h3>\r\n                        <span>IN<\/span>\r\n                        Common inputs\r\n                    <\/h3>\r\n\r\n                    <ul class=\"tr-list\">\r\n                        <li>Order \/ mission ID and stop ID<\/li>\r\n                        <li>Latitude \/ longitude or address<\/li>\r\n                        <li>Service time and time windows<\/li>\r\n                        <li>Weight \/ volume and vehicle capacities<\/li>\r\n                        <li>Hub \/ depot and route start time<\/li>\r\n                        <li>Vehicle route limits and transport mode<\/li>\r\n                        <li>Distance, duration or custom cost objective<\/li>\r\n                    <\/ul>\r\n\r\n                <\/div>\r\n\r\n\r\n                <div class=\"tr-data-card\">\r\n\r\n                    <h3>\r\n                        <span>OUT<\/span>\r\n                        Common outputs\r\n                    <\/h3>\r\n\r\n                    <ul class=\"tr-list\">\r\n                        <li>Ordered route steps and vehicle assignment<\/li>\r\n                        <li>ETA per step and cumulative travel metrics<\/li>\r\n                        <li>Total distance and travel time<\/li>\r\n                        <li>Service and waiting time<\/li>\r\n                        <li>Stops\/hour and route duration<\/li>\r\n                        <li>Unassigned order IDs where applicable<\/li>\r\n                        <li>Route geometry and walking-group IDs<\/li>\r\n                    <\/ul>\r\n\r\n                <\/div>\r\n\r\n            <\/div>\r\n\r\n\r\n            <div class=\"tr-feedback\">\r\n\r\n                <div class=\"tr-feedback-icon\">\r\n                    \u21bb\r\n                <\/div>\r\n\r\n                <div>\r\n                    <h3>\r\n                        Optional feedback loop\r\n                    <\/h3>\r\n\r\n                    <p>\r\n                        Operational execution results can optionally be\r\n                        returned to TrendRoute for analytics, performance\r\n                        monitoring and \u2014 when enabled by the customer \u2014\r\n                        further improvement of ETA models, clustering,\r\n                        map intelligence and optimisation behaviour.\r\n                    <\/p>\r\n                <\/div>\r\n\r\n            <\/div>\r\n\r\n        <\/div>\r\n\r\n    <\/section>\r\n\r\n\r\n    <!-- ====================================================\r\n         WORKFLOW\r\n    ===================================================== -->\r\n    <section class=\"tr-section tr-section-dark\">\r\n\r\n        <div class=\"tr-container\">\r\n\r\n            <div class=\"tr-heading\">\r\n\r\n                <div class=\"tr-eyebrow\">\r\n                    Implementation\r\n                <\/div>\r\n\r\n                <h2>\r\n                    Integration workflow\r\n                <\/h2>\r\n\r\n                <p>\r\n                    A straightforward five-step implementation path from\r\n                    authentication to live operations and optional feedback.\r\n                <\/p>\r\n\r\n            <\/div>\r\n\r\n\r\n            <div class=\"tr-workflow\">\r\n\r\n                <div class=\"tr-step\">\r\n\r\n                    <div class=\"tr-step-number\">1<\/div>\r\n\r\n                    <h3>Authenticate<\/h3>\r\n\r\n                    <p>\r\n                        Store the TrendRoute API key securely and\r\n                        send it as <strong>X-API-Key<\/strong>.\r\n                    <\/p>\r\n\r\n                <\/div>\r\n\r\n\r\n                <div class=\"tr-step\">\r\n\r\n                    <div class=\"tr-step-number\">2<\/div>\r\n\r\n                    <h3>Map data<\/h3>\r\n\r\n                    <p>\r\n                        Translate your orders, vehicles, routes\r\n                        and constraints into the request schema.\r\n                    <\/p>\r\n\r\n                <\/div>\r\n\r\n\r\n                <div class=\"tr-step\">\r\n\r\n                    <div class=\"tr-step-number\">3<\/div>\r\n\r\n                    <h3>Call API<\/h3>\r\n\r\n                    <p>\r\n                        Choose optimisation, route extension,\r\n                        recalculation \/ ETA or geospatial services.\r\n                    <\/p>\r\n\r\n                <\/div>\r\n\r\n\r\n                <div class=\"tr-step\">\r\n\r\n                    <div class=\"tr-step-number\">4<\/div>\r\n\r\n                    <h3>Consume result<\/h3>\r\n\r\n                    <p>\r\n                        Persist route IDs, stop order, ETAs,\r\n                        assignments and KPIs in your platform.\r\n                    <\/p>\r\n\r\n                <\/div>\r\n\r\n\r\n                <div class=\"tr-step\">\r\n\r\n                    <div class=\"tr-step-number\">5<\/div>\r\n\r\n                    <h3>Operate & feedback<\/h3>\r\n\r\n                    <p>\r\n                        Publish routes and optionally return execution\r\n                        results for analytics and improvement.\r\n                    <\/p>\r\n\r\n                <\/div>\r\n\r\n            <\/div>\r\n\r\n        <\/div>\r\n\r\n    <\/section>\r\n\r\n\r\n    <!-- ====================================================\r\n         CODE EXAMPLE\r\n    ===================================================== -->\r\n    <section class=\"tr-section\">\r\n\r\n        <div class=\"tr-container\">\r\n\r\n            <div class=\"tr-heading\">\r\n\r\n                <div class=\"tr-eyebrow\">\r\n                    Quick start\r\n                <\/div>\r\n\r\n                <h2>\r\n                    Minimal single-route example\r\n                <\/h2>\r\n\r\n                <p>\r\n                    A compact example showing the basic structure\r\n                    of a single-route optimisation request.\r\n                <\/p>\r\n\r\n            <\/div>\r\n\r\n\r\n            <div class=\"tr-code-shell\">\r\n\r\n                <div class=\"tr-code-header\">\r\n\r\n                    <div class=\"tr-code-language\">\r\n                        POST request \u00b7 JSON\r\n                    <\/div>\r\n\r\n                    <div>\r\n                        TrendRoute API\r\n                    <\/div>\r\n\r\n                <\/div>\r\n\r\n<pre><code>POST \/api\/v1\/route-optimization\/\r\nX-API-Key: &lt;your-api-key&gt;\r\nContent-Type: application\/json\r\n\r\n{\r\n  \"region_id\": \"stockholm\",\r\n\r\n  \"orders\": [\r\n    {\r\n      \"id\": \"o-101\",\r\n      \"stop_id\": 1,\r\n      \"latitude\": 59.33,\r\n      \"longitude\": 18.08,\r\n      \"service_time\": 120\r\n    },\r\n    {\r\n      \"id\": \"o-102\",\r\n      \"stop_id\": 2,\r\n      \"latitude\": 59.31,\r\n      \"longitude\": 18.06,\r\n      \"service_time\": 120\r\n    }\r\n  ],\r\n\r\n  \"hub\": {\r\n    \"id\": \"hub-1\",\r\n    \"latitude\": 59.31,\r\n    \"longitude\": 18.09\r\n  },\r\n\r\n  \"vehicle\": {\r\n    \"id\": \"van-12\",\r\n    \"transport_mode\": \"car\"\r\n  },\r\n\r\n  \"optimization_criteria\": \"duration\"\r\n}<\/code><\/pre>\r\n\r\n            <\/div>\r\n\r\n\r\n            <p class=\"tr-code-description\">\r\n                A successful optimisation response returns the route,\r\n                any unassigned order IDs, aggregate summary metrics and\r\n                execution time. Route steps can include ETAs,\r\n                cumulative time and distance, service or waiting time,\r\n                vehicle load and walking-group metadata.\r\n            <\/p>\r\n\r\n        <\/div>\r\n\r\n    <\/section>\r\n\r\n\r\n    <!-- ====================================================\r\n         CHECKLIST\r\n    ===================================================== -->\r\n    <section class=\"tr-section tr-section-soft\">\r\n\r\n        <div class=\"tr-container\">\r\n\r\n            <div class=\"tr-heading\">\r\n\r\n                <div class=\"tr-eyebrow\">\r\n                    Technical evaluation\r\n                <\/div>\r\n\r\n                <h2>\r\n                    Integration complexity checklist\r\n                <\/h2>\r\n\r\n                <p>\r\n                    Validate the following areas before moving from\r\n                    technical evaluation into implementation.\r\n                <\/p>\r\n\r\n            <\/div>\r\n\r\n\r\n            <div class=\"tr-checklist\">\r\n\r\n                <div class=\"tr-check-item\">\r\n\r\n                    <div class=\"tr-check-icon\">01<\/div>\r\n\r\n                    <div>\r\n                        <h3>Location data<\/h3>\r\n\r\n                        <p>\r\n                            Can you supply stable IDs plus coordinates\r\n                            or addresses?\r\n                        <\/p>\r\n\r\n                        <div class=\"tr-check-answer\">\r\n                            Coordinate and address-based inputs are supported\r\n                            where applicable.\r\n                        <\/div>\r\n                    <\/div>\r\n\r\n                <\/div>\r\n\r\n\r\n                <div class=\"tr-check-item\">\r\n\r\n                    <div class=\"tr-check-icon\">02<\/div>\r\n\r\n                    <div>\r\n                        <h3>Constraints<\/h3>\r\n\r\n                        <p>\r\n                            Which time windows, capacities, route limits\r\n                            and cost objectives must be preserved?\r\n                        <\/p>\r\n\r\n                        <div class=\"tr-check-answer\">\r\n                            Core schemas expose service time, capacities,\r\n                            route limits and custom cost.\r\n                        <\/div>\r\n                    <\/div>\r\n\r\n                <\/div>\r\n\r\n\r\n                <div class=\"tr-check-item\">\r\n\r\n                    <div class=\"tr-check-icon\">03<\/div>\r\n\r\n                    <div>\r\n                        <h3>Existing route model<\/h3>\r\n\r\n                        <p>\r\n                            Do you already store ordered static routes\r\n                            and assigned vehicles?\r\n                        <\/p>\r\n\r\n                        <div class=\"tr-check-answer\">\r\n                            Route Extension accepts existing routes\r\n                            and candidate orders.\r\n                        <\/div>\r\n                    <\/div>\r\n\r\n                <\/div>\r\n\r\n\r\n                <div class=\"tr-check-item\">\r\n\r\n                    <div class=\"tr-check-icon\">04<\/div>\r\n\r\n                    <div>\r\n                        <h3>ETA workflow<\/h3>\r\n\r\n                        <p>\r\n                            Do you need planning-time ETA without changing\r\n                            the route sequence?\r\n                        <\/p>\r\n\r\n                        <div class=\"tr-check-answer\">\r\n                            Route Recalculation preserves sequence while\r\n                            recalculating ETAs and KPIs.\r\n                        <\/div>\r\n                    <\/div>\r\n\r\n                <\/div>\r\n\r\n\r\n                <div class=\"tr-check-item\">\r\n\r\n                    <div class=\"tr-check-icon\">05<\/div>\r\n\r\n                    <div>\r\n                        <h3>Downstream mapping<\/h3>\r\n\r\n                        <p>\r\n                            Can your dispatch or driver app consume route\r\n                            steps, assignments and ETAs?\r\n                        <\/p>\r\n\r\n                        <div class=\"tr-check-answer\">\r\n                            Responses use caller-visible IDs and structured\r\n                            route and step objects.\r\n                        <\/div>\r\n                    <\/div>\r\n\r\n                <\/div>\r\n\r\n\r\n                <div class=\"tr-check-item\">\r\n\r\n                    <div class=\"tr-check-icon\">06<\/div>\r\n\r\n                    <div>\r\n                        <h3>Optional feedback loop<\/h3>\r\n\r\n                        <p>\r\n                            Do you want to return execution outcomes\r\n                            after routes are operated?\r\n                        <\/p>\r\n\r\n                        <div class=\"tr-check-answer\">\r\n                            Optional feedback APIs support analytics and\r\n                            continuous improvement.\r\n                        <\/div>\r\n                    <\/div>\r\n\r\n                <\/div>\r\n\r\n\r\n                <div class=\"tr-check-item\">\r\n\r\n                    <div class=\"tr-check-icon\">07<\/div>\r\n\r\n                    <div>\r\n                        <h3>Security & errors<\/h3>\r\n\r\n                        <p>\r\n                            How will credentials, retries and validation\r\n                            errors be handled?\r\n                        <\/p>\r\n\r\n                        <div class=\"tr-check-answer\">\r\n                            Authentication uses X-API-Key and schema\r\n                            validation errors return HTTP 422.\r\n                        <\/div>\r\n                    <\/div>\r\n\r\n                <\/div>\r\n\r\n            <\/div>\r\n\r\n        <\/div>\r\n\r\n    <\/section>\r\n\r\n\r\n    <!-- ====================================================\r\n         FINAL CTA\r\n    ===================================================== -->\r\n    <section class=\"tr-final\">\r\n\r\n        <div class=\"tr-container\">\r\n\r\n            <div class=\"tr-final-box\">\r\n\r\n                <div class=\"tr-final-content\">\r\n\r\n                    <div class=\"tr-hero-badge\">\r\n                        Try before you integrate\r\n                    <\/div>\r\n\r\n                    <h2>\r\n                        Test your logistics scenarios before writing integration code.\r\n                    <\/h2>\r\n\r\n                    <p>\r\n                        Use the TrendRoute Sandbox to build scenarios,\r\n                        inspect routes visually and evaluate how the API\r\n                        fits into your existing logistics platform.\r\n                    <\/p>\r\n\r\n                    <div class=\"tr-actions\">\r\n\r\n                        <a href=\"https:\/\/trendroute.ai\/route-optimisation-sandbox\"\r\n                           class=\"tr-button tr-button-primary\">\r\n                            Open TrendRoute Sandbox \u2192\r\n                        <\/a>\r\n\r\n                       \r\n\r\n                    <\/div>\r\n\r\n                <\/div>\r\n\r\n            <\/div>\r\n\r\n        <\/div>\r\n\r\n    <\/section>\r\n\r\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3cd424c e-flex e-con-boxed e-con e-parent\" data-id=\"3cd424c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d39d478 elementor-widget elementor-widget-shortcode\" data-id=\"d39d478\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">        <div id=\"tpgp-9472208\" class=\"tpgp-wrap\" data-pdf-id=\"2\" data-pdf-label=\"PDF 2\">\n            <button type=\"button\" class=\"tpgp-open\">Download PDF<\/button>\n\n            <div class=\"tpgp-modal\" aria-hidden=\"true\">\n                <div class=\"tpgp-backdrop\"><\/div>\n                <div class=\"tpgp-dialog\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"tpgp-9472208-title\">\n                    <button type=\"button\" class=\"tpgp-close\" aria-label=\"Close\">&times;<\/button>\n                    <h3 id=\"tpgp-9472208-title\">Get the PDF<\/h3>\n                    <form class=\"tpgp-form\" novalidate>\n                        <input type=\"hidden\" name=\"action\" value=\"trendplus_gated_pdf_submit\">\n                        <input type=\"hidden\" name=\"nonce\" value=\"685da5e841\">\n                        <input type=\"hidden\" name=\"pdf_id\" value=\"2\">\n                        <input type=\"hidden\" name=\"page_url\" value=\"https:\/\/trendroute.ai\/en\/wp-json\/wp\/v2\/pages\/868\">\n                        <div class=\"tpgp-hp\" aria-hidden=\"true\"><label>Website<input type=\"text\" name=\"website\" tabindex=\"-1\" autocomplete=\"off\"><\/label><\/div>\n\n                        <label>\n                            <span>Work email<\/span>\n                            <input type=\"email\" name=\"email\" autocomplete=\"email\" required>\n                        <\/label>\n\n                        <label>\n                            <span>Company name<\/span>\n                            <input type=\"text\" name=\"company\" autocomplete=\"organization\" required maxlength=\"190\">\n                        <\/label>\n\n                        <button type=\"submit\" class=\"tpgp-submit\">Download PDF<\/button>\n                        <p class=\"tpgp-privacy\">We\u2019ll use your details to provide the requested resource. See our Privacy Policy for more information.<\/p>\n                        <div class=\"tpgp-message\" role=\"status\" aria-live=\"polite\"><\/div>\n                    <\/form>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <style>\n            #tpgp-9472208 .tpgp-open,\n            #tpgp-9472208 .tpgp-submit{appearance:none;border:0;border-radius:8px;padding:13px 20px;cursor:pointer;font:inherit;font-weight:600;background:#111;color:#fff;line-height:1.2}\n            #tpgp-9472208 .tpgp-open:hover,\n            #tpgp-9472208 .tpgp-submit:hover{opacity:.88}\n            #tpgp-9472208 .tpgp-modal{display:none;position:fixed;inset:0;z-index:999999}\n            #tpgp-9472208 .tpgp-modal.is-open{display:block}\n            #tpgp-9472208 .tpgp-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.58)}\n            #tpgp-9472208 .tpgp-dialog{position:relative;z-index:2;width:min(92vw,480px);margin:10vh auto;background:#fff;color:#111;border-radius:14px;padding:28px;box-shadow:0 24px 80px rgba(0,0,0,.25)}\n            #tpgp-9472208 .tpgp-dialog h3{margin:0 34px 20px 0;font-size:26px;line-height:1.2}\n            #tpgp-9472208 .tpgp-close{position:absolute;right:14px;top:10px;border:0;background:transparent;font-size:32px;line-height:1;cursor:pointer;color:#555}\n            #tpgp-9472208 .tpgp-form label{display:block;margin:0 0 14px;font-weight:600}\n            #tpgp-9472208 .tpgp-hp{position:absolute!important;left:-99999px!important;width:1px!important;height:1px!important;overflow:hidden!important}\n            #tpgp-9472208 .tpgp-form label span{display:block;margin-bottom:7px}\n            #tpgp-9472208 .tpgp-form input{width:100%;box-sizing:border-box;border:1px solid #d7d7d7;border-radius:8px;padding:12px 13px;font:inherit;background:#fff;color:#111}\n            #tpgp-9472208 .tpgp-submit{width:100%;margin-top:4px}\n            #tpgp-9472208 .tpgp-submit[disabled]{opacity:.55;cursor:wait}\n            #tpgp-9472208 .tpgp-privacy{font-size:12px;line-height:1.45;color:#666;margin:12px 0 0}\n            #tpgp-9472208 .tpgp-message{font-size:14px;margin-top:10px}\n            @media (max-width:600px){#tpgp-9472208 .tpgp-dialog{margin:6vh auto;padding:22px}}\n        <\/style>\n\n        <script>\n        (function(){\n            var root = document.getElementById(\"tpgp-9472208\");\n            if(!root) return;\n            var modal = root.querySelector('.tpgp-modal');\n            var openBtn = root.querySelector('.tpgp-open');\n            var closeBtn = root.querySelector('.tpgp-close');\n            var backdrop = root.querySelector('.tpgp-backdrop');\n            var form = root.querySelector('.tpgp-form');\n            var submitBtn = root.querySelector('.tpgp-submit');\n            var msg = root.querySelector('.tpgp-message');\n            var ajaxUrl = \"https:\\\/\\\/trendroute.ai\\\/wp-admin\\\/admin-ajax.php\";\n\n            function ga(name){\n                if(typeof window.gtag === 'function'){\n                    window.gtag('event', name, {\n                        pdf_id: root.getAttribute('data-pdf-id'),\n                        pdf_label: root.getAttribute('data-pdf-label')\n                    });\n                }\n            }\n            function openModal(){\n                modal.classList.add('is-open');\n                modal.setAttribute('aria-hidden','false');\n                document.documentElement.style.overflow='hidden';\n                ga('pdf_form_open');\n                setTimeout(function(){ var e=form.querySelector('input[name=\"email\"]'); if(e) e.focus(); }, 30);\n            }\n            function closeModal(){\n                modal.classList.remove('is-open');\n                modal.setAttribute('aria-hidden','true');\n                document.documentElement.style.overflow='';\n            }\n            openBtn.addEventListener('click', openModal);\n            closeBtn.addEventListener('click', closeModal);\n            backdrop.addEventListener('click', closeModal);\n            document.addEventListener('keydown', function(e){ if(e.key === 'Escape' && modal.classList.contains('is-open')) closeModal(); });\n\n            form.addEventListener('submit', function(e){\n                e.preventDefault();\n                msg.textContent = '';\n                if(!form.checkValidity()){\n                    form.reportValidity();\n                    return;\n                }\n                submitBtn.disabled = true;\n                submitBtn.textContent = 'Preparing\u2026';\n\n                fetch(ajaxUrl, {\n                    method: 'POST',\n                    credentials: 'same-origin',\n                    headers: {'Content-Type':'application\/x-www-form-urlencoded; charset=UTF-8'},\n                    body: new URLSearchParams(new FormData(form)).toString()\n                })\n                .then(function(r){ return r.json(); })\n                .then(function(data){\n                    if(!data || !data.success || !data.data || !data.data.download_url){\n                        throw new Error(data && data.data && data.data.message ? data.data.message : 'Could not prepare the download.');\n                    }\n                    ga('pdf_form_submit');\n                    ga('pdf_download');\n                    msg.textContent = 'Your download is starting\u2026';\n                    window.location.href = data.data.download_url;\n                    setTimeout(closeModal, 900);\n                })\n                .catch(function(err){\n                    msg.textContent = err.message || 'Something went wrong. Please try again.';\n                })\n                .finally(function(){\n                    submitBtn.disabled = false;\n                    submitBtn.textContent = 'Download PDF';\n                });\n            });\n        })();\n        <\/script>\n        <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>TrendRoute.ai API &#038; Integration TrendRoute API Documentation Overview. Meta description: Route Optimization &#038; ETA REST APIs. Integrate route optimization, ETA calculation, and geospatial APIs into your logistics platform. REST\/JSON APIs with API-key auth, explore endpoints and quick-start examples. Explore the Sandbox \u2192 TrendRoute API POST \/api\/v1\/route-optimization\/ X-API-Key: &lt;your-api-key&gt; { &nbsp;&nbsp;&#8221;region_id&#8221;: &#8221;stockholm&#8221;, &nbsp;&nbsp;&#8221;orders&#8221;: [&#8230;] &nbsp;&nbsp;&#8221;vehicle&#8221;: &#8221;van-12&#8221;, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-868","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>TrendRoute API Documentation | Route Optimizatio<\/title>\n<meta name=\"description\" content=\"Meta description: Integrate route optimization, ETA recalculation, and geospatial APIs into your logistics platform.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/trendroute.ai\/en\/api-documentation\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"TrendRoute API Documentation | Route Optimizatio\" \/>\n<meta property=\"og:description\" content=\"Meta description: Integrate route optimization, ETA recalculation, and geospatial APIs into your logistics platform.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/trendroute.ai\/en\/api-documentation\/\" \/>\n<meta property=\"og:site_name\" content=\"TrendRoute\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-18T08:41:44+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/trendroute.ai\/wp-content\/uploads\/2025\/02\/Untitled-design-56.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1120\" \/>\n\t<meta property=\"og:image:height\" content=\"1120\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/trendroute.ai\\\/api-documentation\\\/\",\"url\":\"https:\\\/\\\/trendroute.ai\\\/api-documentation\\\/\",\"name\":\"TrendRoute API Documentation | Route Optimizatio\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/trendroute.ai\\\/#website\"},\"datePublished\":\"2026-08-10T13:17:03+00:00\",\"dateModified\":\"2026-08-18T08:41:44+00:00\",\"description\":\"Meta description: Integrate route optimization, ETA recalculation, and geospatial APIs into your logistics platform.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/trendroute.ai\\\/api-documentation\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/trendroute.ai\\\/api-documentation\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/trendroute.ai\\\/api-documentation\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/trendroute.ai\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"API Documentation\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/trendroute.ai\\\/#website\",\"url\":\"https:\\\/\\\/trendroute.ai\\\/\",\"name\":\"TrendRoute\",\"description\":\"AI Route Optimization API for Last-Mile Delivery | TrendRoute\",\"publisher\":{\"@id\":\"https:\\\/\\\/trendroute.ai\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/trendroute.ai\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/trendroute.ai\\\/#organization\",\"name\":\"TrendRoute\",\"url\":\"https:\\\/\\\/trendroute.ai\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/trendroute.ai\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/trendroute.ai\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/Untitled-design-56.png\",\"contentUrl\":\"https:\\\/\\\/trendroute.ai\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/Untitled-design-56.png\",\"width\":1120,\"height\":1120,\"caption\":\"TrendRoute\"},\"image\":{\"@id\":\"https:\\\/\\\/trendroute.ai\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"TrendRoute API Documentation | Route Optimizatio","description":"Meta description: Integrate route optimization, ETA recalculation, and geospatial APIs into your logistics platform.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/trendroute.ai\/en\/api-documentation\/","og_locale":"en_US","og_type":"article","og_title":"TrendRoute API Documentation | Route Optimizatio","og_description":"Meta description: Integrate route optimization, ETA recalculation, and geospatial APIs into your logistics platform.","og_url":"https:\/\/trendroute.ai\/en\/api-documentation\/","og_site_name":"TrendRoute","article_modified_time":"2026-08-18T08:41:44+00:00","og_image":[{"width":1120,"height":1120,"url":"https:\/\/trendroute.ai\/wp-content\/uploads\/2025\/02\/Untitled-design-56.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/trendroute.ai\/api-documentation\/","url":"https:\/\/trendroute.ai\/api-documentation\/","name":"TrendRoute API Documentation | Route Optimizatio","isPartOf":{"@id":"https:\/\/trendroute.ai\/#website"},"datePublished":"2026-08-10T13:17:03+00:00","dateModified":"2026-08-18T08:41:44+00:00","description":"Meta description: Integrate route optimization, ETA recalculation, and geospatial APIs into your logistics platform.","breadcrumb":{"@id":"https:\/\/trendroute.ai\/api-documentation\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/trendroute.ai\/api-documentation\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/trendroute.ai\/api-documentation\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/trendroute.ai\/"},{"@type":"ListItem","position":2,"name":"API Documentation"}]},{"@type":"WebSite","@id":"https:\/\/trendroute.ai\/#website","url":"https:\/\/trendroute.ai\/","name":"TrendRoute","description":"AI Route Optimization API for Last-Mile Delivery | TrendRoute","publisher":{"@id":"https:\/\/trendroute.ai\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/trendroute.ai\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/trendroute.ai\/#organization","name":"TrendRoute","url":"https:\/\/trendroute.ai\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/trendroute.ai\/#\/schema\/logo\/image\/","url":"https:\/\/trendroute.ai\/wp-content\/uploads\/2025\/02\/Untitled-design-56.png","contentUrl":"https:\/\/trendroute.ai\/wp-content\/uploads\/2025\/02\/Untitled-design-56.png","width":1120,"height":1120,"caption":"TrendRoute"},"image":{"@id":"https:\/\/trendroute.ai\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/trendroute.ai\/en\/wp-json\/wp\/v2\/pages\/868","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/trendroute.ai\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/trendroute.ai\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/trendroute.ai\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/trendroute.ai\/en\/wp-json\/wp\/v2\/comments?post=868"}],"version-history":[{"count":16,"href":"https:\/\/trendroute.ai\/en\/wp-json\/wp\/v2\/pages\/868\/revisions"}],"predecessor-version":[{"id":972,"href":"https:\/\/trendroute.ai\/en\/wp-json\/wp\/v2\/pages\/868\/revisions\/972"}],"wp:attachment":[{"href":"https:\/\/trendroute.ai\/en\/wp-json\/wp\/v2\/media?parent=868"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}