G
Use LinkCrypt with ChatGPT Actions + Codex
Wire a tool-enabled OpenAI runtime (Custom GPT Actions, Codex, or OpenAI automations) to your LinkCrypt library using bearer authentication — search saved links and create new ones through API calls.
Setup overview
- Create a LinkCrypt account and generate an API key in Preferences.
- Use a runtime that can execute HTTP tools. Plain ChatGPT chat does not call your private API by itself.
- In ChatGPT Custom GPT → Configure → Actions → Create new action, paste the OpenAPI fragment below (or import as schema). For Codex/OpenAI automations, map the same endpoints as tools.
- Set authentication to API Key, header name
Authorization, valueBearer <stored-secret>. - Tell the GPT your base URL is
https://getlinkcrypt.com/api/v1if the schema host is not auto-detected.
For OpenAI Assistants with function calling, map the same operations as tools using the paths below.
OpenAPI 3.0 schema (Actions)
Paste into Custom GPT Actions. Adjust descriptions for your GPT's behavior. All paths are under the server URL https://getlinkcrypt.com/api/v1.
openapi: 3.0.0
info:
title: LinkCrypt API
version: 1.0.0
servers:
- url: https://getlinkcrypt.com/api/v1
paths:
/search:
get:
operationId: searchLinks
summary: Full-text search the link library
parameters:
- name: q
in: query
required: true
schema: { type: string }
- name: limit
in: query
schema: { type: integer, default: 20 }
- name: offset
in: query
schema: { type: integer, default: 0 }
responses:
'200': { description: OK }
/links:
get:
operationId: listLinks
summary: List links with filters
parameters:
- name: q
in: query
schema: { type: string }
- name: tags
in: query
description: Comma-separated tags (AND)
schema: { type: string }
- name: domain
in: query
schema: { type: string }
- name: limit
in: query
schema: { type: integer }
- name: offset
in: query
schema: { type: integer }
responses:
'200': { description: OK }
post:
operationId: createLink
summary: Save a new link
requestBody:
required: true
content:
application/json:
schema:
type: object
required: [url]
properties:
url: { type: string, format: uri }
title: { type: string }
description: { type: string }
tags:
type: array
items: { type: string }
responses:
'201': { description: Created }
/links/{id}:
get:
operationId: getLink
summary: Get one link
parameters:
- name: id
in: path
required: true
schema: { type: string }
responses:
'200': { description: OK }
patch:
operationId: updateLink
summary: Update link metadata
parameters:
- name: id
in: path
required: true
schema: { type: string }
requestBody:
content:
application/json:
schema:
type: object
properties:
title: { type: string }
url: { type: string }
description: { type: string }
is_favorite: { type: boolean }
responses:
'200': { description: OK }
/tags:
get:
operationId: listTags
summary: List all tags
responses:
'200': { description: OK }
/analyze/stats:
get:
operationId: libraryStats
summary: Library statistics
responses:
'200': { description: OK }
Safety note
Avoid exposing your real API key in public GPTs. Use private Custom GPTs or server-side proxies for team setups. Consider revoking keys in Preferences if they leak.