Docs
Search Apollo content (Cmd+K or /)
Launch GraphOS Studio
Home Home Get Started Get Started GraphOS Platform GraphOS Platform Schema Design Schema Design Routing Routing Reference Reference
Developer Tools Developer Tools
Overview

Quickstarts

Start with a GraphQL APIConnect a REST API

Concepts

GraphQLGraph TypesGraphOS Platform
Navigation controls

Get Started

Overview

Quickstarts

Start with a GraphQL APIConnect a REST API

Concepts

GraphQLGraph TypesGraphOS Platform

GraphOS Platform

Overview

Schema Management

Overview

Schema Delivery

PublishLaunch

Contracts

OverviewCreateUsage PatternsReference

Schema Checks

OverviewRun ChecksCustom ChecksChecks ConfigurationGitHub IntegrationChecks Reference

Schema Linting

OverviewLinter Rules

Schema Proposals

OverviewConfigureCreateReviewImplement

Explorer IDE

OverviewConnect and AuthenticateOperation CollectionsSubscription SupportEmbedScriptingAdditional Features

Graph Security

OverviewPersisted Queries

Metrics and Insights

Overview

Metrics Collection and Forwarding

Sending Metrics to GraphOSOperation SignaturesDatadog Forwarding

Insights and Analysis

Operation MetricsField UsageSegmenting by Client

Notifications and Alerts

OverviewDaily ReportsSchema ChangesSchema ProposalsPerformance AlertsBuild Status

Access Management

OrganizationsAPI KeysMembers, Roles, and PermissionsAudit Logs

SSO

OverviewSelf-Service MigrationMulti-Organization

SAML

OktaMicrosoft Entra IDGeneric SAML Setup

OIDC

OktaMicrosoft Entra IDGeneric OIDC Setup

Graph Management

Using VariantsAdding SubgraphsManaging SubgraphsUpdating Graph Components

Production Readiness

Production Readiness Checklist

Testing and Load Management

Overload ProtectionLoad TestingTesting with Federation

Environment and Deployment

Environment Best PracticesSchema Change ManagementUpdating Client SchemaDeployment Best Practices
GraphOS Platform API

Schema Design

Overview

Federated Schemas

Apollo FederationSchema TypesSchema CompositionSharing Types (Value Types)

Entities

IntroductionDefine KeysContribute FieldsResolve Another Subgraph's FieldsUse ContextsInterfacesMigrate FieldsEnforce OwnershipEntity Best Practices

Apollo Connectors

OverviewCommon Patterns

Connectors Guides

Making HTTP RequestsWorking with FederationWorking with RouterSelection MappingObservabilityEnabling VS Code ExtensionTroubleshooting

Connectors Reference

DirectivesLimitationsChangelog

Schema Design Guides

Handling the N+1 Problem

Schema Design Principles

Schema Naming ConventionsNamespacingMocking to Unblock DevelopmentDemand Oriented Schema DesignAggregating DataNullabilityErrors as DataDeprecations

Advanced Schema Techniques

InterfacesResponse Type PatternGraph IdentitiesRelay Style Connections and PaginationDistributed Orchestration

Routing

OverviewAbout GraphOS RouterConfigure Your Router

Cloud Routing

OverviewConfigurationSecure SubgraphsSubscriptionsServerless

Dedicated

OverviewQuickstartCustom DomainsThroughput GuideMigrate to Dedicated

AWS Lattice

Lattice ConfigurationLattice ManagementLattice Troubleshooting

Self-Hosted Deployment

OverviewRouter Resource EstimatorHealth ChecksResource Management

Containerization

OverviewDockerKubernetesOptimize Builds

Query Planning

Native Query Planner

Client Features

HTTP Header PropagationFile Upload Support

Real-Time Operations

OverviewDefer Support

Subscription Support

OverviewCallback ProtocolMultipart ProtocolEnable with API Gateway

Security

OverviewPersisted QueriesAuthorization

Authentication

JWT AuthenticationRouter AuthenticationSubgraph Authentication

Operations Security

Request LimitsDemand Control

Web Security

CORSCSRF Prevention

Performance and Scaling

OverviewTraffic ShapingQuery BatchingQuery Planner Pools

Caching

In-Memory CachingDistributed CachingEntity Caching

Router Customization

Router Request LifecycleRhai ScriptsRust PluginsCoprocessorsCustom Binaries

GraphOS Integration

Apollo UplinkOperation Metrics Reporting

Observability

OverviewRouter TelemetryFederated Trace Data

Subgraph Observability

Subgraph Error InclusionOpt-in Error ReportingDebugging Subgraph Requests

Client Observability

Client ID EnforcementClient Awareness

OpenTelemetry

Set up OTelConnect OTel to Prometheus

Guides

API Gateway Comparison

Reference

OverviewChangelogsGlossary

Release Policies

Apollo Feature Launch StagesGraphOS Router Release LifecycleApollo Client Library Release Lifecycle

Architecture

Reference Architecture

Supergraph Architecture Framework

OverviewOperational ExcellenceSecurityReliabilityPerformanceDeveloper Experience

Federation Reference

Federation VersionsFederated DirectivesComposition Rules

Subgraph Reference

Federation Subgraphs SpecificationSubgraph Specific FieldsCompatible Subgraph Libraries

Development and Debugging

IDE SupportQuery PlansComposition HintsErrors
Federation v1

Router Reference

Self-Hosted InstallationConfigurationGraphOS Router FeaturesRhai APIFederation Version SupportErrors

Router Telemetry

Log Exporters

OverviewStdout

Metrics Exporters

OverviewDatadogDynatraceNew RelicOTLPPrometheus

Trace Exporters

OverviewDatadogDynatraceJaegerNew RelicOTLPZipkin

Instrumentation

InstrumentsEventsConditionsSpansSelectorsStandard AttributesStandard Instruments

Migration Guides

From Router v1.x to v2.xFrom Router v0.x to v1.xFrom @apollo/gateway to RouterFrom Federation 1 to 2Federation 2 Backwards CompatibilityFrom a MonolithFrom Schema Stitching

GraphQL Adoption Guides

GraphQL Adoption PatternsUsing GraphQL for AbstractionGraphQL and REST togetherSupergraph Stewardship
LicensingGraphOS Data PrivacySub-Processors

Rover CLI

OverviewInstallConfigureProxy ConfigurationCI/CDConventionsPrivacy and Data CollectionContributingError Codes

Commands

cloudconfigcontractdevexplaingraphlicensepersisted-queriesreadmesubgraphsupergraphtemplate

The Apollo CLI (deprecated)

InstallationValidating Client OperationsMoving to Rover

Apollo Sandbox

Overview

Apollo Client (Web)

Apollo Client (Web) - v3 (latest)
IntroductionWhy Apollo Client?Get startedChangelog

Fetching

QueriesSuspenseFragmentsMutationsRefetchingSubscriptionsDirectivesError handlingDocument transformsBest practices

Caching

OverviewConfigurationReading and writingGarbage collection and evictionCustomizing field behaviorMemory ManagementAdvanced topics

Pagination

OverviewCore APIOffset-basedCursor-basedkeyArgs

Local State

OverviewLocal-only fieldsReactive variablesClient-side schemaLocal resolvers

Development & Testing

Developer toolsUsing TypeScriptTesting React componentsSchema-driven testingMocking schema capabilitiesReducing bundle size

Performance

Improving performanceOptimistic mutation resultsServer-side renderingCompiling queries with Babel

Integrations

Using Apollo Client with your view layerIntegrating with React NativeLoading queries with Webpack

Networking

Basic HTTP networkingAdvanced HTTP networkingAuthentication

Migrating

Migrating to Apollo Client 3.0Hooks migration guide

API Reference

Core

ApolloClientInMemoryCacheObservableQuery

React

HooksPreloadingTestingSSRComponents (deprecated)HOC (deprecated)

Apollo Link

OverviewHTTPHTTP BatchContextErrorPersisted QueriesRemove TypenameRESTRetrySchemaSubscriptions (newer protocol)WebSocket (older protocol)Community links

Apollo iOS

Apollo iOS - v1 (latest)
IntroductionGet Started

Project Configuration

Introduction1. Project Modularization2. Schema Types3. Operation ModelsSDK components

Migration Guides

v1.0v1.2v1.3v1.5v1.6v1.7

Tutorial

Code Generation

Build a project with Apollo

Introduction1. Configure your project2. Add the GraphQL schema3. Write your first query4. Running code generation5. Execute your first query6. Connect your queries to your UI7. Add more info to the list8. Paginate results9. Complete the details view10. Write your first mutation11. Authenticate your operations12. Define additional mutations13. Write your first subscription

API Reference

OverviewApollo ClientApolloAPIApolloWebSocketApolloSQLiteApolloCodegenLibApolloPaginationClient Directives

Code Generation

IntroductionThe Codegen CLIConfigurationDownloading a SchemaRunning Code Generation in Swift CodeCode Generation Troubleshooting

Fetching

Fetching Data

Operations

QueriesMutationsSubscriptionsFragments
Operation ArgumentsError HandlingType ConditionsCustom ScalarsPersisted Queries@defer support (experimental)

Caching

IntroductionSetupDirect Cache AccessCustom Cache Keys

Networking

Creating a Client

Pagination

IntroductionUsing Custom Response ModelsDirectional PaginationMulti-query Pagination

Development & Testing

Test MocksIncluding Apollo as an XCFramework

Advanced

File UploadsRequest Chain Customization

Apollo Kotlin

Apollo Kotlin - v4 (latest)
Get StartedMigrating to v4ModulesEvolution policyKdocChangelog

Tutorial

0. Introduction1. Configure your project2. Add the GraphQL schema3. Write your first query4. Execute your first query5. Connect your queries to your UI6. Add more info to the list7. Paginate results8. Add a details view9. Write your first mutation10. Authenticate your operations11. Write your first subscription

Configuration

Gradle plugin configurationGradle plugin recipesMulti ModulesFile typesClient Awareness

Fetching

QueriesMutationsSubscriptionsGraphQL variablesError handlingCustom scalarsFragments@defer supportPersisted queries

Caching

IntroductionNormalized cachesDeclarative cache IDsProgrammatic cache IDsWatching cached dataApolloStoreHTTP cacheTroubleshooting

Networking

InterceptorsCustom HTTP clientsUsing the models without apollo-runtimeAuthenticationWebSocket errorsBatching operations

Development & Testing

Testing overviewMocking HTTP responsesMocking GraphQL responsesData buildersAndroid Studio pluginApollo Debug Server

Advanced

Uploading filesMonitoring the network stateHandling nullabilityExperimental WebSocketsUsing aliasesUsing JavaApollo ASTCompiler pluginsJS InteroperabilityResponse based codegenApollo Kotlin galaxy

Apollo Server

Apollo Server - v4 (latest)
IntroductionGet started

New in v4

Migrating to Apollo Server 4Previous versionsChangelog

Defining a Schema

Schema basicsUnions and interfacesCustom scalarsDirectives

Resolving Operations

ResolversSharing contextError handlingSubscriptions

Fetching Data

OverviewREST APIs

Web Frameworks

IntegrationsBuilding integrationsMERN stack tutorial

Development Workflow

Build and run queriesRequest formatGenerating TS typesMockingIntegration testingApollo Studio Explorer

Performance

CachingCache backendsResponse Cache EvictionAutomatic persisted queries

Security

AuthCORSTerminating SSLProxy configuration

Deployment

LambdaHeroku

Monitoring

Metrics and loggingHealth checks

API Reference

ApolloServerstartStandaloneServerexpressMiddleware

Plugins

Overview

Built-in

Usage reportingSchema reportingInline traceDrain HTTP serverCache controlLanding pagesFederated subscriptions

Custom

Creating pluginsEvent reference

Using with Federation

As a subgraph

Setup@apollo/subgraph reference

As a gateway

SetupGateway performance@apollo/gateway reference

VS Code Extension

Overview

Get Started

Home
/ Get Started

Get Started With Apollo GraphOS

Core concepts and guides for new users

Dive into one of our quickstarts for hands-on-keyboard learning or explore the core concepts to learn the essentials.

Start with a GraphQL API

Build a federated GraphQL API with a demo GraphQL services, GraphOS, and Apollo Federation.

Connect a REST API

Build a federated GraphQL API with a demo REST services, GraphOS, and Apollo Federation.

Implementation Guidance

Adopt best practices

Assess and improve your graph with recommendations from the Supergraph Architecture Framework (SAF).

Deploy reference architecture

Set up an enterprise GraphOS deployment by following Apollo's reference architecture.

New to GraphQL?

GraphQL Tutorials

Boost your skills with hands-on GraphQL tutorials and trainings.

Explore tutorials

GraphQL Basics

Learn core GraphQL concepts.

Go to graphql.com
Next
Apollo GraphOS Quickstart

© 2025 Apollo Graph Inc., d/b/a Apollo GraphQL.

Privacy Policy

Company

  • About Apollo
  • Careers
  • Partners

Resources

  • Blog
  • Tutorials
  • Content Library

Get in touch

  • Contact Sales
  • Contact Support