```swift extension GraphQLRequest { static func get(byPostId postId: String, todoId: String) -> GraphQLRequest { let document = """ query get($postId: ID!, $todoId: ID!) { getPost(id: $postId) { id title rating } getTodo(id: $todoId) { id name } } """ return GraphQLRequest( document: document, variables: [ "postId": postId, "todoId": todoId ], responseType: JSONValue.self ) } } ``` Notice here that `JSONValue` is used as the `responseType`. `JSONValue` is utility type that can be used to represent an arbitrary JSON response. Once you have the response data in a `JSONValue`, you can access each object in the JSON structure by encoding it back to Data and decoding it to the expected Model. ```swift do { let response = try await Amplify.API.query(request: .get(byPostId: "[POST_ID]", todoId: "[TODO_ID]")) switch response { case .success(let data): if let todoJSON = data.value(at: "getTodo"), let todoData = try? JSONEncoder().encode(todoJSON), let todo = try? JSONDecoder().decode(Todo.self, from: todoData) { print(todo) } if let postJSON = data.value(at: "getPost"), let postData = try? JSONEncoder().encode(postJSON), let post = try? JSONDecoder().decode(Post.self, from: postData) { print(post) } case .failure(let errorResponse): print("Response contained errors: \(errorResponse)") } } catch let error as APIError { print("Failed with error: \(error)") } catch { print("Unexpected error: \(error)") } ``` If you have custom models or your Model has required fields that you have decided not to include in the response, you can create a `Codable` that conforms to the structure of the response data that you expect. From the previous example, the `Codable` would look like this ```swift struct PostAndTodoResponse: Codable { public let getTodo: Todo public let getPost: Post struct Todo: Codable { public let id: String public var name: String } struct Post: Codable { public let id: String public var title: String public var rating: Int } } ``` Then use `PostAndTodoResponse` as the `responseType` of the `GraphQLRequest` instead of using `JSONValue`.