make api optional