Skip to content
SEO AI Pal
SEO AI PalSign up

Setup in six moves

Online backlink checker tool as a custom GPT Action, step by step

Custom GPTs, introduced by OpenAI in November 2023, can call an HTTP API through an Action. Here is the smallest working schema for backlink data, and the order to test it in.

SEO AI Pal research team ·

From empty GPT to a first real answer

  1. 1

    Sign in and copy a key

    Google sign-in only, no card. The account opens with $100 of credit, which is 1,000,000 credits. Copy the sk_live_ key from the dashboard at /account.php.

  2. 2

    Open the Actions panel of your GPT

    Create or edit a custom GPT, scroll to Actions and choose to add one. You will see a box for an OpenAPI schema and a place to set authentication.

  3. 3

    Paste the schema below

    It exposes four read-only actions on purpose. Fewer doors means fewer surprise charges.

  4. 4

    Set authentication to an API key

    Choose a bearer-style key and paste yours. The server also accepts Authorization: Bearer sk_..., so the header route works and keeps the key out of chat transcripts.

  5. 5

    Test on a free action first

    Ask for an overview of a domain you know. overview is free and needs no credits, so you can break things at no cost.

  6. 6

    Add the instructions

    A schema alone does not stop guessing. Paste the wording from the system prompt runbook into the GPT's instruction box.

The schema, trimmed to what an assistant needs

Every parameter below exists in the product. per is capped at 100 here so that one reply never drags 5,000 rows into the conversation.

yaml
openapi: 3.1.0
info:
  title: Backlink lookups
  version: "1.0"
servers:
  - url: https://seoaipal.com
paths:
  /api.php:
    get:
      operationId: linkLookup
      summary: One backlink action for one domain
      parameters:
        - name: action
          in: query
          required: true
          schema:
            type: string
            enum: [overview, refdomains, anchors, toppages]
        - name: q
          in: query
          required: true
          schema: {type: string}
          description: Bare domain, for example example.com
        - name: per
          in: query
          schema: {type: integer, minimum: 10, maximum: 100}
      responses:
        "200":
          description: JSON with an ok flag

Which actions to expose, and what each one costs

Costs are the published per-call credits. One credit is $0.0001.
ActionCreditsWhy an assistant wants it
overview0 (free)First look at a domain, rating included.
refdomains2Who links to the domain, one row per referring site.
anchors2The link text pointing at it.
toppages2Which pages attract the links.
bulk_dr1Up to 2,000 domains per call. Leave out until you need it.

Why we cap rows and drop the dangerous ones

A call bills once whatever the row count, up to 1,000 rows. That is friendly to your wallet. It is hostile to a chat window. Fifty thousand characters of JSON push the instructions out of the model's attention, and it starts to improvise.

So cap per. A hundred referring domains is enough for a conversation, and you can ask for page two on purpose. If you want the full export, call the API from a script and hand the assistant a summary.

Mind the audience. This online backlink checker tool is also free to open in a browser, so a teammate who dislikes chat can still look up the same domain. Keep the GPT private or link-only while you test, because anyone who can chat with it can spend the balance behind its key. The guardrails are in the budget page.

A note on freshness

The index refreshes roughly monthly. Add one line to your instructions telling the GPT to say so when a link you expect is missing, instead of calling the site broken.

Setup questions we hear

Does the GPT need my Google login too?
No. Your Google sign-in only creates the account and the key. The GPT never sees it. It sends the sk_ key and nothing else.
Can I use the same schema in Claude or Gemini?
The endpoint is plain GET with JSON back, so any assistant that can call an HTTP tool can use it. Each product describes tools in its own format, so you rewrite the wrapper, not the API.
What happens when the balance reaches zero?
The server answers HTTP 402. Tell the GPT in its instructions to report that status in plain words and stop retrying. Free actions keep working.