HitApply Themes API
The Themes API from HitApply — 14 operation(s) for themes.
The Themes API from HitApply — 14 operation(s) for themes.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/hitapply-app:hitapply-app-themes-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a 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: 3.2.0
info:
title: Fast Themes API
version: 0.1.0
tags:
- name: Themes
paths:
/api/themes:
get:
summary: Get Themes
operationId: get_themes_api_themes_get
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
tags:
- Themes
post:
summary: Create Theme
operationId: create_theme_api_themes_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ThemeBody'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
tags:
- Themes
/api/themes/order:
put:
summary: Reorder Themes
operationId: reorder_themes_api_themes_order_put
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TemplateOrderBody'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
tags:
- Themes
/api/themes/{theme_id}/duplicate:
post:
summary: Duplicate Theme
operationId: duplicate_theme_api_themes__theme_id__duplicate_post
parameters:
- name: theme_id
in: path
required: true
schema:
type: string
title: Theme Id
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
tags:
- Themes
/api/themes/{theme_id}/rename:
post:
summary: Rename Theme
operationId: rename_theme_api_themes__theme_id__rename_post
parameters:
- name: theme_id
in: path
required: true
schema:
type: string
title: Theme Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ThemeBody'
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
tags:
- Themes
/api/themes/{theme_id}:
delete:
summary: Delete Theme
operationId: delete_theme_api_themes__theme_id__delete
parameters:
- name: theme_id
in: path
required: true
schema:
type: string
title: Theme Id
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
tags:
- Themes
/api/themes/{theme_id}/primary:
post:
summary: Set Primary Theme
operationId: set_primary_theme_api_themes__theme_id__primary_post
parameters:
- name: theme_id
in: path
required: true
schema:
type: string
title: Theme Id
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
tags:
- Themes
/api/themes/{theme_id}/writing-prefs:
get:
summary: Get Theme Writing Prefs
operationId: get_theme_writing_prefs_api_themes__theme_id__writing_prefs_get
parameters:
- name: theme_id
in: path
required: true
schema:
type: string
title: Theme Id
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
tags:
- Themes
put:
summary: Set Theme Writing Prefs
operationId: set_theme_writing_prefs_api_themes__theme_id__writing_prefs_put
parameters:
- name: theme_id
in: path
required: true
schema:
type: string
title: Theme Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ResumeWritingPrefsBody'
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
tags:
- Themes
/api/themes/{theme_id}/saved-content:
get:
summary: Get Theme Saved Content
description: This template's saved resume, if it has been set up.
operationId: get_theme_saved_content_api_themes__theme_id__saved_content_get
parameters:
- name: theme_id
in: path
required: true
schema:
type: string
title: Theme Id
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
tags:
- Themes
put:
summary: Save Theme Saved Content
operationId: save_theme_saved_content_api_themes__theme_id__saved_content_put
parameters:
- name: theme_id
in: path
required: true
schema:
type: string
title: Theme Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SavedContentBody'
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
tags:
- Themes
/api/themes/{theme_id}/saved-content/init:
post:
summary: Init Theme Saved Content
description: 'Copy a Profile into this template''s saved resume. No model is called.
Idempotent by refusal: content that already exists is returned untouched,
so a double click cannot discard a curated resume.'
operationId: init_theme_saved_content_api_themes__theme_id__saved_content_init_post
parameters:
- name: theme_id
in: path
required: true
schema:
type: string
title: Theme Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SavedContentInitBody'
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
tags:
- Themes
/api/themes/{theme_id}/content:
post:
summary: Set Theme Content
operationId: set_theme_content_api_themes__theme_id__content_post
parameters:
- name: theme_id
in: path
required: true
schema:
type: string
title: Theme Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/TemplateContentBody'
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
tags:
- Themes
/api/themes/{theme_id}/saved-content/save-as:
post:
summary: Save Theme Resume As
operationId: save_theme_resume_as_api_themes__theme_id__saved_content_save_as_post
parameters:
- name: theme_id
in: path
required: true
schema:
type: string
title: Theme Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SaveAsBody'
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
tags:
- Themes
/api/themes/{theme_id}/saved-content/save:
post:
summary: Save Theme Resume
operationId: save_theme_resume_api_themes__theme_id__saved_content_save_post
parameters:
- name: theme_id
in: path
required: true
schema:
type: string
title: Theme Id
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
tags:
- Themes
/api/themes/from-resume:
post:
summary: Create Theme From Resume
description: 'Reconstruct an uploaded resume''s presentation as a template.
A template holds presentation and nothing else, so the user''s Profile plays
no part here. It used to, only to feed a compile probe through the legacy
assembler — the probe that failed every conforming reconstruction.'
operationId: create_theme_from_resume_api_themes_from_resume_post
parameters:
- name: name
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Name
requestBody:
required: true
content:
multipart/form-data:
schema:
$ref: '#/components/schemas/Body_create_theme_from_resume_api_themes_from_resume_post'
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
tags:
- Themes
/api/themes/import-tex:
post:
summary: Import Theme Tex
description: 'Convert an uploaded resume .tex into a conforming template, as a draft.
Everything that can fail happens before the row exists, so a bad upload or a
model failure leaves nothing behind. What is stored is never ready: the
owner reviews the conversion in the editor and saves it themselves, and only
that save can make it usable or promote it to primary.'
operationId: import_theme_tex_api_themes_import_tex_post
requestBody:
content:
multipart/form-data:
schema:
$ref: '#/components/schemas/Body_import_theme_tex_api_themes_import_tex_post'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
tags:
- Themes
components:
schemas:
SavedContentInitBody:
properties:
profile_id:
anyOf:
- type: string
- type: 'null'
title: Profile Id
type: object
title: SavedContentInitBody
SavedContentBody:
properties:
expected_revision:
type: integer
title: Expected Revision
content:
additionalProperties: true
type: object
title: Content
type: object
required:
- expected_revision
- content
title: SavedContentBody
Body_create_theme_from_resume_api_themes_from_resume_post:
properties:
file:
type: string
contentMediaType: application/octet-stream
title: File
type: object
required:
- file
title: Body_create_theme_from_resume_api_themes_from_resume_post
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
ResumeWritingPrefsBody:
properties:
content_source:
anyOf:
- type: string
- type: 'null'
title: Content Source
tailoring_mode:
anyOf:
- type: string
- type: 'null'
title: Tailoring Mode
bolding_enabled:
anyOf:
- type: boolean
- type: 'null'
title: Bolding Enabled
page_limit_enabled:
anyOf:
- type: boolean
- type: 'null'
title: Page Limit Enabled
custom_instructions_enabled:
anyOf:
- type: boolean
- type: 'null'
title: Custom Instructions Enabled
use_primary_only:
anyOf:
- type: boolean
- type: 'null'
title: Use Primary Only
page_limit:
anyOf:
- type: integer
- type: 'null'
title: Page Limit
bolding_style:
anyOf:
- type: string
- type: 'null'
title: Bolding Style
custom_instructions:
anyOf:
- type: string
- type: 'null'
title: Custom Instructions
summary:
anyOf:
- type: boolean
- type: 'null'
title: Summary
additionalProperties: false
type: object
title: ResumeWritingPrefsBody
Body_import_theme_tex_api_themes_import_tex_post:
properties:
file:
type: string
contentMediaType: application/octet-stream
title: File
name:
type: string
title: Name
default: ''
saved_resume_id:
type: string
title: Saved Resume Id
default: ''
type: object
required:
- file
title: Body_import_theme_tex_api_themes_import_tex_post
TemplateContentBody:
properties:
source:
type: string
enum:
- profile
- saved_resume
- new_from_profile
- own
title: Source
saved_resume_id:
anyOf:
- type: string
- type: 'null'
title: Saved Resume Id
profile_id:
anyOf:
- type: string
- type: 'null'
title: Profile Id
additionalProperties: false
type: object
required:
- source
title: TemplateContentBody
description: 'What a résumé template''s content should be: built from the Profile, a
copy of a saved resume, a new resume of its own started from a Profile, or
the resume it already keeps (`own`).'
SaveAsBody:
properties:
name:
type: string
title: Name
replace:
type: boolean
title: Replace
default: false
type: object
required:
- name
title: SaveAsBody
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
input:
title: Input
ctx:
type: object
title: Context
type: object
required:
- loc
- msg
- type
title: ValidationError
ThemeBody:
properties:
name:
type: string
title: Name
catalog_template_id:
anyOf:
- type: string
- type: 'null'
title: Catalog Template Id
saved_resume_id:
anyOf:
- type: string
- type: 'null'
title: Saved Resume Id
type: object
required:
- name
title: ThemeBody
TemplateOrderBody:
properties:
ids:
items:
type: string
type: array
title: Ids
type: object
required:
- ids
title: TemplateOrderBody