openapi: 3.0.0 info: title: 10Web API V1 Account WP Autologin API description: 'The 10Web API provides a comprehensive set of endpoints for managing websites, DNS zones, domains, SSL certificates, backups, and more. This RESTful API allows you to integrate 10Web''s powerful hosting and website management capabilities into your own applications. ' servers: - url: https://api.10web.io tags: - name: WP Autologin description: Operations for secure WordPress admin panel autologin functionality paths: /v1/account/websites/{website_id}/single?admin_url={wp_admin_url}: get: summary: Generate single-use autologin token for website admin access description: 'Generates a single-use token for secure, passwordless access to a website''s WordPress admin panel. The token is valid for 5 minutes and can be used to automatically log in or create an admin user. The autologin feature allows for secure, tokenized access to WordPress admin panels without requiring manual credential entry. The system generates single-use tokens with a 5-minute TTL that can be used to: 1. Log in automatically as an existing user if the email matches a WordPress user 2. Create a new administrator account with the provided email and automatically log in ### Token Usage After obtaining a token, construct a URL in one of the following formats: **Standard WordPress Admin Access:** ``` https://{website_url}/wp-admin/?twb_wp_login_token={token}&email={email} ``` **Direct Access to AI Builder Generation Page:** ``` https://{website_url}/wp-admin/?twb_wp_login_token={token}&email={email}&page=twbb_ai_builder&open_ai_generation=1 ``` When a user visits either URL: - If a user with the provided email exists in WordPress, they will be automatically logged in - If no matching user exists, a new administrator account will be created with the email and automatic login occurs - With the `&page=twbb_ai_builder&open_ai_generation=1` parameter, users will be redirected directly to the AI Builder generation page after login ### Security Notes - Tokens can only be used once - Tokens expire after 5 minutes - This provides a secure method for resellers to give customers access to their WordPress admin panels ' tags: - WP Autologin parameters: - $ref: '#/components/parameters/WebsiteId' - $ref: '#/components/parameters/Authorization' - name: admin_url in: query required: true schema: type: string description: URL of the WordPress admin panel example: https://mywebsite.example.com/wp-admin responses: '200': description: Autologin token generated successfully content: application/json: schema: type: object properties: status: type: string enum: - ok - error token: type: string description: Single-use token for website admin autologin example: status: ok token: FFX0jjafItN3SNbAyEkQf6rJUvLcM6HiEVJotjGnaxgita3C7cJIWCvESBtSsfqXhJL7HyUP9B3xQXQHkrr6HhY3HfcHAgiiVskxUAjfiiQRoNXaOZ7jTnnNMS '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' components: responses: TooManyRequests: description: Too many requests content: application/json: schema: type: object properties: status: type: string enum: - error message: type: string example: Too many requests. Please try again later. Unauthorized: description: Unauthorized access content: application/json: schema: type: object properties: status: type: string enum: - error message: type: string example: Unauthorized access BadRequest: description: Bad request content: application/json: schema: type: object properties: status: type: string enum: - error message: type: string example: Invalid request parameters InternalServerError: description: Something went wrong content: application/json: schema: type: object properties: status: type: string enum: - error message: type: string example: Something went wrong parameters: Authorization: name: x-api-key in: header required: true schema: type: string description: API key for authentication example: API_KEY WebsiteId: name: website_id in: path required: true schema: type: integer