openapi: 3.2.0 info: title: Offerpad WordPress REST API (wp/v2) Settings API version: 2.0.0 summary: The wp/v2 namespace of the WordPress REST API served by Offerpad's marketing site. description: DERIVED, NOT PUBLISHED BY OFFERPAD. Offerpad publishes no OpenAPI definition and does not document or support this surface as a developer product. This document was derived mechanically by API Evangelist from the live WordPress route-discovery document fetched from https://www.offerpad.com/wp-json/ on 2026-07-26 (411 routes across 20 namespaces; the wp/v2 namespace is captured here). Every path, method, parameter name, type, enum, default and description is copied verbatim from that discovery document. Response bodies are intentionally left as generic objects because the discovery document does not publish response schemas; error responses are grounded in payloads probed live against this host. This is a content-management surface for the marketing site - it is NOT a real estate, listing, valuation or transaction API. contact: name: Offerpad url: https://www.offerpad.com/contact/ x-apievangelist-method: derived x-apievangelist-source: openapi/offerpad-wp-json-discovery.json x-apievangelist-derived: '2026-07-26' x-upstream-documentation: https://developer.wordpress.org/rest-api/ servers: - url: https://www.offerpad.com/wp-json description: Offerpad marketing site (WP Engine) security: [] tags: - name: settings description: WordPress settings resource routes. paths: /wp/v2/settings: get: operationId: listSettings summary: List settings tags: - settings responses: '200': description: Successful response. content: application/json: schema: type: object '400': description: 'Invalid parameter(s). Probed live: {"code":"rest_invalid_param"}' content: application/json: schema: $ref: '#/components/schemas/WPError' '401': description: 'Authentication required or capability missing. Probed live: {"code":"rest_forbidden"}' content: application/json: schema: $ref: '#/components/schemas/WPError' '404': description: 'No route matched, or the resource id is invalid. Probed live: {"code":"rest_no_route"} / {"code":"rest_post_invalid_id"}' content: application/json: schema: $ref: '#/components/schemas/WPError' post: operationId: createSettings summary: Create settings tags: - settings requestBody: required: false content: application/json: schema: type: object properties: genesis_blocks_mailchimp_api_key: type: string title: type: string description: Site title. description: type: string description: Site tagline. url: type: string format: uri description: Site URL. email: type: string format: email description: This address is used for admin purposes, like new user notification. timezone: type: string description: A city in the same timezone as you. date_format: type: string description: A date format for all date strings. time_format: type: string description: A time format for all time strings. start_of_week: type: integer description: A day number of the week that the week should start on. language: type: string description: WordPress locale code. use_smilies: type: boolean description: Convert emoticons like :-) and :-P to graphics on display. default_category: type: integer description: Default post category. default_post_format: type: string description: Default post format. posts_per_page: type: integer description: Blog pages show at most. show_on_front: type: string description: What to show on the front page page_on_front: type: integer description: The ID of the page that should be displayed on the front page page_for_posts: type: integer description: The ID of the page that should display the latest posts default_ping_status: type: string enum: - open - closed description: Allow link notifications from other blogs (pingbacks and trackbacks) on new articles. default_comment_status: type: string enum: - open - closed description: Allow people to submit comments on new posts. site_logo: type: integer description: Site logo. site_icon: type: integer description: Site icon. elementor_one_welcome_screen_completed: type: boolean description: Elementor One Welcome Screen Completed elementor_one_dismiss_connect_alert: type: boolean description: Elementor One Dismiss Connect Alert security: - applicationPasswords: [] responses: '200': description: Successful response. content: application/json: schema: type: object '201': description: Resource created. content: application/json: schema: type: object '400': description: 'Invalid parameter(s). Probed live: {"code":"rest_invalid_param"}' content: application/json: schema: $ref: '#/components/schemas/WPError' '401': description: 'Authentication required or capability missing. Probed live: {"code":"rest_forbidden"}' content: application/json: schema: $ref: '#/components/schemas/WPError' '404': description: 'No route matched, or the resource id is invalid. Probed live: {"code":"rest_no_route"} / {"code":"rest_post_invalid_id"}' content: application/json: schema: $ref: '#/components/schemas/WPError' components: schemas: WPError: type: object description: WordPress REST error envelope, observed live on this host. properties: code: type: string description: Machine-readable error code, e.g. rest_no_route. message: type: string description: Human-readable error message. data: type: object properties: status: type: integer description: HTTP status code, repeated in the body. params: type: object description: Per-parameter validation messages (rest_invalid_param). details: type: object description: Per-parameter structured error detail. required: - code - message examples: - code: rest_post_invalid_id message: Invalid post ID. data: status: 404 securitySchemes: applicationPasswords: type: http scheme: basic description: WordPress application passwords, advertised by the discovery document at https://www.offerpad.com/wp-admin/authorize-application.php. Sent as HTTP Basic credentials. Required for write operations and for reads in the edit context; issuing a credential requires an Offerpad WordPress account, which is not self-serve.