Thanks.io Subaccounts API

The Subaccounts API from Thanks.io — 2 operation(s) for subaccounts.

Operations 5

GET /sub-accounts/ List All #
POST /sub-accounts/ Create Sub Account #
GET /sub-accounts/{subAccountId} Get Details #
PUT /sub-accounts/{subAccountId} Update Sub Account #
DELETE /sub-accounts/{subAccountId} Delete Sub Account. #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/thanks-io:thanks-io-subaccounts-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

thanks-io-subaccounts-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: thanks.io Sub Accounts API
  description: Use the thanks.io API to send postcards, letters, notecards, windowless letters, and gift cards.
  contact:
    url: https://thanks.io
    email: support@thanks.io
  version: 1.0.0
servers:
- url: https://api.thanks.io/api/v2
  description: The main API server for thanks.io
security:
- bearerAuth: []
tags:
- name: Subaccounts
paths:
  /sub-accounts/:
    get:
      tags:
      - Subaccounts
      operationId: getSubAccounts
      summary: List All
      description: List all available sub-accounts.
      responses:
        '200':
          description: OK
          headers:
            Content-Type:
              schema:
                type: string
                example: application/json
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/sub-account'
              example:
                data:
                - $ref: '#/components/examples/sub-account-example'
        '403':
          $ref: '#/components/responses/Unauthorized'
    post:
      tags:
      - Subaccounts
      operationId: createSubAccount
      summary: Create Sub Account
      description: Create a new sub-account.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/sub-account-create'
      responses:
        '201':
          description: Created
          headers:
            Content-Type:
              schema:
                type: string
                example: application/json
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/sub-account'
              examples:
                sub-account:
                  value:
                    user_id: 2
                    title: API Update
                    return_name: Your Business
                    return_address: 123 Main Street
                    return_address2: Apartment 1
                    return_city: Fake City
                    return_state: NY
                    return_postal_code: null
                    updated_at: '2025-09-09 18:26:51'
                    created_at: '2025-09-09 18:26:51'
                    id: 50
        '403':
          $ref: '#/components/responses/Unauthorized'
  /sub-accounts/{subAccountId}:
    parameters:
    - name: subAccountId
      in: path
      description: ID of sub-account
      required: true
      schema:
        type: integer
        example: 56
    get:
      tags:
      - Subaccounts
      operationId: getSubAccountDetails
      summary: Get Details
      description: Gets a sub-account by ID. Returns a single sub-account object. branding_fields is an object that contains branding information for the sub-account - it can only be set via the thanks.io dashboard
      responses:
        '200':
          description: Successful Response
          headers:
            Content-Type:
              schema:
                type: string
                example: application/json
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/sub-account'
              examples:
                sub-account:
                  $ref: '#/components/examples/sub-account-example'
        '403':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      tags:
      - Subaccounts
      operationId: updateSubAccount
      summary: Update Sub Account
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/sub-account-create'
      responses:
        '201':
          description: Updated
          headers:
            Content-Type:
              schema:
                type: string
                example: application/json
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/sub-account'
              examples:
                sub-account:
                  value:
                    user_id: 2
                    title: API Update
                    return_name: Your Business
                    return_address: 123 Main Street
                    return_address2: Apartment 1
                    return_city: Fake City
                    return_state: NY
                    return_postal_code: null
                    updated_at: '2025-09-09 18:26:51'
                    created_at: '2025-09-09 18:26:51'
                    id: 50
        '403':
          $ref: '#/components/responses/Unauthorized'
    delete:
      tags:
      - Subaccounts
      operationId: deleteSubAccount
      summary: Delete Sub Account.
      responses:
        '200':
          description: Successful Response
          headers:
            Content-Type:
              schema:
                type: string
                example: application/json
          content:
            application/json:
              schema:
                type: object
              example:
                message: success
        '403':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  responses:
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                example: Not Found
    Unauthorized:
      description: Access token is missing or invalid
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                example: Unauthorized
  schemas:
    sub-account:
      type: object
      properties:
        id:
          type: integer
          example: 1
        user_id:
          type: integer
          example: 2
        title:
          type: string
          example: My Sub Account
        return_name:
          type: string
          example: John Smith
        return_address:
          type: string
          example: 123 Smith Street
        return_address2:
          type: string
          example: Apartment 2
        return_city:
          type: string
          example: Denver
        return_state:
          type: string
          example: CO
        return_postal_code:
          type: string
          example: '12345'
    sub-account-create:
      type: object
      required:
      - title
      properties:
        title:
          type: string
          example: My Sub Account
        return_name:
          type: string
          example: John Smith
        return_address:
          type: string
          example: 123 Smith Street
        return_address2:
          type: string
          example: Apartment 2
        return_city:
          type: string
          example: Denver
        return_state:
          type: string
          example: CO
        return_postal_code:
          type: string
          example: '12345'
  examples:
    sub-account-example:
      summary: Example Sub Account
      value:
        id: 1
        user_id: 2
        title: My New Sub Account
        return_name: John Smith
        return_address: 123 Smith Street 11
        return_address2: Apt 1
        return_city: Denver
        return_state: CO
        return_postal_code: '12345'
        message_background_url: null
        postcard6x9_background_url: null
        notecard_background_url: null
        windowedletter_background_url: null
        windowlessletter_background_url: null
        branding_fields:
          accentColor: '#5f01d1'
          symbol: ''
          logo: https://s3.amazonaws.com/content.thanks.io/templates/dynamic-images/5dcb82c0-f258-11ef-9c99-e542d768ea52.png
          disclaimer: null
          headshot: null
          name: John Gray
          email: test@test.com
          phone: '1234567890'
          company: null
          domain: null
          set: true
          first_name: John
        created_at: '2020-02-14 20:50:02'
        updated_at: '2025-07-16 19:03:31'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Bearer token authentication using your thanks.io API key
externalDocs:
  description: Learn more about thanks.io
  url: https://docs.thanks.io
x-mint:
  mcp:
    enabled: true
x-mcp:
  enabled: true