[{"data":1,"prerenderedAt":1024},["ShallowReactive",2],{"/blog/guide-to-rest-api":3,"navigation-en-us":239,"banner-en-us":665,"footer-en-us":675,"blog-post-authors-en-us-GitLab":919,"blog-related-posts-en-us-guide-to-rest-api":934,"blog-promotions-en-us":960,"next-steps-en-us":1014},{"id":4,"title":5,"authors":6,"body":8,"category":218,"date":219,"description":220,"extension":221,"externalUrl":222,"faq":222,"featured":223,"heroImage":224,"meta":225,"navigation":226,"path":227,"seo":228,"slug":232,"stem":233,"tags":234,"template":237,"updatedDate":222,"__hash__":238},"blogPosts/en-us/blog/guide-to-rest-api.md","Guide to REST API",[7],"GitLab",{"type":9,"value":10,"toc":200},"minimark",[11,15,20,23,33,36,40,43,46,49,68,71,75,78,81,98,102,105,119,122,126,129,132,136,139,142,146,155,159,164,167,171,174,178,181,185],[12,13,14],"p",{},"Whether it's developing an online booking app, a mobile payment solution, or a messaging service, chances are your team is using a REST API. In this article, you'll learn what a REST API is and how it works, as well as its benefits and uses.",[16,17,19],"h2",{"id":18},"what-is-a-rest-api","What is a REST API?",[12,21,22],{},"REST API, RESTful API, or RESTful web API: These names designate APIs that adhere to a particular standard, which is the REST architecture. Before going any further, remember that an API, or application programming interface, is software that allows two applications to communicate with each other. In computing, APIs are essential to allow various applications to work together.",[12,24,25,26,32],{},"To create an API, developers follow strictly defined methods and principles, so that the whole can work. Before the 2000s, developers used ",[27,28,31],"a",{"href":29,"rel":30},"https://www.techtarget.com/searchapparchitecture/definition/SOAP-Simple-Object-Access-Protocol",[],"SOAP"," (Simple Object Access Protocol), a protocol built on XML (Extensible Markup Language), which was complex to coordinate and resource-intensive. While SOAP is still used today, it has been largely replaced by REST API.",[12,34,35],{},"Designed in 2000 by American computer scientist Roy Fielding during his doctoral thesis, REST (REpresentational State Transfer) has become the dominant model for creating APIs, and an essential milestone in the development of the World Wide Web. Today, the vast majority of APIs are based on REST, particularly to offer web, interactive, or mobile services. Let's find out how RESTful APIs work, their advantages, and their wide-ranging applications.",[16,37,39],{"id":38},"how-does-a-rest-api-work","How does a REST API work?",[12,41,42],{},"In practice, the REST API works on the principle of the client-server environment. The RESTful API retrieves and transmits a user's or application's requests on one end and the information rendered by the server (application or database) on the other end.",[12,44,45],{},"Some key concepts make it possible to understand how a RESTful API works. The client is the entity making a request. This is the case, for example, of a user searching within a product catalog on their browser. The API is responsible for communicating the request to the server, and returning the requested information to the client. The information that passes through the API is the resources. The server processes requests. In this case, it will return the list of products matching the search criteria.",[12,47,48],{},"The client's requests are made through the HTTP (Hypertext Transfer Protocol) protocol. Here are the main methods and tasks it enables you to accomplish:",[50,51,52,56,59,62,65],"ul",{},[53,54,55],"li",{},"GET: retrieve data sent by the server.",[53,57,58],{},"POST: send and publish information to the server (registration form data, for example).",[53,60,61],{},"PUT: update the server information.",[53,63,64],{},"PATCH: partially modify an existing resource.",[53,66,67],{},"DELETE: delete information from the server.",[12,69,70],{},"There are various data formats for using a REST API. The JSON (JavaScript Object Notation) format is a lightweight format, which is easy to understand and usable by many programming languages. XML makes it possible to manage complex data structures and is compatible with other standards such as RSS. YAML and HTML are other formats often used to communicate resources.",[16,72,74],{"id":73},"what-are-the-principles-of-the-rest-api","What are the principles of the REST API?",[12,76,77],{},"A REST API follows the REST principles regarding software architecture. These principles create a guideline for creating flexible and lightweight APIs, which are perfectly adapted to data transmission over the internet.",[12,79,80],{},"Here are the six architectural principles that govern a REST interface:",[50,82,83,86,89,92,95],{},[53,84,85],{},"Client-server decoupling. The client only knows the URI (Uniform Resource Identifier) of the resource to be retrieved. The server interacts only by transmitting its data via HTTP.",[53,87,88],{},"Uniform interface. The REST architecture standardizes how information is identified, managed, and transmitted, and uses hyperlinks to bring additional resources to the client.\nCode on demand. The server can transmit code to the client to expand its functionality, such as to help identify errors in a form.",[53,90,91],{},"Layered system. A RESTful API can run on several servers organized hierarchically, to provide a more stable and efficient service to the client.",[53,93,94],{},"Cacheable. The REST server can cache data to better serve the client, for example by storing the images of a site to then serve them again.",[53,96,97],{},"Stateless. Each client request is stand-alone and processed independently by the server. Therefore, each request must contain all the elements necessary for its processing.",[16,99,101],{"id":100},"what-are-the-benefits-of-a-rest-api","What are the benefits of a REST API?",[12,103,104],{},"By following the REST API framework requirements, developers make use of the many advantages of the RESTful API to develop effective and powerful applications:",[50,106,107,110,113,116],{},[53,108,109],{},"Versatility: There are no restrictions on which programming language to use, and there is a wide selection of data formats (XML, PYTHON, JSON, HTML, etc.).",[53,111,112],{},"Lightweight: The lightweight data formats of a REST API make it ideal for mobile applications or the Internet of Things (IoT).",[53,114,115],{},"Portability: Client-server separation enables the exchange of data between platforms.\nFlexibility: This API does not have the complexities of a protocol since it is an architectural style.",[53,117,118],{},"Independence: Developers can work separately on the client or server part.",[12,120,121],{},"The benefits of the REST API translate into increased productivity and scalability for development teams. Scaling systems using REST API is easier. The features are therefore better able to support a large load of users and operations.",[16,123,125],{"id":124},"security-constraints","Security constraints",[12,127,128],{},"Creating and managing a RESTful web API is not without challenges. User authentication can become complex when it uses several different methods, by HTTP, API keys, or OAuth (Open Authorization). On large and complex applications, the multiplication of endpoints between the server and the client can impair overall consistency, as can updates if they leave old touchpoints still active.",[12,130,131],{},"Additionally, the REST interface has a weakness because it transmits potentially sensitive data, such as identifiers, through the endpoint URL. Securing it requires specific measures such as Transport Layer Security (TLS) encryption, a robust user authentication model, and a system for managing malicious requests and limiting throughput.",[16,133,135],{"id":134},"uses-of-a-rest-api","Uses of a REST API",[12,137,138],{},"Developers use APIs with the REST architecture to create and maintain many services. Therefore, most web and mobile applications use REST APIs to access and share resources and information. In the cloud, this API makes it possible to connect the services of distributed and hybrid architectures quickly. Within large companies, it enables interoperability between information system components.",[12,140,141],{},"Refreshing an e-commerce site's prices, automating publications, orchestrating Kubernetes clusters, etc. The RESTful APIs' scope of use is limited only by the imagination of digital application developers and creators.",[16,143,145],{"id":144},"the-gitlab-rest-api","The GitLab REST API",[12,147,148,149,154],{},"GitLab offers a comprehensive suite of tools and APIs for integrating and automating external applications. It includes GraphQL, webhooks, IDE extensions, and of course, a REST API. The GitLab REST API can be authenticated in many ways, such as by access token, OAuth, or session cookies. Endpoints are available for Dockerfile, .gitignore, GitLab CI/CD YAML, and open source templates. To take full advantage of all the possibilities for developing your agile and cloud-native applications, see the complete ",[27,150,153],{"href":151,"rel":152},"https://docs.gitlab.com/api/rest/",[],"GitLab REST API documentation",".",[16,156,158],{"id":157},"rest-api-faqs","REST API FAQs",[160,161,163],"h3",{"id":162},"rest-vs-soap","REST vs. SOAP",[12,165,166],{},"REST and SOAP are two API standards. REST (REpresentational State Transfer) API uses the REST architectural principles, which allow a server and a client to communicate in a lightweight and scalable way. The REST API is the most common type of API. The SOAP (Simple Object Access Protocol) protocol is older, more rigid, and only available in XML format. This old standard can still be used for applications that require a high level of security.",[160,168,170],{"id":169},"what-is-the-difference-between-rest-and-rest-api","What is the difference between REST and REST API?",[12,172,173],{},"REST is a style of software architecture intended to facilitate the creation of web services and the exchange of data over the internet, by ensuring interoperability between computers and servers. The RESTful web API is a type of API that is based on the main principles of REST.",[160,175,177],{"id":176},"what-are-the-principles-of-a-rest-api","What are the principles of a REST API?",[12,179,180],{},"A REST API follows the six main principles of the REST architecture. These principles are uniform interface, code on demand, layered system, cacheable, stateless, and client-server decoupling. The latter principle forms the basis of the structure of a RESTful API; it is essential to the success of this API in the world of web applications.",[16,182,184],{"id":183},"learn-more","Learn more",[50,186,187,193],{},[53,188,189],{},[27,190,192],{"href":151,"rel":191},[],"GitLab Rest API documentation",[53,194,195],{},[27,196,199],{"href":197,"rel":198},"https://docs.gitlab.com/api/",[],"Extend with GitLab",{"title":201,"searchDepth":202,"depth":202,"links":203},"",2,[204,205,206,207,208,209,210,211,217],{"id":18,"depth":202,"text":19},{"id":38,"depth":202,"text":39},{"id":73,"depth":202,"text":74},{"id":100,"depth":202,"text":101},{"id":124,"depth":202,"text":125},{"id":134,"depth":202,"text":135},{"id":144,"depth":202,"text":145},{"id":157,"depth":202,"text":158,"children":212},[213,215,216],{"id":162,"depth":214,"text":163},3,{"id":169,"depth":214,"text":170},{"id":176,"depth":214,"text":177},{"id":183,"depth":202,"text":184},"engineering","2024-10-18","Learn what REST API is, how it works, and what its benefit is in software development. Also find out the underlying principles of this important technology.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098516/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945_2N8JxZDeeDLlzrsJ4boteB_1750098516673.png",{},true,"/en-us/blog/guide-to-rest-api",{"title":5,"description":220,"ogTitle":5,"ogDescription":220,"noIndex":223,"ogImage":224,"ogUrl":229,"ogSiteName":230,"ogType":231,"canonicalUrls":229},"https://about.gitlab.com/blog/guide-to-rest-api","https://about.gitlab.com","article","guide-to-rest-api","en-us/blog/guide-to-rest-api",[235,236],"integrations","DevOps","BlogPost","ZKSRK6IRJJjJHERfSCExmj2V-NGOPqkgi4lct0H9NAQ",{"logo":240,"freeTrial":245,"sales":250,"login":255,"items":260,"search":585,"minimal":616,"duo":635,"switchNav":644,"pricingDeployment":655},{"config":241},{"href":242,"dataGaName":243,"dataGaLocation":244},"/","gitlab logo","header",{"text":246,"config":247},"Get free trial",{"href":248,"dataGaName":249,"dataGaLocation":244},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":251,"config":252},"Request a demo",{"href":253,"dataGaName":254,"dataGaLocation":244},"/sales/?contact-topic=request-demo","sales",{"text":256,"config":257},"Sign in",{"href":258,"dataGaName":259,"dataGaLocation":244},"https://gitlab.com/users/sign_in/","sign in",[261,289,389,394,507,563],{"text":262,"config":263,"menu":265},"Platform",{"dataNavLevelOne":264},"platform",{"type":266,"columns":267},"cards",[268,274,282],{"title":262,"description":269,"link":270},"The intelligent orchestration platform for DevSecOps",{"text":271,"config":272},"Explore our Platform",{"href":273,"dataGaName":264,"dataGaLocation":244},"/platform/",{"title":275,"description":276,"link":277},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":278,"config":279},"Meet GitLab Duo",{"href":280,"dataGaName":281,"dataGaLocation":244},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":283,"description":284,"link":285},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":184,"config":286},{"href":287,"dataGaName":288,"dataGaLocation":244},"/why-gitlab/","why gitlab",{"text":290,"left":226,"config":291,"menu":293},"Product",{"dataNavLevelOne":292},"solutions",{"type":294,"link":295,"columns":299,"feature":368},"lists",{"text":296,"config":297},"View all Solutions",{"href":298,"dataGaName":292,"dataGaLocation":244},"/solutions/",[300,324,347],{"title":301,"description":302,"link":303,"items":308},"Automation","CI/CD and automation to accelerate deployment",{"config":304},{"icon":305,"href":306,"dataGaName":307,"dataGaLocation":244},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[309,313,316,320],{"text":310,"config":311},"CI/CD",{"href":312,"dataGaLocation":244,"dataGaName":310},"/solutions/continuous-integration/",{"text":275,"config":314},{"href":280,"dataGaLocation":244,"dataGaName":315},"gitlab duo agent platform - product menu",{"text":317,"config":318},"Source Code Management",{"href":319,"dataGaLocation":244,"dataGaName":317},"/solutions/source-code-management/",{"text":321,"config":322},"Automated Software Delivery",{"href":306,"dataGaLocation":244,"dataGaName":323},"Automated software delivery",{"title":325,"description":326,"link":327,"items":332},"Security","Deliver code faster without compromising security",{"config":328},{"href":329,"dataGaName":330,"dataGaLocation":244,"icon":331},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[333,337,342],{"text":334,"config":335},"Application Security Testing",{"href":329,"dataGaName":336,"dataGaLocation":244},"Application security testing",{"text":338,"config":339},"Software Supply Chain Security",{"href":340,"dataGaLocation":244,"dataGaName":341},"/solutions/supply-chain/","Software supply chain security",{"text":343,"config":344},"Software Compliance",{"href":345,"dataGaName":346,"dataGaLocation":244},"/solutions/software-compliance/","software compliance",{"title":348,"link":349,"items":354},"Measurement",{"config":350},{"icon":351,"href":352,"dataGaName":353,"dataGaLocation":244},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[355,359,363],{"text":356,"config":357},"Visibility & Measurement",{"href":352,"dataGaLocation":244,"dataGaName":358},"Visibility and Measurement",{"text":360,"config":361},"Value Stream Management",{"href":362,"dataGaLocation":244,"dataGaName":360},"/solutions/value-stream-management/",{"text":364,"config":365},"Analytics & Insights",{"href":366,"dataGaLocation":244,"dataGaName":367},"/solutions/analytics-and-insights/","Analytics and insights",{"title":369,"type":294,"items":370},"GitLab for",[371,377,383],{"text":372,"config":373},"Enterprise",{"icon":374,"href":375,"dataGaLocation":244,"dataGaName":376},"Building","/enterprise/","enterprise",{"text":378,"config":379},"Small Business",{"icon":380,"href":381,"dataGaLocation":244,"dataGaName":382},"Work","/small-business/","small business",{"text":384,"config":385},"Public Sector",{"icon":386,"href":387,"dataGaLocation":244,"dataGaName":388},"Organization","/solutions/public-sector/","public sector",{"text":390,"config":391},"Pricing",{"href":392,"dataGaName":393,"dataGaLocation":244,"dataNavLevelOne":393},"/pricing/","pricing",{"text":395,"config":396,"menu":398},"Resources",{"dataNavLevelOne":397},"resources",{"type":294,"link":399,"columns":403,"feature":496},{"text":400,"config":401},"View all resources",{"href":402,"dataGaName":397,"dataGaLocation":244},"/resources/",[404,436,463],{"title":405,"items":406},"Getting started",[407,412,417,422,427,432],{"text":408,"config":409},"Install",{"href":410,"dataGaName":411,"dataGaLocation":244},"/install/","install",{"text":413,"config":414},"Quick start guides",{"href":415,"dataGaName":416,"dataGaLocation":244},"/get-started/","quick setup checklists",{"text":418,"config":419},"Learn",{"href":420,"dataGaLocation":244,"dataGaName":421},"https://university.gitlab.com/","learn",{"text":423,"config":424},"Product documentation",{"href":425,"dataGaName":426,"dataGaLocation":244},"https://docs.gitlab.com/","product documentation",{"text":428,"config":429},"Best practice videos",{"href":430,"dataGaName":431,"dataGaLocation":244},"/getting-started-videos/","best practice videos",{"text":433,"config":434},"Integrations",{"href":435,"dataGaName":235,"dataGaLocation":244},"/integrations/",{"title":437,"items":438},"Discover",[439,444,449,454,458],{"text":440,"config":441},"Customer success stories",{"href":442,"dataGaName":443,"dataGaLocation":244},"/customers/","customer success stories",{"text":445,"config":446},"Blog",{"href":447,"dataGaName":448,"dataGaLocation":244},"/blog/","blog",{"text":450,"config":451},"Demo Hub",{"href":452,"dataGaName":453,"dataGaLocation":244},"/demo-hub/","demo hub",{"text":455,"config":456},"The Source",{"href":457,"dataGaName":448,"dataGaLocation":244},"/the-source/",{"text":459,"config":460},"Remote",{"href":461,"dataGaName":462,"dataGaLocation":244},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":464,"items":465},"Connect",[466,471,476,481,486,491],{"text":467,"config":468},"GitLab Services",{"href":469,"dataGaName":470,"dataGaLocation":244},"/services/","services",{"text":472,"config":473},"Contribute",{"href":474,"dataGaName":475,"dataGaLocation":244},"https://contributors.gitlab.com","contribute",{"text":477,"config":478},"Community",{"href":479,"dataGaName":480,"dataGaLocation":244},"/community/","community",{"text":482,"config":483},"Forum",{"href":484,"dataGaName":485,"dataGaLocation":244},"https://forum.gitlab.com/","forum",{"text":487,"config":488},"Events",{"href":489,"dataGaName":490,"dataGaLocation":244},"/events/","events",{"text":492,"config":493},"Partners",{"href":494,"dataGaName":495,"dataGaLocation":244},"/partners/","partners",{"config":497,"title":500,"text":501,"link":502},{"background":498,"textColor":499},"url('https://res.cloudinary.com/about-gitlab-com/image/upload/v1777322348/qpq8yrgn8knii57omj0c.png')","#000","What’s new in GitLab","Stay updated with our latest features and improvements.",{"text":503,"config":504},"Read the latest",{"href":505,"dataGaName":506,"dataGaLocation":244},"/whats-new/","whats new",{"text":508,"config":509,"menu":511},"Company",{"dataNavLevelOne":510},"company",{"type":294,"columns":512},[513],{"items":514},[515,520,526,528,533,538,543,548,553,558],{"text":516,"config":517},"About",{"href":518,"dataGaName":519,"dataGaLocation":244},"/company/","about",{"text":521,"config":522,"footerGa":525},"Jobs",{"href":523,"dataGaName":524,"dataGaLocation":244},"/jobs/","jobs",{"dataGaName":524},{"text":487,"config":527},{"href":489,"dataGaName":490,"dataGaLocation":244},{"text":529,"config":530},"Leadership",{"href":531,"dataGaName":532,"dataGaLocation":244},"/company/team/e-group/","leadership",{"text":534,"config":535},"Handbook",{"href":536,"dataGaName":537,"dataGaLocation":244},"https://handbook.gitlab.com/","handbook",{"text":539,"config":540},"Investor relations",{"href":541,"dataGaName":542,"dataGaLocation":244},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":544,"config":545},"Trust Center",{"href":546,"dataGaName":547,"dataGaLocation":244},"/security/","trust center",{"text":549,"config":550},"AI Transparency Center",{"href":551,"dataGaName":552,"dataGaLocation":244},"/ai-transparency-center/","ai transparency center",{"text":554,"config":555},"Newsletter",{"href":556,"dataGaName":557,"dataGaLocation":244},"/company/contact/#contact-forms","newsletter",{"text":559,"config":560},"Press",{"href":561,"dataGaName":562,"dataGaLocation":244},"/press/","press",{"text":564,"config":565,"menu":566},"Contact us",{"dataNavLevelOne":510},{"type":294,"columns":567},[568],{"items":569},[570,575,580],{"text":571,"config":572},"Talk to sales",{"href":573,"dataGaName":574,"dataGaLocation":244},"/sales/","talk to sales",{"text":576,"config":577},"Support portal",{"href":578,"dataGaName":579,"dataGaLocation":244},"https://support.gitlab.com/hc/en-us","support portal",{"text":581,"config":582},"Customer portal",{"href":583,"dataGaName":584,"dataGaLocation":244},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":586,"login":587,"suggestions":594},"Close",{"text":588,"link":589},"To search repositories and projects, login to",{"text":590,"config":591},"gitlab.com",{"href":258,"dataGaName":592,"dataGaLocation":593},"search login","search",{"text":595,"default":596},"Suggestions",[597,599,603,605,609,613],{"text":275,"config":598},{"href":280,"dataGaName":275,"dataGaLocation":593},{"text":600,"config":601},"Code Suggestions (AI)",{"href":602,"dataGaName":600,"dataGaLocation":593},"/solutions/code-suggestions/",{"text":310,"config":604},{"href":312,"dataGaName":310,"dataGaLocation":593},{"text":606,"config":607},"GitLab on AWS",{"href":608,"dataGaName":606,"dataGaLocation":593},"/partners/technology-partners/aws/",{"text":610,"config":611},"GitLab on Google Cloud",{"href":612,"dataGaName":610,"dataGaLocation":593},"/partners/technology-partners/google-cloud-platform/",{"text":614,"config":615},"Why GitLab?",{"href":287,"dataGaName":614,"dataGaLocation":593},{"freeTrial":617,"mobileIcon":622,"desktopIcon":627,"secondaryButton":630},{"text":618,"config":619},"Start free trial",{"href":620,"dataGaName":249,"dataGaLocation":621},"https://gitlab.com/-/trials/new/","nav",{"altText":623,"config":624},"Gitlab Icon",{"src":625,"dataGaName":626,"dataGaLocation":621},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":623,"config":628},{"src":629,"dataGaName":626,"dataGaLocation":621},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":631,"config":632},"Get Started",{"href":633,"dataGaName":634,"dataGaLocation":621},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":636,"mobileIcon":640,"desktopIcon":642},{"text":637,"config":638},"Learn more about GitLab Duo",{"href":280,"dataGaName":639,"dataGaLocation":621},"gitlab duo",{"altText":623,"config":641},{"src":625,"dataGaName":626,"dataGaLocation":621},{"altText":623,"config":643},{"src":629,"dataGaName":626,"dataGaLocation":621},{"button":645,"mobileIcon":650,"desktopIcon":652},{"text":646,"config":647},"/switch",{"href":648,"dataGaName":649,"dataGaLocation":621},"#contact","switch",{"altText":623,"config":651},{"src":625,"dataGaName":626,"dataGaLocation":621},{"altText":623,"config":653},{"src":654,"dataGaName":626,"dataGaLocation":621},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":656,"mobileIcon":661,"desktopIcon":663},{"text":657,"config":658},"Back to pricing",{"href":392,"dataGaName":659,"dataGaLocation":621,"icon":660},"back to pricing","GoBack",{"altText":623,"config":662},{"src":625,"dataGaName":626,"dataGaLocation":621},{"altText":623,"config":664},{"src":629,"dataGaName":626,"dataGaLocation":621},{"title":666,"titleMobile":667,"button":668,"config":673},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":184,"config":669},{"href":670,"dataGaName":671,"dataGaLocation":672},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":674,"disabled":223},"release",{"data":676},{"text":677,"source":678,"edit":684,"contribute":689,"config":694,"items":699,"minimal":908},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":679,"config":680},"View page source",{"href":681,"dataGaName":682,"dataGaLocation":683},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":685,"config":686},"Edit this page",{"href":687,"dataGaName":688,"dataGaLocation":683},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":690,"config":691},"Please contribute",{"href":692,"dataGaName":693,"dataGaLocation":683},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":695,"facebook":696,"youtube":697,"linkedin":698},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[700,747,800,844,876],{"title":390,"links":701,"subMenu":716},[702,706,711],{"text":703,"config":704},"View plans",{"href":392,"dataGaName":705,"dataGaLocation":683},"view plans",{"text":707,"config":708},"Why Premium?",{"href":709,"dataGaName":710,"dataGaLocation":683},"/pricing/premium/","why premium",{"text":712,"config":713},"Why Ultimate?",{"href":714,"dataGaName":715,"dataGaLocation":683},"/pricing/ultimate/","why ultimate",[717],{"title":718,"links":719},"Contact Us",[720,723,725,727,732,737,742],{"text":721,"config":722},"Contact sales",{"href":573,"dataGaName":254,"dataGaLocation":683},{"text":576,"config":724},{"href":578,"dataGaName":579,"dataGaLocation":683},{"text":581,"config":726},{"href":583,"dataGaName":584,"dataGaLocation":683},{"text":728,"config":729},"Status",{"href":730,"dataGaName":731,"dataGaLocation":683},"https://status.gitlab.com/","status",{"text":733,"config":734},"Terms of use",{"href":735,"dataGaName":736,"dataGaLocation":683},"/terms/","terms of use",{"text":738,"config":739},"Privacy statement",{"href":740,"dataGaName":741,"dataGaLocation":683},"/privacy/","privacy statement",{"text":743,"config":744},"Cookie preferences",{"dataGaName":745,"dataGaLocation":683,"id":746,"isOneTrustButton":226},"cookie preferences","ot-sdk-btn",{"title":290,"links":748,"subMenu":757},[749,753],{"text":750,"config":751},"DevSecOps platform",{"href":273,"dataGaName":752,"dataGaLocation":683},"devsecops platform",{"text":754,"config":755},"AI-Assisted Development",{"href":280,"dataGaName":756,"dataGaLocation":683},"ai-assisted development",[758],{"title":759,"links":760},"Topics",[761,766,771,775,780,785,790,795],{"text":762,"config":763},"CICD",{"href":764,"dataGaName":765,"dataGaLocation":683},"/topics/ci-cd/","cicd",{"text":767,"config":768},"GitOps",{"href":769,"dataGaName":770,"dataGaLocation":683},"/topics/gitops/","gitops",{"text":236,"config":772},{"href":773,"dataGaName":774,"dataGaLocation":683},"/topics/devops/","devops",{"text":776,"config":777},"Version Control",{"href":778,"dataGaName":779,"dataGaLocation":683},"/topics/version-control/","version control",{"text":781,"config":782},"DevSecOps",{"href":783,"dataGaName":784,"dataGaLocation":683},"/topics/devsecops/","devsecops",{"text":786,"config":787},"Cloud Native",{"href":788,"dataGaName":789,"dataGaLocation":683},"/topics/cloud-native/","cloud native",{"text":791,"config":792},"AI for Coding",{"href":793,"dataGaName":794,"dataGaLocation":683},"/topics/devops/ai-for-coding/","ai for coding",{"text":796,"config":797},"Agentic AI",{"href":798,"dataGaName":799,"dataGaLocation":683},"/topics/agentic-ai/","agentic ai",{"title":801,"links":802},"Solutions",[803,805,807,812,816,819,823,826,828,831,834,839],{"text":334,"config":804},{"href":329,"dataGaName":334,"dataGaLocation":683},{"text":323,"config":806},{"href":306,"dataGaName":307,"dataGaLocation":683},{"text":808,"config":809},"Agile development",{"href":810,"dataGaName":811,"dataGaLocation":683},"/solutions/agile-delivery/","agile delivery",{"text":813,"config":814},"SCM",{"href":319,"dataGaName":815,"dataGaLocation":683},"source code management",{"text":762,"config":817},{"href":312,"dataGaName":818,"dataGaLocation":683},"continuous integration & delivery",{"text":820,"config":821},"Value stream management",{"href":362,"dataGaName":822,"dataGaLocation":683},"value stream management",{"text":767,"config":824},{"href":825,"dataGaName":770,"dataGaLocation":683},"/solutions/gitops/",{"text":372,"config":827},{"href":375,"dataGaName":376,"dataGaLocation":683},{"text":829,"config":830},"Small business",{"href":381,"dataGaName":382,"dataGaLocation":683},{"text":832,"config":833},"Public sector",{"href":387,"dataGaName":388,"dataGaLocation":683},{"text":835,"config":836},"Education",{"href":837,"dataGaName":838,"dataGaLocation":683},"/solutions/education/","education",{"text":840,"config":841},"Financial services",{"href":842,"dataGaName":843,"dataGaLocation":683},"/solutions/finance/","financial services",{"title":395,"links":845},[846,848,850,852,855,857,860,862,864,866,868,870,872,874],{"text":408,"config":847},{"href":410,"dataGaName":411,"dataGaLocation":683},{"text":413,"config":849},{"href":415,"dataGaName":416,"dataGaLocation":683},{"text":418,"config":851},{"href":420,"dataGaName":421,"dataGaLocation":683},{"text":423,"config":853},{"href":425,"dataGaName":854,"dataGaLocation":683},"docs",{"text":445,"config":856},{"href":447,"dataGaName":448,"dataGaLocation":683},{"text":858,"config":859},"What's new",{"href":505,"dataGaName":506,"dataGaLocation":683},{"text":440,"config":861},{"href":442,"dataGaName":443,"dataGaLocation":683},{"text":459,"config":863},{"href":461,"dataGaName":462,"dataGaLocation":683},{"text":467,"config":865},{"href":469,"dataGaName":470,"dataGaLocation":683},{"text":472,"config":867},{"href":474,"dataGaName":475,"dataGaLocation":683},{"text":477,"config":869},{"href":479,"dataGaName":480,"dataGaLocation":683},{"text":482,"config":871},{"href":484,"dataGaName":485,"dataGaLocation":683},{"text":487,"config":873},{"href":489,"dataGaName":490,"dataGaLocation":683},{"text":492,"config":875},{"href":494,"dataGaName":495,"dataGaLocation":683},{"title":508,"links":877},[878,880,882,884,886,888,892,897,899,901,903],{"text":516,"config":879},{"href":518,"dataGaName":510,"dataGaLocation":683},{"text":521,"config":881},{"href":523,"dataGaName":524,"dataGaLocation":683},{"text":529,"config":883},{"href":531,"dataGaName":532,"dataGaLocation":683},{"text":534,"config":885},{"href":536,"dataGaName":537,"dataGaLocation":683},{"text":539,"config":887},{"href":541,"dataGaName":542,"dataGaLocation":683},{"text":889,"config":890},"Sustainability",{"href":891,"dataGaName":889,"dataGaLocation":683},"/sustainability/",{"text":893,"config":894},"Diversity, inclusion and belonging (DIB)",{"href":895,"dataGaName":896,"dataGaLocation":683},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":544,"config":898},{"href":546,"dataGaName":547,"dataGaLocation":683},{"text":554,"config":900},{"href":556,"dataGaName":557,"dataGaLocation":683},{"text":559,"config":902},{"href":561,"dataGaName":562,"dataGaLocation":683},{"text":904,"config":905},"Modern Slavery Transparency Statement",{"href":906,"dataGaName":907,"dataGaLocation":683},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":909},[910,913,916],{"text":911,"config":912},"Terms",{"href":735,"dataGaName":736,"dataGaLocation":683},{"text":914,"config":915},"Cookies",{"dataGaName":745,"dataGaLocation":683,"id":746,"isOneTrustButton":226},{"text":917,"config":918},"Privacy",{"href":740,"dataGaName":741,"dataGaLocation":683},[920],{"id":921,"title":922,"body":222,"config":923,"content":925,"description":222,"extension":928,"meta":929,"navigation":226,"path":930,"seo":931,"stem":932,"__hash__":933},"blogAuthors/en-us/blog/authors/gitlab.yml","Gitlab",{"template":924},"BlogAuthor",{"name":7,"config":926},{"headshot":927,"ctfId":7},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659488/Blog/Author%20Headshots/gitlab-logo-extra-whitespace.png","yml",{},"/en-us/blog/authors/gitlab",{},"en-us/blog/authors/gitlab","XCBKIcPoCs6zi2oHG7o-bAp52Jhaw8_zGhIJ2jNrEjU",[935,944,952],{"title":936,"description":937,"heroImage":938,"category":218,"date":939,"authors":940,"slug":943,"externalUrl":222},"Confidential AI for GitLab Self-Hosted","Give developers AI coding agents in GitLab Duo without source code leaving a hardware-encrypted boundary — no GPUs needed.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1773866173/vte9qh8rriznvyclhkes.png","2026-08-06",[941,942],"Mathias Ewald","Martin Paloncy, Edgeless Systems","confidential-ai-for-gitlab-self-hosted",{"title":945,"description":946,"heroImage":947,"category":218,"date":948,"authors":949,"slug":951,"externalUrl":222},"Green DevOps: Why carbon measurement belongs in your CI/CD pipeline","CI/CD pipelines have a hidden carbon cost. Here's why measuring it matters, and how you can get started with Eco CI and Carmen in GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1765809212/noh0mdfn9o94ry9ykura.png","2026-07-09",[950],"Lysanne Pinto","green-devops-carbon-measurement-cicd-pipeline",{"title":953,"description":954,"heroImage":955,"category":218,"date":956,"authors":957,"slug":959,"externalUrl":222},"How to build CI/CD observability at scale","This practical guide to GitLab pipeline analytics helps self-managed users gain operational insights using Prometheus and Grafana.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1774465167/n5hlvrsrheadeccyr1oz.png","2026-04-28",[958],"Paul Meresanu","how-to-build-ci-cd-observability-at-scale",{"promotions":961},[962,976,988,1000],{"id":963,"categories":964,"header":966,"text":967,"button":968,"image":973},"ai-modernization",[965],"ai","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":969,"config":970},"Get your AI maturity score",{"href":971,"dataGaName":972,"dataGaLocation":448},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":974},{"src":975},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":977,"categories":978,"header":980,"text":967,"button":981,"image":985},"devops-modernization",[979,784],"product","Are you just managing tools or shipping innovation?",{"text":982,"config":983},"Get your DevOps maturity score",{"href":984,"dataGaName":972,"dataGaLocation":448},"/assessments/devops-modernization-assessment/",{"config":986},{"src":987},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":989,"categories":990,"header":992,"text":967,"button":993,"image":997},"security-modernization",[991],"security","Are you trading speed for security?",{"text":994,"config":995},"Get your security maturity score",{"href":996,"dataGaName":972,"dataGaLocation":448},"/assessments/security-modernization-assessment/",{"config":998},{"src":999},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":1001,"paths":1002,"header":1005,"text":1006,"button":1007,"image":1012},"github-azure-migration",[1003,1004],"migration-from-azure-devops-to-gitlab","integrating-azure-devops-scm-and-gitlab","Is your team ready for GitHub's Azure move?","GitHub is already rebuilding around Azure. Find out what it means for you.",{"text":1008,"config":1009},"See how GitLab compares to GitHub",{"href":1010,"dataGaName":1011,"dataGaLocation":448},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":1013},{"src":987},{"header":1015,"blurb":1016,"button":1017,"secondaryButton":1022},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":1018,"config":1019},"Get your free trial",{"href":1020,"dataGaName":249,"dataGaLocation":1021},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":721,"config":1023},{"href":573,"dataGaName":254,"dataGaLocation":1021},1786803734392]