OpenAPI
Machine-readable API description: https://swansonking.com/api/openapi.json
Public APIs
These are the unauthenticated JSON and form endpoints exposed by the public website at
swansonking.com.
The public website APIs and MCP endpoint are intentionally unauthenticated today, so this surface does not publish OAuth or OpenID Connect discovery metadata.
Machine-readable API description: https://swansonking.com/api/openapi.json
Health and discovery endpoint: https://swansonking.com/api/status.json
API catalog: /.well-known/api-catalog
Agent skills: /.well-known/agent-skills/index.json
MCP server card: /.well-known/mcp/server-card.json
/api/status.json Use this endpoint as a lightweight status probe and to discover the related API documentation, OpenAPI description, agent skills, and MCP server card.
Content-Type:
application/json
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"service": {
"type": "string"
},
"contentSignal": {
"type": "string"
},
"links": {
"type": "object",
"additionalProperties": {
"type": "string",
"format": "uri"
}
}
},
"required": [
"ok",
"service",
"contentSignal",
"links"
]
} /api/blog-ledger-posts.json Fetches public blog posts for lightweight feed and ledger experiences.
offset (optional):
Zero-based starting offset. limit (optional):
Maximum number of posts to return.
Content-Type:
application/json
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"hasMore": {
"type": "boolean"
}
},
"required": [
"items",
"hasMore"
]
} /api/contact.json Submits a public contact form. Required fields are name, email, and message. The endpoint responds with JSON and triggers an email to the team.
Content-Type:
multipart/form-data
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Sender name"
},
"email": {
"type": "string",
"description": "Sender email address",
"format": "email"
},
"phone": {
"type": "string",
"description": "Sender phone number"
},
"company": {
"type": "string",
"description": "Sender company"
},
"message": {
"type": "string",
"description": "Inquiry message"
},
"sourcePage": {
"type": "string",
"description": "Page URL where the form originated",
"format": "uri"
},
"recipientKey": {
"type": "string",
"description": "Allowed direct-recipient key for principal bio email forms"
}
},
"required": [
"name",
"email",
"message"
]
}
Content-Type:
application/json
{
"type": "object",
"additionalProperties": true
} /api/subscribe.json Submits a newsletter request using a name and email address.
Content-Type:
multipart/form-data
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Subscriber name"
},
"email": {
"type": "string",
"description": "Subscriber email address",
"format": "email"
}
},
"required": [
"email"
]
}
Content-Type:
application/json
{
"type": "object",
"additionalProperties": true
} /api/upload.json Submits a secure upload request with contact details, message, and a single attached file.
Content-Type:
multipart/form-data
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Sender name"
},
"email": {
"type": "string",
"description": "Sender email address",
"format": "email"
},
"phone": {
"type": "string",
"description": "Sender phone number"
},
"company": {
"type": "string",
"description": "Sender company"
},
"message": {
"type": "string",
"description": "Message describing the upload"
},
"file": {
"type": "string",
"format": "binary",
"description": "The uploaded file."
}
},
"required": [
"name",
"email",
"message",
"file"
]
}
Content-Type:
application/json
{
"type": "object",
"additionalProperties": true
} /api/offering-memorandum/check-access.json Returns whether access is granted or whether a confidentiality agreement is required for the requested deal.
Content-Type:
multipart/form-data
{
"type": "object",
"properties": {
"did": {
"type": "string",
"description": "Salesforce deal identifier"
},
"email": {
"type": "string",
"description": "Email address to check",
"format": "email"
}
},
"required": [
"did",
"email"
]
}
Content-Type:
application/json
{
"type": "object",
"additionalProperties": true
} /api/offering-memorandum/sign.json Submits the confidentiality agreement workflow and returns a redirect URL for the viewer.
Content-Type:
multipart/form-data
{
"type": "object",
"properties": {
"did": {
"type": "string",
"description": "Salesforce deal identifier"
},
"first_name": {
"type": "string",
"description": "First name"
},
"last_name": {
"type": "string",
"description": "Last name"
},
"email": {
"type": "string",
"description": "Email address",
"format": "email"
},
"phone": {
"type": "string",
"description": "Phone number"
},
"company": {
"type": "string",
"description": "Company name"
},
"role": {
"type": "string",
"enum": [
"principal",
"broker",
"advisor"
],
"description": "Role of the person requesting access."
},
"needs_brokerage": {
"type": "string",
"enum": [
"yes",
"no"
],
"description": "For principals, whether brokerage representation is needed."
},
"client_name": {
"type": "string",
"description": "Client name when signing as broker or advisor."
},
"agreement_accepted": {
"type": "string",
"description": "Checkbox flag confirming the agreement was accepted."
}
},
"required": [
"did",
"first_name",
"last_name",
"email",
"role",
"agreement_accepted"
]
}
Content-Type:
application/json
{
"type": "object",
"additionalProperties": true
} /api/public_google_codex_map/parcels/in-view Use this endpoint to retrieve parcel data inside a bounding box for the public parcel map experience.
Content-Type:
application/json
{
"type": "object",
"properties": {
"bounds": {
"type": "object",
"properties": {
"north": {
"type": "number",
"minimum": -90,
"maximum": 90
},
"south": {
"type": "number",
"minimum": -90,
"maximum": 90
},
"east": {
"type": "number",
"minimum": -180,
"maximum": 180
},
"west": {
"type": "number",
"minimum": -180,
"maximum": 180
}
},
"required": [
"north",
"south",
"east",
"west"
]
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 1000,
"default": 900
}
},
"required": [
"bounds"
]
}
Content-Type:
application/json
{
"type": "object",
"additionalProperties": true
} /api/public_google_codex_map/parcels/point Use this endpoint to reverse-look up a single parcel from a point on the public parcel map.
Content-Type:
application/json
{
"type": "object",
"properties": {
"lat": {
"type": "number",
"minimum": -90,
"maximum": 90
},
"lng": {
"type": "number",
"minimum": -180,
"maximum": 180
}
},
"required": [
"lat",
"lng"
]
}
Content-Type:
application/json
{
"type": "object",
"additionalProperties": true
}