Skip to main content
Version: 7.2.X

Overriding APIs

Main interface#

interface APIInterface {    /*     * Called to the verify email verification token    *     * @method: POST    *     * @params: set it to undefined to disable the API.    *          token: email verification tokenß    *          options: see APIOptions below    *     * @returns: "OK": if token is successfully verified    *           "EMAIL_VERIFICATION_INVALID_TOKEN_ERROR": if verification token is invalid    */    verifyEmailPOST:        | undefined        | ((input: {              token: string;              options: APIOptions;          }) => Promise<{ status: "OK"; user: User } | { status: "EMAIL_VERIFICATION_INVALID_TOKEN_ERROR" }>);
    /*     * Called to check whether the email is verified or not    *     * @method: GET    *     * @params: set it to undefined to disable the API    *          options: see APIOptions below    *     * @returns: "OK" and boolean stating whether email is verified or not    */    isEmailVerifiedGET:        | undefined        | ((input: {              options: APIOptions;          }) => Promise<{              status: "OK";              isVerified: boolean;          }>);
    /*     * Called to generate email verification token    *     * @method: POST    *     * @params: set it to undefined to disable the API    *          options: see APIOptions below    *     * @returns: "OK": if token is successfully generated    *           "EMAIL_ALREADY_VERIFIED_ERROR": if email is already verified    */    generateEmailVerifyTokenPOST:        | undefined        | ((input: { options: APIOptions }) => Promise<{ status: "EMAIL_ALREADY_VERIFIED_ERROR" | "OK" }>);}

Supporting Types#

interface BaseRequest {    original: Express.Request;    getKeyValueFromQuery: (key: string) => Promise<string | undefined>;    getJSONBody: () => Promise<any>;    getMethod: () => HTTPMethod;    getCookieValue: (key_: string) => string | undefined;    getHeaderValue: (key: string) => string | undefined;    getOriginalURL: () => string;}
interface BaseResponse {    original: Express.Response;    setHeader: (key: string, value: string, allowDuplicateKey: boolean) => void;    setCookie: (        key: string,        value: string,        domain: string | undefined,        secure: boolean,        httpOnly: boolean,        expires: number,        path: string,        sameSite: "strict" | "lax" | "none"    ) => void;    setStatusCode: (statusCode: number) => void;    sendJSONResponse: (content: any) => void;}
interface APIOptions {    recipeImplementation: RecipeInterface;    config: TypeNormalisedInput;    recipeId: string;    isInServerlessEnv: boolean;    req: BaseRequest;    res: BaseResponse;}
interface User {    id: string;    email: string;}
Which frontend SDK do you use?
supertokens-web-js / mobile
supertokens-auth-react