early api structure