Connect with us

MARKETING

14 Real-Life Examples of CTA Copy YOU Should Copy

Published

on

14 Real-Life Examples of CTA Copy YOU Should Copy

Moving people to act is a challenging task. With just a few words, CTA copy needs to show that you see where your audience is coming from and empathize with their issues. That CTA (call-to-action) must also motivate them to move toward a solution.

If the CTA copy you craft doesn’t keep your visitors’ attention, it can hurt your click-through rate, lead conversions, and ultimately, sales.

Download Now: 28 Free CTA Templates

So, a CTA needs to inspire, encourage, and coax a person into action, but not bore, scold, or distract. Clearly, writing CTAs is a tricky balance of skill, influence, and awareness. But how can you write the perfect CTA copy on your own?

Keep reading or skip to a section to learn:

When marketers think about call-to-action (CTA) creation, the first thing many of them tend to focus on is design. And while CTA design is critical to initially drawing the attention of your visitors, it’s CTA copy that has to be compelling enough to get them clicking.

Bring your calls-to-action to life with HubSpot’s 28 Free CTA Templates. Simply add your own copy, adjust designs as needed, save as an image, and upload to your CMS.

Call-to-action templates, HubSpot

Looking at CTA examples can also help when you’re writing. The following examples can inspire you and compel your visitors to click and convert.

Real-Life Examples of CTA Copy YOU Should Copy

1. HubSpot

CTA copy example: HubSpot

HubSpot is all about growing better, and visitors quickly get that message from the call-to-action at the top of the page. Then, the copy outlines how HubSpot can help your business grow better.

The next CTA is highlighted with a button, “Start free or get a demo.” This gives you two different choices with a single click, meeting the needs of many different users with a single action.

2. Kate Spade

CTA copy example: Kate Spade

This compelling CTA asks readers to “treat yourself” and “shop self-gifting.” The contrast of traditional Valentine’s day terms like “romancing” and “heart” with a unique statement makes this CTA stand out. It also highlights a specific audience that’s often ignored on this holiday, inviting them to flip through and “make the moment all about you.”

3. KLM

CTA copy example: KLM

The language of this call-to-action (“50,000 Bonus Miles online offer”) is written in a way that gives visitors context even if they skim over the copy listed below it. The bottom line of text uses punctuation and uppercase letters to emphasize urgency. It’s effective because it’s both specific and action-oriented.

4. Duolingo

CTA copy example: Duolingo

The copy of the call-to-action button here is so descriptive that visitors can move immediately into action, either getting started or continuing to use the app. This straightforward CTA tells you exactly what this app does and why you want to use it. Remember — sometimes being to the point is all you need to drive conversions.

5. Eventbrite

CTA copy example: Eventbrite

The text outside the call-to-action button here serves to create an incentive. The best time to find an event is now, so there’s absolutely no reason why you shouldn’t just go ahead and find one. While this app is best known for creating events online, this CTA shows that Eventbrite also invests in promoting events posted on the app, creating more reasons to use the platform.

See also  Your stack's past and limitations

6. American Red Cross

CTA copy example: American Red Cross

This is an inspirational CTA example. It starts by reminding each individual who visits the site of their potential impact with one phrase — “You Can Make a Difference.” Then, it outlines how a financial gift can help. This framework creates an experience that feels more inspiring and less transactional, while still supporting the goal of collecting donations.

7. AWS

CTA copy example: AWS

In this example, the text above the call-to-action — “Start Building on AWS Today” — gives specific details about the action visitors will be taking if they click. It reveals the ‘how’ of “Get Started for Free” too, with detailed sections for builders and decision makers. This copy clearly sets expectations before conversion so visitors know exactly what they’ll get in return for their click.

8. GoTo

CTA copy example: GoTo

This CTA starts with “One solution. So many ways to stay connected.” It goes on to describe the value of their cloud phone system. Then GoTo uses CTA buttons to clarify exactly what visitors will get after their click(s): either “See Plans and Pricing” or “Get a Demo.” The lesson is simple, if your button text is short and simple, clarifying copy can give visitors an extra boost to click.

9. Fitbit

CTA copy example: Fitbit

In this example, the CTA copy tackles the problem of decision overload. Some companies use a CTA to compare their products to a competitor, then offer their best product as the best choice. Instead, this CTA assumes that the issue isn’t whether to purchase from Fitbit, but which Fitbit product to buy.

The CTA copy calls out a problem in a friendly way — “Trouble choosing? We’ve got you covered.” Then, it offers an immediate solution — “Start the quiz.” While some customers have complicated problems, you can simplify by looking at your ideas from your customers’ perspective.

10. Turbo Tax

CTA copy example: Turbo Tax

When a web page offers many different choices, you may need to display more than one CTA. Each CTA needs to be powerful by itself, conveying a compelling and targeted offer through both visuals and copy. In this example, the language of the calls-to-action here gives readers solid context around three distinct offers.

11. Secureworks

CTA copy example: Secureworks

This call-to-action gives visitors enough information to take the next step without needing to give away much background information. This text is a teaser that tempts people to keep reading, making a subject that can sometimes seem boring (cybersecurity) more enticing.

12. On24

CTA copy example: On24

The main call-to-action in this example urges action. Then, the text above each follow-up CTA highlights details about each offer. This language offers clarity and sets expectations for the visitor, eliminating any guesswork.

13. Upwork

CTA copy example: Upwork

This CTA starts with a motivational message — “How work should work” — then shifts the focus to direct action. The CTA buttons offer two different ways to engage. First, a CTA that asks visitors to start using the platform for hiring. Next, a CTA for people who aren’t sure how to hire and may have a longer buyer journey before they start using the platform.

14. Citizen Group

CTA copy example: Citizen Group

Simple doesn’t mean boring. This example offers creative CTA copy that aligns with the voice of the organization. CTAs like “Building Citizen Brands,” “Connecting Through Culture,” and “Let the Work Speak” offer a clear idea of what visitors will find after clicking. At the same time, the tone and voice of each CTA feels unique to this brand and makes the act of clicking more exciting.

See also  8 Ways to Attract Top Talent as a Startup

Check out this post for more clickable call-to-action examples.

CTA copy is often the shortest copy on the page, so to some, it can be mystifying that it’s often the copy that takes the longest to write. A call-to-action is like a bumblebee, with its big body and tiny wings. It carries a heavy load with just a few carefully chosen words.

To create a CTA that makes the most of every blog, landing page, email, and button, check out these tips.

1. Use active language.

Using active voice puts the reader in the center of the action. It also helps cut down on wordiness. An example of active voice is, “Jack eats cherries to stay fit.”

In contrast, passive voice talks about action in a more roundabout way. For example, “The cherries were eaten by Jack for fitness.”

A writing tool like Hemingway Editor can help you test your copy for active voice.

2. Make your message specific.

CTA copy needs to be original, eye-catching, and drive action. That is a lot of work for a small number of words. So, to meet conversion goals with your CTAs, be specific.

Specific copy focuses on a single focused topic. Then, it uses language that makes it easy to visualize both the problem at hand and how the CTA offer can help.

If you’re not sure whether your language is specific enough, ask a few friends or colleagues to quickly scan your copy. If they all come up with the same meaning, chances are your CTA copy is specific enough. But if your proofreaders come back with different ideas about your offer and meaning, you probably want to rewrite your CTA.

3. Short and simple copy is best.

CTA copy should be easy to scan and understand. People tend to scan when they read online, and CTAs should draw their eye and be quick to take in.

Positive language with simple word choices can also help you create more effective CTAs. Check out this post for more tips on how to write clickable copy.

4. Avoid cliches and trends.

If you’re not sure what to write for your CTA it can be tempting to mimic what competitors are doing or to add a familiar cliche. It’s easy to understand why you’d do this, but it may impact your conversions.

Cliches are easy to remember because you’ve heard them so many times. Jumping on what competitors are doing might make readers think your business lacks creativity.

These approaches to writing copy may give your CTAs meanings that you don’t intend. They’re also something your reader has seen or heard before, so they’re likely to skim over and ignore your call to action.

Instead, use your CTA to tell an authentic story or make an interesting point. This will spark curiosity, and make your reader more likely to engage.

See also  Machine Learning Examples For The Real World

5. Focus on practical value.

Online readers are often searching to solve a problem. And the most effective CTAs make it quick and easy to see that you are offering a solution to that problem.

There are many ways to entice a reader to take a desired action. But being direct can be surprisingly effective. You can often get readers to do what you want them to do by offering a practical solution to a specific problem.

More resources:

6. Connect your CTA to your other copy.

Context is essential when you’re building trust with a customer. For example, say you’re at a dog show. If you’re selling dog food, you have a good chance of making a sale. But if you sell cat food, you may not have as much luck. You might even draw negative attention.

CTA copy needs to align with its context too. If you’re writing a landing page for a product, the action you want users to take needs to match the intention that brought that person to the page. Then the CTA copy you write needs to combine the content of the landing page with that offer.

To do this, use phrases and emotional words that match the two pieces of content that you’re connecting with your CTA. Then, edit your copy to emphasize why that connection is useful to your reader.

This post offers more dos and don’ts for CTA copy.

7. Target a specific audience.

You might have a broad target audience. But CTA copy needs to connect with that audience at a particular moment in their journey to drive conversions.

It’s important to know who you’re speaking to. Is it a new visitor to your site arriving from a referral page? Is it a current customer who’s looking for answers? Or a lead hoping to take the next step toward a purchase?

Take some time to look at your content and offer from a target user’s perspective, then write a CTA that will connect to them at the right moment.

8. Test your CTAs for results.

While you can jump into a new CTA and gauge your results by looking at your conversion data, there’s a less risky way to try out new calls to action.

The most popular way to test CTA copy is with A/B testing. You can test CTA performance on different landing pages, with unique designs, or test different versions of CTA copy.

This testing approach isolates one variable at a time so that you can see how the copy of your CTA is impacting performance. Then you can make changes to optimize your CTAs.

Write Copy That Inspires People to Take Action

When it works a CTA can transform your buyer journey, drive conversions, and fuel business growth. But a lackluster CTA can damage your brand reputation, product sales, and more.

CTA copy is how you connect your marketing and sales content to the value your business offers. Writing this copy is both a craft and an art. It takes practice, research, and hours of effort to put together just the right message.

Use the tips and examples in this post to develop your CTA know-how. Then, track your results to refine your skills and keep learning.

Editor’s note: This post was originally published in July 2012 and has been updated for comprehensiveness.

New Call to action

Source link

Keep an eye on what we are doing
Be the first to get latest updates and exclusive content straight to your email inbox.
We promise not to spam you. You can unsubscribe at any time.
Invalid email address

MARKETING

The Moz Links API: Touch Every Endpoint in Python

Published

on

The Moz Links API: Touch Every Endpoint in Python

The purpose of this Jupyter Notebook is to introduce the Moz Links API using Python. This should work on any notebook hosting environment, such as Google Colab.

If you’re looking at this on Github, the code snippets can be copy/pasted into your own notebook environment. By the time you’ve run this script to the bottom, you will have used every Moz Links API endpoint, and can pick the parts you want for your own project. The official documentation can be found here.

Confused? Be sure to check out my intro to the Moz Links API.

Do global imports

The import statements at the top of a Python program are used to load external resources that are not loaded by default in the Python interpreter. These resources may include libraries or modules that provide additional functionality to the program.

Import statements are usually placed at the top of a program, before any other code is executed. This allows the program to load any necessary resources before they are needed in the program.

Once the resources have been loaded using import statements, they can be used anywhere in the program, not just in the cell where the import statement was written. This allows the program to access the functionality provided by the imported resources throughout its execution.

The libraries here not part of the standard Python library are requests and sqlitedict. You can install the with pip install requests and pip install sqlitedict in your terminal or a Jupyter cell. If you’re using Anaconda, requests is pre-installed.

import json
import requests
from headlines import *
from pprint import pprint
from sqlitedict import SqliteDict as sqldict

Load login values from external file

The code below reads a file named “linksapi.txt” from the “assets” directory, which contains the login credentials, including the access ID and secret key needed to access the Moz API. These credentials are extracted from the file and assigned to two variables named ACCESSID and SECRETKEY. The with statement is used to ensure that the file is properly closed after it’s been read. Create a file whose contents look like this with your credentials manually retreived from moz.com:

ACCESSID: mozscape-1234567890
SECRETKEY: 1234567890abcdef1234567890abcdef

Once the credentials are extracted from the file, they are stored in a tuple named AUTH_TUPLE. This tuple can be used as an argument to the Moz API functions to authenticate and authorize access to the data.

The purpose of this approach is to avoid hard-coding sensitive login credentials directly in the program, which could pose a security risk if the code was shared or published publicly. Instead, the credentials are kept in a separate file that is not included in the repository, and can be easily created and updated as needed. This way, the code can be shared without exposing the credentials to the public.

with open("../assets/linksapi.txt") as fh:
    ACCESSID, SECRETKEY = [x.strip().split(" ")[1] for x in fh.readlines()]

AUTH_TUPLE = (ACCESSID, SECRETKEY)  # Don't show contents

Configure variables

In this code, there are several configuration variables that are used to set up the API call to the Moz Links API.

The first variable, COMMON_ENDPOINT, is a constant that stores the endpoint URL for the Moz API. The second variable, sub_endpoint, is a string that represents the endpoint subpath for the anchor text data, which will be appended to the COMMON_ENDPOINT URL to form the complete API endpoint URL.

The fourth variable, data_dict, is a dictionary that contains the parameters for the API request. In this case, the data_dict specifies the target URL for which we want to retrieve anchor text data, the scope of the data (in this case, page-level), and a limit of 1 result.

Finally, the json_string variable is created by converting the data_dict dictionary into a JSON-formatted string using the json.dumps() function. This string will be used as the request body when making the API call.

These variables are used to configure and parameterize the API request, and can be modified to perform any data_dict request against any Moz Links API sub_endpoint.

COMMON_ENDPOINT = "https://lsapi.seomoz.com/v2/"
sub_endpoint = "anchor_text"
endpoint = COMMON_ENDPOINT + sub_endpoint
data_dict = {"target": "moz.com/blog", "scope": "page", "limit": 1}
json_string = json.dumps(data_dict)

Actually hit the API (ensure success)

In JupyterLab, the last line of a code cell is automatically printed to the output area without requiring an explicit print() statement. The code you provided is using the requests module to send a POST request to a URL url with data in the form of a JSON string json_string. The authentication details are passed using the AUTH_TUPLE variable.

After sending the request, the response object r is printed using the print() statement. This will print the HTTP status code, such as 200 for success, 404 for not found, etc., along with the response headers.

Finally, the .json() method is called on the response object response to parse the response data as JSON and return it as a Python dictionary. This dictionary can be assigned to a variable, used for further processing, or simply printed to the output area without requiring an explicit print() statement due to JupyterLab’s automatic printing behavior for the last line of a code cell.

response = requests.post(endpoint, data=json_string, auth=AUTH_TUPLE)
pprint(response.json())

Outputs:

{'next_token': 'JYkQVg4s9ak8iRBWDiz1qTyguYswnj035nqjRF0IbW96IGJsb2e58hGzcmSomw==',
 'results': [{'anchor_text': 'moz',
              'external_pages': 7183,
              'external_root_domains': 2038}]}

List Sub-endpoints

This code defines a list of different sub-endpoints that can be appended to a common URL prefix to make different API endpoints. An API endpoint is a URL where an API can be accessed by clients. It is a point of entry to the application that acts as a gatekeeper between the client and the server. Each endpoint is identified by a unique URL, which can be used to interact with the API.

In this code, the list of sub-endpoints is defined in the sub_endpoints variable, and each endpoint is represented as a string. The for loop iterates over the list, prints the index number and name of each sub-endpoint using the print function, and increments the index by 1. The enumerate function is used to generate a sequence of pairs consisting of an index and a value from the list.

This code is useful for exploring the available endpoints for a particular API and for selecting the endpoint that corresponds to the desired functionality. By changing the sub-endpoint in the URL, clients can access different resources or perform different operations on the server.

sub_endpoints = [
    "anchor_text",
    "final_redirect",
    "global_top_pages",
    "global_top_root_domains",
    "index_metadata",
    "link_intersect",
    "link_status",
    "linking_root_domains",
    "links",
    "top_pages",
    "url_metrics",
    "usage_data",
]
for i, sub_endpoint in enumerate(sub_endpoints):
    print(i + 1, sub_endpoint)

Outputs:

1 anchor_text
2 final_redirect
3 global_top_pages
4 global_top_root_domains
5 index_metadata
6 link_intersect
7 link_status
8 linking_root_domains
9 links
10 top_pages
11 url_metrics
12 usage_data

Human-friendly labels

This code defines two lists: names and descriptions. The names list contains human-friendly labels for the set of sub-endpoints, while the descriptions list provides a brief description of each endpoint. The two lists are kept in the same order as the points list defined earlier in the code.

By keeping the three lists in the same order, they can be “zipped” together into a single list of tuples using the zip function. This produces a new list where each tuple contains the name, endpoint, and description for a particular API endpoint. This makes it easy to display a user-friendly summary of each API endpoint with its name and description.

The zip function combines the elements of the three lists element-wise, creating a tuple of the first elements from each list, then a tuple of the second elements, and so on. The resulting list of tuples can be iterated over, and each tuple unpacked to access the individual name, endpoint, and description elements for each API endpoint.

names = [
    "Anchor Text",
    "Final Redirect",
    "Global Top Pages",
    "Global Top Root Domains",
    "Index Metadata",
    "Link Intersect",
    "Link Status",
    "Linking Root Domains",
    "Links",
    "Top Pages",
    "URL Metrics",
    "Usage Data",
]

descriptions = [
    "Use this endpoint to get data about anchor text used by followed external links to a target. Results are ordered by external_root_domains descending.",
    "Use this endpoint to get data about anchor text used by followed external links to a target. Results are ordered by external_root_domains descending.",
    "This endpoint returns the top 500 pages in the entire index with the highest Page Authority values, sorted by Page Authority. (Visit the Top 500 Sites list to explore the top root domains on the web, sorted by Domain Authority.)",
    "This endpoint returns the top 500 pages in the entire index with the highest Page Authority values, sorted by Page Authority. (Visit the Top 500 Sites list to explore the top root domains on the web, sorted by Domain Authority.)",
    "This endpoint returns the top 500 pages in the entire index with the highest Page Authority values, sorted by Page Authority. (Visit the Top 500 Sites list to explore the top root domains on the web, sorted by Domain Authority.)",
    "Use this endpoint to get sources that link to at least one of a list of positive targets and don't link to any of a list of negative targets.",
    "Use this endpoint to get information about links from many sources to a single target.",
    "Use this endpoint to get linking root domains to a target.",
    "Use this endpoint to get links to a target.",
    "This endpoint returns top pages on a target domain.",
    "Use this endpoint to get metrics about one or more urls.",
    "This endpoint Returns the number of rows consumed so far in the current billing period. The count returned might not reflect rows consumed in the last hour. The count returned reflects rows consumed by requests to both the v1 (Moz Links API) and v2 Links APIs.",
]

# Simple zipping example
list(zip(names, sub_endpoints, descriptions))

Outputs:

[('Anchor Text',
  'anchor_text',
  'Use this endpoint to get data about anchor text used by followed external links to a target. Results are ordered by external_root_domains descending.'),
 ('Final Redirect',
  'final_redirect',
  'Use this endpoint to get data about anchor text used by followed external links to a target. Results are ordered by external_root_domains descending.'),
 ('Global Top Pages',
  'global_top_pages',
  'This endpoint returns the top 500 pages in the entire index with the highest Page Authority values, sorted by Page Authority. (Visit the Top 500 Sites list to explore the top root domains on the web, sorted by Domain Authority.)'),
 ('Global Top Root Domains',
  'global_top_root_domains',
  'This endpoint returns the top 500 pages in the entire index with the highest Page Authority values, sorted by Page Authority. (Visit the Top 500 Sites list to explore the top root domains on the web, sorted by Domain Authority.)'),
 ('Index Metadata',
  'index_metadata',
  'This endpoint returns the top 500 pages in the entire index with the highest Page Authority values, sorted by Page Authority. (Visit the Top 500 Sites list to explore the top root domains on the web, sorted by Domain Authority.)'),
 ('Link Intersect',
  'link_intersect',
  "Use this endpoint to get sources that link to at least one of a list of positive targets and don't link to any of a list of negative targets."),
 ('Link Status',
  'link_status',
  'Use this endpoint to get information about links from many sources to a single target.'),
 ('Linking Root Domains',
  'linking_root_domains',
  'Use this endpoint to get linking root domains to a target.'),
 ('Links', 'links', 'Use this endpoint to get links to a target.'),
 ('Top Pages',
  'top_pages',
  'This endpoint returns top pages on a target domain.'),
 ('URL Metrics',
  'url_metrics',
  'Use this endpoint to get metrics about one or more urls.'),
 ('Usage Data',
  'usage_data',
  'This endpoint Returns the number of rows consumed so far in the current billing period. The count returned might not reflect rows consumed in the last hour. The count returned reflects rows consumed by requests to both the v1 (Moz Links API) and v2 Links APIs.')]

Show an example request for each endpoint

This is a list of API requests in Python dict format, where each dictionary represents a request to a specific endpoint. Don’t hurt your brain too much trying to read it. Just know that I lifted each example from the original Moz documentation and listed them all here in order as nested Python dicts.

See also  How To Incorporate More Context In Your Social Media Content

You could call the format is a dict of dicts, where each sub-dictionary corresponds to a specific endpoint, same order as the sub_endpoints, names, and descriptions lists for easy combining. The output of running the below cell is doing that list-combining to document every sub_endpoint.

dict_of_dicts = {
    "anchor_text": {"target": "moz.com/blog", "scope": "page", "limit": 5},
    "links": {
        "target": "moz.com/blog",
        "target_scope": "page",
        "filter": "external+nofollow",
        "limit": 1,
    },
    "final_redirect": {"page": "seomoz.org/blog"},
    "global_top_pages": {"limit": 5},
    "global_top_root_domains": {"limit": 5},
    "index_metadata": {},
    "link_intersect": {
        "positive_targets": [
            {"target": "latimes.com", "scope": "root_domain"},
            {"target": "blog.nytimes.com", "scope": "subdomain"},
        ],
        "negative_targets": [{"target": "moz.com", "scope": "root_domain"}],
        "source_scope": "page",
        "sort": "source_domain_authority",
        "limit": 1,
    },
    "link_status": {
        "target": "moz.com/blog",
        "sources": ["twitter.com", "linkedin.com"],
        "source_scope": "root_domain",
        "target_scope": "page",
    },
    "linking_root_domains": {
        "target": "moz.com/blog",
        "target_scope": "page",
        "filter": "external",
        "sort": "source_domain_authority",
        "limit": 5,
    },
    "top_pages": {"target": "moz.com", "scope": "root_domain", "limit": 5},
    "url_metrics": {"targets": ["moz.com", "nytimes.com"]},
    "usage_data": {},
}

for i, sub_endpoint in enumerate(sub_endpoints):
    h1(f"{i + 1}. {names[i]} ({sub_endpoint})")
    print(descriptions[i])
    h4("Example request:")
    pprint(dict_of_dicts[sub_endpoint])
    print()

Outputs:

# 2. Final Redirect (final_redirect)

Use this endpoint to get data about anchor text used by followed external links to a target. Results are ordered by external_root_domains descending.
Example request:

{'page': 'seomoz.org/blog'}

[...]

Write a function that hits the API

If we’re going to hit an API over and over in mostly the same way, we want to spare ourselves re-typing everything all the time. That’s why we define functions. That’s the def in the below cell. Once that cell is run, the moz() function can be used anywhere in this Notebook. You need only feed it the sub_endpoint you want to use and a Python dict of your request. It will return the API’s response.

def moz(sub_endpoint, data_dict):
    """Hits Moz Links API with specified endpoint and request and returns results."""
    json_string = json.dumps(data_dict)
    endpoint = COMMON_ENDPOINT + sub_endpoint
    # Below, data is a string (flattened JSON) but auth is a 2-position tuple.
    response = requests.post(endpoint, data=json_string, auth=AUTH_TUPLE)
    return response

This does not output anything to the screen. It just defines the function.

Conditionally hit the API

The code uses a Python package calledb which provides a persistent dictionary-like object that can be stored on disk using the SQLite database engine. The with statement in the code sets up a context manager for the SqliteDict object, which automatically handles opening and closing the database connection. The database file is stored at ../dbs/linksapi.db

The code iterates through each sub-endpoint in the sub_endpoints list, and checks if that data has already been retrieved. If it hasn’t, the API is called using the moz() function and the result is saved in the SqliteDict. The db.commit() statement ensures that any changes made to the dictionary during the iteration are saved to the database.

See also  What Marketing Myopia Is & Why Every Brand Should Avoid It [+Examples]

The SqliteDict serves as a local cache to prevent the API from being hit every time the code block is run if the data has already been collected. By using this cache, the code reduces the number of API requests required, which is useful when working with APIs that have quota limits. Congratulations, you’re using a database!

with sqldict("../dbs/linksapi.db") as db:
    for sub_endpoint in sub_endpoints:
        if sub_endpoint not in db:
            print(sub_endpoint)
            result = moz(sub_endpoint, dict_of_dicts[sub_endpoint])
            db[sub_endpoint] = result
            db.commit()
            print("API hit and response saved!")
            print()
h2("Done")

This does not output anything to the screen. It saves the results of the API-calls to a local database.

Show the locally-stored API responses

This code uses the sqldict context manager to open the SQLite database containing the previously retrieved API data. It then iterates over the keys in the database, which correspond to the endpoints that were previously retrieved.

For each key, the code prints the endpoint name, description, and the data retrieved from the API. The pprint function is used to print the JSON data in a more human-readable format, with indentation and line breaks that make it easier to read.

with sqldict("../dbs/linksapi.db") as db:
    for i, key in enumerate(db):
        h1(f"{i + 1}. {names[i]} ({key})")
        print(descriptions[i])
        print()
        pprint(db[key].json())
        print()

Outputs:

1. Anchor Text (anchor_text)
Use this endpoint to get data about anchor text used by followed external links to a target. Results are ordered by external_root_domains descending.

{'next_token': 'KIkQVg4s9ak8iRBWDiz1qTyguYswnj035n7bYI0Lc2VvbW96IGJsb2dKBcCodcl47Q==',
 'results': [{'anchor_text': 'moz',
              'external_pages': 7162,
              'external_root_domains': 2026},
             {'anchor_text': 'moz blog',
              'external_pages': 15525,
              'external_root_domains': 1364},
             {'anchor_text': 'the moz blog',
              'external_pages': 7879,
              'external_root_domains': 728},
             {'anchor_text': 'seomoz',
              'external_pages': 17741,
              'external_root_domains': 654},
             {'anchor_text': 'https://moz.com/blog',
              'external_pages': 978,
              'external_root_domains': 491}]}

2. Final Redirect (final_redirect)
Use this endpoint to get data about anchor text used by followed external links to a target. Results are ordered by external_root_domains descending.

{'page': 'moz.com/blog'}

3. Global Top Pages (global_top_pages)
This endpoint returns the top 500 pages in the entire index with the highest Page Authority values, sorted by Page Authority. (Visit the Top 500 Sites list to explore the top root domains on the web, sorted by Domain Authority.)

{'next_token': 'BcLbRwBmrXHK',
 'results': [{'deleted_pages_to_page': 11932076,
              'deleted_pages_to_root_domain': 23942663640,
              'deleted_pages_to_subdomain': 21555752652,
              'deleted_root_domains_to_page': 64700,
              'deleted_root_domains_to_root_domain': 3688228,
              'deleted_root_domains_to_subdomain': 3516235,
              'domain_authority': 96,
              'external_indirect_pages_to_root_domain': 5042652519,
              'external_nofollow_pages_to_page': 31163,
              'external_nofollow_pages_to_root_domain': 12375460748,
              'external_nofollow_pages_to_subdomain': 11393036086,
              'external_pages_to_page': 118102549,
              'external_pages_to_root_domain': 91362310623,
              'external_pages_to_subdomain': 83283626903,
              'external_redirect_pages_to_page': 0,
              'external_redirect_pages_to_root_domain': 445730476,
              'external_redirect_pages_to_subdomain': 432323198,
              'http_code': 5,
              'indirect_root_domains_to_page': 0,
              'indirect_root_domains_to_root_domain': 701121,
              'last_crawled': '2023-01-15',
              'link_propensity': 1.76710455e-05,
              'nofollow_pages_from_page': 0,
              'nofollow_pages_from_root_domain': 2,
              'nofollow_pages_to_page': 31163,
              'nofollow_pages_to_root_domain': 12375623717,
              'nofollow_pages_to_subdomain': 11393036179,
              'nofollow_root_domains_from_page': 0,
              'nofollow_root_domains_from_root_domain': 0,
              'nofollow_root_domains_to_page': 980,
              'nofollow_root_domains_to_root_domain': 3696150,
              'nofollow_root_domains_to_subdomain': 3622349,
              'page': 'www.facebook.com/Plesk',
              'page_authority': 100,
              'pages_crawled_from_root_domain': 1810872,
              'pages_from_page': 0,
              'pages_from_root_domain': 5289,
              'pages_to_page': 118102549,
              'pages_to_root_domain': 91368257043,
              'pages_to_subdomain': 83288001442,
              'redirect_pages_to_page': 0,
              'redirect_pages_to_root_domain': 447189164,
              'redirect_pages_to_subdomain': 433411292,
              'root_domain': 'facebook.com',
              'root_domains_from_page': 0,
              'root_domains_from_root_domain': 32,
              'root_domains_to_page': 491956,
              'root_domains_to_root_domain': 59416650,
              'root_domains_to_subdomain': 50993087,
              'spam_score': 1,
              'subdomain': 'www.facebook.com',
              'title': ''},
             {'deleted_pages_to_page': 5828966,
              'deleted_pages_to_root_domain': 79909678,
              'deleted_pages_to_subdomain': 79909678,
              'deleted_root_domains_to_page': 16552,
              'deleted_root_domains_to_root_domain': 98416,
              'deleted_root_domains_to_subdomain': 98416,
              'domain_authority': 94,
              'external_indirect_pages_to_root_domain': 1177381629,
              'external_nofollow_pages_to_page': 453328699,
              'external_nofollow_pages_to_root_domain': 1643990147,
              'external_nofollow_pages_to_subdomain': 1643990147,
              'external_pages_to_page': 456279611,
              'external_pages_to_root_domain': 2808523112,
              'external_pages_to_subdomain': 2808523112,
              'external_redirect_pages_to_page': 125,
              'external_redirect_pages_to_root_domain': 24941546,
              'external_redirect_pages_to_subdomain': 24941546,
              'http_code': 3,
              'indirect_root_domains_to_page': 723,
              'indirect_root_domains_to_root_domain': 252606,
              'last_crawled': '2023-01-14',
              'link_propensity': 0.118001014,
              'nofollow_pages_from_page': 0,
              'nofollow_pages_from_root_domain': 121166,
              'nofollow_pages_to_page': 453328699,
              'nofollow_pages_to_root_domain': 1644293277,
              'nofollow_pages_to_subdomain': 1644293277,
              'nofollow_root_domains_from_page': 0,
              'nofollow_root_domains_from_root_domain': 67627,
              'nofollow_root_domains_to_page': 9800973,
              'nofollow_root_domains_to_root_domain': 4959747,
              'nofollow_root_domains_to_subdomain': 4959747,
              'page': 'wordpress.com/?ref=footer_blog',
              'page_authority': 100,
              'pages_crawled_from_root_domain': 1731019,
              'pages_from_page': 0,
              'pages_from_root_domain': 1080338,
              'pages_to_page': 456293004,
              'pages_to_root_domain': 2817137385,
              'pages_to_subdomain': 2817137385,
              'redirect_pages_to_page': 125,
              'redirect_pages_to_root_domain': 25449067,
              'redirect_pages_to_subdomain': 25449067,
              'root_domain': 'wordpress.com',
              'root_domains_from_page': 0,
              'root_domains_from_root_domain': 204262,
              'root_domains_to_page': 9878742,
              'root_domains_to_root_domain': 12653294,
              'root_domains_to_subdomain': 12653294,
              'spam_score': 1,
              'subdomain': 'wordpress.com',
              'title': ''},
             {'deleted_pages_to_page': 3904778,
              'deleted_pages_to_root_domain': 23942663640,
              'deleted_pages_to_subdomain': 21555752652,
              'deleted_root_domains_to_page': 11671,
              'deleted_root_domains_to_root_domain': 3688228,
              'deleted_root_domains_to_subdomain': 3516235,
              'domain_authority': 96,
              'external_indirect_pages_to_root_domain': 5042652519,
              'external_nofollow_pages_to_page': 4449343,
              'external_nofollow_pages_to_root_domain': 12375460748,
              'external_nofollow_pages_to_subdomain': 11393036086,
              'external_pages_to_page': 59602588,
              'external_pages_to_root_domain': 91362310623,
              'external_pages_to_subdomain': 83283626903,
              'external_redirect_pages_to_page': 12625,
              'external_redirect_pages_to_root_domain': 445730476,
              'external_redirect_pages_to_subdomain': 432323198,
              'http_code': 5,
              'indirect_root_domains_to_page': 1632,
              'indirect_root_domains_to_root_domain': 701121,
              'last_crawled': '2023-01-16',
              'link_propensity': 1.76710455e-05,
              'nofollow_pages_from_page': 0,
              'nofollow_pages_from_root_domain': 2,
              'nofollow_pages_to_page': 4449343,
              'nofollow_pages_to_root_domain': 12375623717,
              'nofollow_pages_to_subdomain': 11393036179,
              'nofollow_root_domains_from_page': 0,
              'nofollow_root_domains_from_root_domain': 0,
              'nofollow_root_domains_to_page': 28624,
              'nofollow_root_domains_to_root_domain': 3696150,
              'nofollow_root_domains_to_subdomain': 3622349,
              'page': 'www.facebook.com/home.php',
              'page_authority': 100,
              'pages_crawled_from_root_domain': 1810872,
              'pages_from_page': 0,
              'pages_from_root_domain': 5289,
              'pages_to_page': 59602589,
              'pages_to_root_domain': 91368257043,
              'pages_to_subdomain': 83288001442,
              'redirect_pages_to_page': 12626,
              'redirect_pages_to_root_domain': 447189164,
              'redirect_pages_to_subdomain': 433411292,
              'root_domain': 'facebook.com',
              'root_domains_from_page': 0,
              'root_domains_from_root_domain': 32,
              'root_domains_to_page': 239697,
              'root_domains_to_root_domain': 59416650,
              'root_domains_to_subdomain': 50993087,
              'spam_score': 1,
              'subdomain': 'www.facebook.com',
              'title': ''},
             {'deleted_pages_to_page': 3440567,
              'deleted_pages_to_root_domain': 3440700,
              'deleted_pages_to_subdomain': 3440700,
              'deleted_root_domains_to_page': 60839,
              'deleted_root_domains_to_root_domain': 60840,
              'deleted_root_domains_to_subdomain': 60840,
              'domain_authority': 1,
              'external_indirect_pages_to_root_domain': 7,
              'external_nofollow_pages_to_page': 288,
              'external_nofollow_pages_to_root_domain': 1499,
              'external_nofollow_pages_to_subdomain': 1499,
              'external_pages_to_page': 140954613,
              'external_pages_to_root_domain': 140959216,
              'external_pages_to_subdomain': 140959213,
              'external_redirect_pages_to_page': 70,
              'external_redirect_pages_to_root_domain': 70,
              'external_redirect_pages_to_subdomain': 70,
              'http_code': 200,
              'indirect_root_domains_to_page': 0,
              'indirect_root_domains_to_root_domain': 0,
              'last_crawled': '2018-02-05',
              'link_propensity': 0.3998428881,
              'nofollow_pages_from_page': 12,
              'nofollow_pages_from_root_domain': 805,
              'nofollow_pages_to_page': 288,
              'nofollow_pages_to_root_domain': 10799,
              'nofollow_pages_to_subdomain': 10799,
              'nofollow_root_domains_from_page': 2,
              'nofollow_root_domains_from_root_domain': 7,
              'nofollow_root_domains_to_page': 30,
              'nofollow_root_domains_to_root_domain': 30,
              'nofollow_root_domains_to_subdomain': 30,
              'page': 'music.skyrock.com/',
              'page_authority': 100,
              'pages_crawled_from_root_domain': 2546,
              'pages_from_page': 61,
              'pages_from_root_domain': 3382,
              'pages_to_page': 140956009,
              'pages_to_root_domain': 141008586,
              'pages_to_subdomain': 141008583,
              'redirect_pages_to_page': 70,
              'redirect_pages_to_root_domain': 70,
              'redirect_pages_to_subdomain': 70,
              'root_domain': 'music.skyrock.com',
              'root_domains_from_page': 19,
              'root_domains_from_root_domain': 1018,
              'root_domains_to_page': 10609865,
              'root_domains_to_root_domain': 10609868,
              'root_domains_to_subdomain': 10609868,
              'spam_score': 9,
              'subdomain': 'music.skyrock.com',
              'title': 'Blog de Music - DES NEWS, DES CLIPS, DES INTERVIEWS - '
                       'Skyrock.com'},
             {'deleted_pages_to_page': 64159924,
              'deleted_pages_to_root_domain': 17641375891,
              'deleted_pages_to_subdomain': 336246205,
              'deleted_root_domains_to_page': 63574,
              'deleted_root_domains_to_root_domain': 1728606,
              'deleted_root_domains_to_subdomain': 234073,
              'domain_authority': 100,
              'external_indirect_pages_to_root_domain': 19281720347,
              'external_nofollow_pages_to_page': 34635431,
              'external_nofollow_pages_to_root_domain': 7885369442,
              'external_nofollow_pages_to_subdomain': 184067821,
              'external_pages_to_page': 285612569,
              'external_pages_to_root_domain': 55013651418,
              'external_pages_to_subdomain': 1492976347,
              'external_redirect_pages_to_page': 593282,
              'external_redirect_pages_to_root_domain': 250423075,
              'external_redirect_pages_to_subdomain': 5678006,
              'http_code': 302,
              'indirect_root_domains_to_page': 1072,
              'indirect_root_domains_to_root_domain': 231256,
              'last_crawled': '2023-04-01',
              'link_propensity': 0.006248265505,
              'nofollow_pages_from_page': 0,
              'nofollow_pages_from_root_domain': 991472,
              'nofollow_pages_to_page': 34635436,
              'nofollow_pages_to_root_domain': 7948674425,
              'nofollow_pages_to_subdomain': 184068512,
              'nofollow_root_domains_from_page': 0,
              'nofollow_root_domains_from_root_domain': 182393,
              'nofollow_root_domains_to_page': 126656,
              'nofollow_root_domains_to_root_domain': 2322389,
              'nofollow_root_domains_to_subdomain': 304381,
              'page': 'youtube.com/',
              'page_authority': 100,
              'pages_crawled_from_root_domain': 41258009,
              'pages_from_page': 0,
              'pages_from_root_domain': 11109186,
              'pages_to_page': 285612606,
              'pages_to_root_domain': 55255620288,
              'pages_to_subdomain': 1493073570,
              'redirect_pages_to_page': 593282,
              'redirect_pages_to_root_domain': 263224806,
              'redirect_pages_to_subdomain': 5678383,
              'root_domain': 'youtube.com',
              'root_domains_from_page': 0,
              'root_domains_from_root_domain': 257791,
              'root_domains_to_page': 598403,
              'root_domains_to_root_domain': 23134271,
              'root_domains_to_subdomain': 1927717,
              'spam_score': 4,
              'subdomain': 'youtube.com',
              'title': ''}]}

4. Global Top Root Domains (global_top_root_domains)
This endpoint returns the top 500 pages in the entire index with the highest Page Authority values, sorted by Page Authority. (Visit the Top 500 Sites list to explore the top root domains on the web, sorted by Domain Authority.)

{'next_token': 'BcLbRwBmrXHK',
 'results': [{'domain_authority': 100,
              'link_propensity': 0.006248265505,
              'root_domain': 'youtube.com',
              'root_domains_to_root_domain': 23134271,
              'spam_score': 4,
              'to_target': {'deleted_pages': 0,
                            'nofollow_pages': 0,
                            'pages': 0,
                            'redirect_pages': 0}},
             {'domain_authority': 100,
              'link_propensity': 0.008422264829,
              'root_domain': 'www.google.com',
              'root_domains_to_root_domain': 14723695,
              'spam_score': 14,
              'to_target': {'deleted_pages': 0,
                            'nofollow_pages': 0,
                            'pages': 0,
                            'redirect_pages': 0}},
             {'domain_authority': 100,
              'link_propensity': 0.0001607139566,
              'root_domain': 'www.blogger.com',
              'root_domains_to_root_domain': 30580427,
              'spam_score': -1,
              'to_target': {'deleted_pages': 0,
                            'nofollow_pages': 0,
                            'pages': 0,
                            'redirect_pages': 0}},
             {'domain_authority': 99,
              'link_propensity': 0.04834850505,
              'root_domain': 'linkedin.com',
              'root_domains_to_root_domain': 12339087,
              'spam_score': 1,
              'to_target': {'deleted_pages': 0,
                            'nofollow_pages': 0,
                            'pages': 0,
                            'redirect_pages': 0}},
             {'domain_authority': 99,
              'link_propensity': 0.006264935713,
              'root_domain': 'microsoft.com',
              'root_domains_to_root_domain': 5344181,
              'spam_score': 11,
              'to_target': {'deleted_pages': 0,
                            'nofollow_pages': 0,
                            'pages': 0,
                            'redirect_pages': 0}}]}

5. Index Metadata (index_metadata)
This endpoint returns the top 500 pages in the entire index with the highest Page Authority values, sorted by Page Authority. (Visit the Top 500 Sites list to explore the top root domains on the web, sorted by Domain Authority.)

{'index_id': 'NE+lX5bFh06baS9ojUwVbw==',
 'spam_score_update_days': ['2019-02-08',
                            '2020-03-28',
                            '2020-08-03',
                            '2020-11-13',
                            '2021-02-24',
                            '2021-05-19',
                            '2021-08-16',
                            '2021-11-02',
                            '2022-02-01',
                            '2022-05-10',
                            '2022-11-16']}

6. Link Intersect (link_intersect)
Use this endpoint to get sources that link to at least one of a list of positive targets and don't link to any of a list of negative targets.

{'next_token': 'AcmY2oCXQbbg',
 'results': [{'domain_authority': 100,
              'matching_target_indexes': [0],
              'page': 'www.google.com/amp/www.latimes.com/local/lanow/la-me-ln-aliso-viejo-shooting-20171012-story,amp.html',
              'spam_score': 14,
              'title': ''}]}

7. Link Status (link_status)
Use this endpoint to get information about links from many sources to a single target.

{'exists': [False, False]}

8. Linking Root Domains (linking_root_domains)
Use this endpoint to get linking root domains to a target.

{'next_token': 'IokQVg4s9ak8iRBWDiz1qTyguYswnj035qBkmE3DU+JTtwAVhsjH7R6XUA==',
 'results': [{'domain_authority': 99,
              'link_propensity': 0.006264935713,
              'root_domain': 'microsoft.com',
              'root_domains_to_root_domain': 5344181,
              'spam_score': 11,
              'to_target': {'deleted_pages': 0,
                            'nofollow_pages': 0,
                            'pages': 2,
                            'redirect_pages': 0}},
             {'domain_authority': 98,
              'link_propensity': 0.02977741137,
              'root_domain': 'wordpress.org',
              'root_domains_to_root_domain': 12250296,
              'spam_score': 2,
              'to_target': {'deleted_pages': 0,
                            'nofollow_pages': 2,
                            'pages': 2,
                            'redirect_pages': 0}},
             {'domain_authority': 96,
              'link_propensity': 0.09679271281,
              'root_domain': 'github.com',
              'root_domains_to_root_domain': 2948013,
              'spam_score': 2,
              'to_target': {'deleted_pages': 0,
                            'nofollow_pages': 12,
                            'pages': 12,
                            'redirect_pages': 0}},
             {'domain_authority': 96,
              'link_propensity': 0.004641198553,
              'root_domain': 'amazon.com',
              'root_domains_to_root_domain': 5023132,
              'spam_score': 28,
              'to_target': {'deleted_pages': 0,
                            'nofollow_pages': 0,
                            'pages': 2,
                            'redirect_pages': 0}},
             {'domain_authority': 95,
              'link_propensity': 0.005770479795,
              'root_domain': 'shopify.com',
              'root_domains_to_root_domain': 2948087,
              'spam_score': 1,
              'to_target': {'deleted_pages': 3,
                            'nofollow_pages': 0,
                            'pages': 0,
                            'redirect_pages': 0}}]}

9. Links (links)
Use this endpoint to get links to a target.

{'next_token': 'AVvpJ4gPPvOY',
 'results': [{'anchor_text': 'moz blog',
              'date_disappeared': '',
              'date_first_seen': '2020-06-29',
              'date_last_seen': '2023-01-14',
              'nofollow': True,
              'redirect': False,
              'rel_canonical': False,
              'source': {'deleted_pages_to_page': 570,
                         'deleted_pages_to_root_domain': 1251501128,
                         'deleted_pages_to_subdomain': 1182759912,
                         'deleted_root_domains_to_page': 34,
                         'deleted_root_domains_to_root_domain': 322790,
                         'deleted_root_domains_to_subdomain': 314554,
                         'domain_authority': 96,
                         'external_indirect_pages_to_root_domain': 863103308,
                         'external_nofollow_pages_to_page': 1407,
                         'external_nofollow_pages_to_root_domain': 667480081,
                         'external_nofollow_pages_to_subdomain': 650421076,
                         'external_pages_to_page': 3710,
                         'external_pages_to_root_domain': 5309615021,
                         'external_pages_to_subdomain': 5086141938,
                         'external_redirect_pages_to_page': 14,
                         'external_redirect_pages_to_root_domain': 143685025,
                         'external_redirect_pages_to_subdomain': 142061138,
                         'http_code': 200,
                         'indirect_root_domains_to_page': 2,
                         'indirect_root_domains_to_root_domain': 180014,
                         'last_crawled': '2023-01-14',
                         'link_propensity': 0.09679271281,
                         'nofollow_pages_from_page': 199,
                         'nofollow_pages_from_root_domain': 7541042,
                         'nofollow_pages_to_page': 1407,
                         'nofollow_pages_to_root_domain': 678014273,
                         'nofollow_pages_to_subdomain': 660443683,
                         'nofollow_root_domains_from_page': 93,
                         'nofollow_root_domains_from_root_domain': 564314,
                         'nofollow_root_domains_to_page': 58,
                         'nofollow_root_domains_to_root_domain': 186407,
                         'nofollow_root_domains_to_subdomain': 171632,
                         'page': 'github.com/mezod/awesome-indie',
                         'page_authority': 68,
                         'pages_crawled_from_root_domain': 7254823,
                         'pages_from_page': 202,
                         'pages_from_root_domain': 8613796,
                         'pages_to_page': 3746,
                         'pages_to_root_domain': 5628821927,
                         'pages_to_subdomain': 5352019489,
                         'redirect_pages_to_page': 14,
                         'redirect_pages_to_root_domain': 145613441,
                         'redirect_pages_to_subdomain': 142856036,
                         'root_domain': 'github.com',
                         'root_domains_from_page': 96,
                         'root_domains_from_root_domain': 702214,
                         'root_domains_to_page': 231,
                         'root_domains_to_root_domain': 2948013,
                         'root_domains_to_subdomain': 2857538,
                         'spam_score': 2,
                         'subdomain': 'github.com',
                         'title': 'GitHub - mezod/awesome-indie: Resources for '
                                  'independent developers to make money'},
              'target': {'deleted_pages_to_page': 169073,
                         'deleted_pages_to_root_domain': 19022927,
                         'deleted_pages_to_subdomain': 18554702,
                         'deleted_root_domains_to_page': 1457,
                         'deleted_root_domains_to_root_domain': 27522,
                         'deleted_root_domains_to_subdomain': 27273,
                         'domain_authority': 91,
                         'external_indirect_pages_to_root_domain': 45290099,
                         'external_nofollow_pages_to_page': 7388,
                         'external_nofollow_pages_to_root_domain': 17425478,
                         'external_nofollow_pages_to_subdomain': 17269297,
                         'external_pages_to_page': 553261,
                         'external_pages_to_root_domain': 69376449,
                         'external_pages_to_subdomain': 68746190,
                         'external_redirect_pages_to_page': 265,
                         'external_redirect_pages_to_root_domain': 41112725,
                         'external_redirect_pages_to_subdomain': 41109338,
                         'http_code': 200,
                         'indirect_root_domains_to_page': 2219,
                         'indirect_root_domains_to_root_domain': 28779,
                         'last_crawled': '2023-04-02',
                         'link_propensity': 0.008849279955,
                         'nofollow_pages_from_page': 0,
                         'nofollow_pages_from_root_domain': 209067,
                         'nofollow_pages_to_page': 7388,
                         'nofollow_pages_to_root_domain': 17442464,
                         'nofollow_pages_to_subdomain': 17285191,
                         'nofollow_root_domains_from_page': 0,
                         'nofollow_root_domains_from_root_domain': 55943,
                         'nofollow_root_domains_to_page': 1727,
                         'nofollow_root_domains_to_root_domain': 37789,
                         'nofollow_root_domains_to_subdomain': 37690,
                         'page': 'moz.com/blog',
                         'page_authority': 69,
                         'pages_crawled_from_root_domain': 7872618,
                         'pages_from_page': 7,
                         'pages_from_root_domain': 343751,
                         'pages_to_page': 906052,
                         'pages_to_root_domain': 98442581,
                         'pages_to_subdomain': 97352802,
                         'redirect_pages_to_page': 746,
                         'redirect_pages_to_root_domain': 47575576,
                         'redirect_pages_to_subdomain': 47570092,
                         'root_domain': 'moz.com',
                         'root_domains_from_page': 5,
                         'root_domains_from_root_domain': 69667,
                         'root_domains_to_page': 9712,
                         'root_domains_to_root_domain': 179884,
                         'root_domains_to_subdomain': 178649,
                         'spam_score': 1,
                         'subdomain': 'moz.com',
                         'title': 'The Moz Blog [SEO] - Moz'},
              'via_redirect': False,
              'via_rel_canonical': False}]}

10. Top Pages (top_pages)
This endpoint returns top pages on a target domain.

{'next_token': 'BXULGXd3IggK',
 'results': [{'deleted_pages_to_page': 1963527,
              'deleted_pages_to_root_domain': 19022927,
              'deleted_pages_to_subdomain': 18554702,
              'deleted_root_domains_to_page': 6527,
              'deleted_root_domains_to_root_domain': 27522,
              'deleted_root_domains_to_subdomain': 27273,
              'domain_authority': 91,
              'external_indirect_pages_to_root_domain': 45290099,
              'external_nofollow_pages_to_page': 9684724,
              'external_nofollow_pages_to_root_domain': 17425478,
              'external_nofollow_pages_to_subdomain': 17269297,
              'external_pages_to_page': 14981546,
              'external_pages_to_root_domain': 69376449,
              'external_pages_to_subdomain': 68746190,
              'external_redirect_pages_to_page': 3632556,
              'external_redirect_pages_to_root_domain': 41112725,
              'external_redirect_pages_to_subdomain': 41109338,
              'http_code': 200,
              'indirect_root_domains_to_page': 10580,
              'indirect_root_domains_to_root_domain': 28779,
              'last_crawled': '2023-04-01',
              'link_propensity': 0.008849279955,
              'nofollow_pages_from_page': 0,
              'nofollow_pages_from_root_domain': 209067,
              'nofollow_pages_to_page': 9684724,
              'nofollow_pages_to_root_domain': 17442464,
              'nofollow_pages_to_subdomain': 17285191,
              'nofollow_root_domains_from_page': 0,
              'nofollow_root_domains_from_root_domain': 55943,
              'nofollow_root_domains_to_page': 8749,
              'nofollow_root_domains_to_root_domain': 37789,
              'nofollow_root_domains_to_subdomain': 37690,
              'page': 'moz.com/',
              'page_authority': 74,
              'pages_crawled_from_root_domain': 7872618,
              'pages_from_page': 7,
              'pages_from_root_domain': 343751,
              'pages_to_page': 15343034,
              'pages_to_root_domain': 98442581,
              'pages_to_subdomain': 97352802,
              'redirect_pages_to_page': 3633007,
              'redirect_pages_to_root_domain': 47575576,
              'redirect_pages_to_subdomain': 47570092,
              'root_domain': 'moz.com',
              'root_domains_from_page': 5,
              'root_domains_from_root_domain': 69667,
              'root_domains_to_page': 41190,
              'root_domains_to_root_domain': 179884,
              'root_domains_to_subdomain': 178649,
              'spam_score': 1,
              'subdomain': 'moz.com',
              'title': 'Moz - SEO Software for Smarter Marketing'},
             {'deleted_pages_to_page': 185579,
              'deleted_pages_to_root_domain': 19022927,
              'deleted_pages_to_subdomain': 18554702,
              'deleted_root_domains_to_page': 2440,
              'deleted_root_domains_to_root_domain': 27522,
              'deleted_root_domains_to_subdomain': 27273,
              'domain_authority': 91,
              'external_indirect_pages_to_root_domain': 45290099,
              'external_nofollow_pages_to_page': 11211,
              'external_nofollow_pages_to_root_domain': 17425478,
              'external_nofollow_pages_to_subdomain': 17269297,
              'external_pages_to_page': 424268,
              'external_pages_to_root_domain': 69376449,
              'external_pages_to_subdomain': 68746190,
              'external_redirect_pages_to_page': 348,
              'external_redirect_pages_to_root_domain': 41112725,
              'external_redirect_pages_to_subdomain': 41109338,
              'http_code': 200,
              'indirect_root_domains_to_page': 1389,
              'indirect_root_domains_to_root_domain': 28779,
              'last_crawled': '2023-04-03',
              'link_propensity': 0.008849279955,
              'nofollow_pages_from_page': 0,
              'nofollow_pages_from_root_domain': 209067,
              'nofollow_pages_to_page': 11211,
              'nofollow_pages_to_root_domain': 17442464,
              'nofollow_pages_to_subdomain': 17285191,
              'nofollow_root_domains_from_page': 0,
              'nofollow_root_domains_from_root_domain': 55943,
              'nofollow_root_domains_to_page': 2487,
              'nofollow_root_domains_to_root_domain': 37789,
              'nofollow_root_domains_to_subdomain': 37690,
              'page': 'moz.com/beginners-guide-to-seo',
              'page_authority': 72,
              'pages_crawled_from_root_domain': 7872618,
              'pages_from_page': 7,
              'pages_from_root_domain': 343751,
              'pages_to_page': 786960,
              'pages_to_root_domain': 98442581,
              'pages_to_subdomain': 97352802,
              'redirect_pages_to_page': 365,
              'redirect_pages_to_root_domain': 47575576,
              'redirect_pages_to_subdomain': 47570092,
              'root_domain': 'moz.com',
              'root_domains_from_page': 5,
              'root_domains_from_root_domain': 69667,
              'root_domains_to_page': 15276,
              'root_domains_to_root_domain': 179884,
              'root_domains_to_subdomain': 178649,
              'spam_score': 1,
              'subdomain': 'moz.com',
              'title': "Beginner's Guide to SEO [plus FREE quick start "
                       'checklist] - Moz'},
             {'deleted_pages_to_page': 7159,
              'deleted_pages_to_root_domain': 19022927,
              'deleted_pages_to_subdomain': 18554702,
              'deleted_root_domains_to_page': 1382,
              'deleted_root_domains_to_root_domain': 27522,
              'deleted_root_domains_to_subdomain': 27273,
              'domain_authority': 91,
              'external_indirect_pages_to_root_domain': 45290099,
              'external_nofollow_pages_to_page': 8605,
              'external_nofollow_pages_to_root_domain': 17425478,
              'external_nofollow_pages_to_subdomain': 17269297,
              'external_pages_to_page': 34152,
              'external_pages_to_root_domain': 69376449,
              'external_pages_to_subdomain': 68746190,
              'external_redirect_pages_to_page': 70,
              'external_redirect_pages_to_root_domain': 41112725,
              'external_redirect_pages_to_subdomain': 41109338,
              'http_code': 200,
              'indirect_root_domains_to_page': 782,
              'indirect_root_domains_to_root_domain': 28779,
              'last_crawled': '2023-04-03',
              'link_propensity': 0.008849279955,
              'nofollow_pages_from_page': 0,
              'nofollow_pages_from_root_domain': 209067,
              'nofollow_pages_to_page': 8754,
              'nofollow_pages_to_root_domain': 17442464,
              'nofollow_pages_to_subdomain': 17285191,
              'nofollow_root_domains_from_page': 0,
              'nofollow_root_domains_from_root_domain': 55943,
              'nofollow_root_domains_to_page': 1380,
              'nofollow_root_domains_to_root_domain': 37789,
              'nofollow_root_domains_to_subdomain': 37690,
              'page': 'moz.com/google-algorithm-change',
              'page_authority': 70,
              'pages_crawled_from_root_domain': 7872618,
              'pages_from_page': 420,
              'pages_from_root_domain': 343751,
              'pages_to_page': 35181,
              'pages_to_root_domain': 98442581,
              'pages_to_subdomain': 97352802,
              'redirect_pages_to_page': 73,
              'redirect_pages_to_root_domain': 47575576,
              'redirect_pages_to_subdomain': 47570092,
              'root_domain': 'moz.com',
              'root_domains_from_page': 60,
              'root_domains_from_root_domain': 69667,
              'root_domains_to_page': 8881,
              'root_domains_to_root_domain': 179884,
              'root_domains_to_subdomain': 178649,
              'spam_score': 1,
              'subdomain': 'moz.com',
              'title': 'Moz - Google Algorithm Update History'},
             {'deleted_pages_to_page': 33133,
              'deleted_pages_to_root_domain': 19022927,
              'deleted_pages_to_subdomain': 18554702,
              'deleted_root_domains_to_page': 1192,
              'deleted_root_domains_to_root_domain': 27522,
              'deleted_root_domains_to_subdomain': 27273,
              'domain_authority': 91,
              'external_indirect_pages_to_root_domain': 45290099,
              'external_nofollow_pages_to_page': 31500,
              'external_nofollow_pages_to_root_domain': 17425478,
              'external_nofollow_pages_to_subdomain': 17269297,
              'external_pages_to_page': 70673,
              'external_pages_to_root_domain': 69376449,
              'external_pages_to_subdomain': 68746190,
              'external_redirect_pages_to_page': 77,
              'external_redirect_pages_to_root_domain': 41112725,
              'external_redirect_pages_to_subdomain': 41109338,
              'http_code': 301,
              'indirect_root_domains_to_page': 315,
              'indirect_root_domains_to_root_domain': 28779,
              'last_crawled': '2023-04-02',
              'link_propensity': 0.008849279955,
              'nofollow_pages_from_page': 0,
              'nofollow_pages_from_root_domain': 209067,
              'nofollow_pages_to_page': 31628,
              'nofollow_pages_to_root_domain': 17442464,
              'nofollow_pages_to_subdomain': 17285191,
              'nofollow_root_domains_from_page': 0,
              'nofollow_root_domains_from_root_domain': 55943,
              'nofollow_root_domains_to_page': 1689,
              'nofollow_root_domains_to_root_domain': 37789,
              'nofollow_root_domains_to_subdomain': 37690,
              'page': 'moz.com/researchtools/ose/',
              'page_authority': 70,
              'pages_crawled_from_root_domain': 7872618,
              'pages_from_page': 0,
              'pages_from_root_domain': 343751,
              'pages_to_page': 344305,
              'pages_to_root_domain': 98442581,
              'pages_to_subdomain': 97352802,
              'redirect_pages_to_page': 78,
              'redirect_pages_to_root_domain': 47575576,
              'redirect_pages_to_subdomain': 47570092,
              'root_domain': 'moz.com',
              'root_domains_from_page': 0,
              'root_domains_from_root_domain': 69667,
              'root_domains_to_page': 8086,
              'root_domains_to_root_domain': 179884,
              'root_domains_to_subdomain': 178649,
              'spam_score': 1,
              'subdomain': 'moz.com',
              'title': ''},
             {'deleted_pages_to_page': 169073,
              'deleted_pages_to_root_domain': 19022927,
              'deleted_pages_to_subdomain': 18554702,
              'deleted_root_domains_to_page': 1457,
              'deleted_root_domains_to_root_domain': 27522,
              'deleted_root_domains_to_subdomain': 27273,
              'domain_authority': 91,
              'external_indirect_pages_to_root_domain': 45290099,
              'external_nofollow_pages_to_page': 7388,
              'external_nofollow_pages_to_root_domain': 17425478,
              'external_nofollow_pages_to_subdomain': 17269297,
              'external_pages_to_page': 553261,
              'external_pages_to_root_domain': 69376449,
              'external_pages_to_subdomain': 68746190,
              'external_redirect_pages_to_page': 265,
              'external_redirect_pages_to_root_domain': 41112725,
              'external_redirect_pages_to_subdomain': 41109338,
              'http_code': 200,
              'indirect_root_domains_to_page': 2219,
              'indirect_root_domains_to_root_domain': 28779,
              'last_crawled': '2023-04-02',
              'link_propensity': 0.008849279955,
              'nofollow_pages_from_page': 0,
              'nofollow_pages_from_root_domain': 209067,
              'nofollow_pages_to_page': 7388,
              'nofollow_pages_to_root_domain': 17442464,
              'nofollow_pages_to_subdomain': 17285191,
              'nofollow_root_domains_from_page': 0,
              'nofollow_root_domains_from_root_domain': 55943,
              'nofollow_root_domains_to_page': 1727,
              'nofollow_root_domains_to_root_domain': 37789,
              'nofollow_root_domains_to_subdomain': 37690,
              'page': 'moz.com/blog',
              'page_authority': 69,
              'pages_crawled_from_root_domain': 7872618,
              'pages_from_page': 7,
              'pages_from_root_domain': 343751,
              'pages_to_page': 906052,
              'pages_to_root_domain': 98442581,
              'pages_to_subdomain': 97352802,
              'redirect_pages_to_page': 746,
              'redirect_pages_to_root_domain': 47575576,
              'redirect_pages_to_subdomain': 47570092,
              'root_domain': 'moz.com',
              'root_domains_from_page': 5,
              'root_domains_from_root_domain': 69667,
              'root_domains_to_page': 9712,
              'root_domains_to_root_domain': 179884,
              'root_domains_to_subdomain': 178649,
              'spam_score': 1,
              'subdomain': 'moz.com',
              'title': 'The Moz Blog [SEO] - Moz'}]}

11. URL Metrics (url_metrics)
Use this endpoint to get metrics about one or more urls.

{'results': [{'deleted_pages_to_page': 1963527,
              'deleted_pages_to_root_domain': 19022927,
              'deleted_pages_to_subdomain': 18554702,
              'deleted_root_domains_to_page': 6527,
              'deleted_root_domains_to_root_domain': 27522,
              'deleted_root_domains_to_subdomain': 27273,
              'domain_authority': 91,
              'external_indirect_pages_to_root_domain': 45290099,
              'external_nofollow_pages_to_page': 9684724,
              'external_nofollow_pages_to_root_domain': 17425478,
              'external_nofollow_pages_to_subdomain': 17269297,
              'external_pages_to_page': 14981546,
              'external_pages_to_root_domain': 69376449,
              'external_pages_to_subdomain': 68746190,
              'external_redirect_pages_to_page': 3632556,
              'external_redirect_pages_to_root_domain': 41112725,
              'external_redirect_pages_to_subdomain': 41109338,
              'http_code': 200,
              'indirect_root_domains_to_page': 10580,
              'indirect_root_domains_to_root_domain': 28779,
              'last_crawled': '2023-04-01',
              'link_propensity': 0.008849279955,
              'nofollow_pages_from_page': 0,
              'nofollow_pages_from_root_domain': 209067,
              'nofollow_pages_to_page': 9684724,
              'nofollow_pages_to_root_domain': 17442464,
              'nofollow_pages_to_subdomain': 17285191,
              'nofollow_root_domains_from_page': 0,
              'nofollow_root_domains_from_root_domain': 55943,
              'nofollow_root_domains_to_page': 8749,
              'nofollow_root_domains_to_root_domain': 37789,
              'nofollow_root_domains_to_subdomain': 37690,
              'page': 'moz.com/',
              'page_authority': 74,
              'pages_crawled_from_root_domain': 7872618,
              'pages_from_page': 7,
              'pages_from_root_domain': 343751,
              'pages_to_page': 15343034,
              'pages_to_root_domain': 98442581,
              'pages_to_subdomain': 97352802,
              'redirect_pages_to_page': 3633007,
              'redirect_pages_to_root_domain': 47575576,
              'redirect_pages_to_subdomain': 47570092,
              'root_domain': 'moz.com',
              'root_domains_from_page': 5,
              'root_domains_from_root_domain': 69667,
              'root_domains_to_page': 41190,
              'root_domains_to_root_domain': 179884,
              'root_domains_to_subdomain': 178649,
              'spam_score': 1,
              'subdomain': 'moz.com',
              'title': 'Moz - SEO Software for Smarter Marketing'},
             {'deleted_pages_to_page': 249094,
              'deleted_pages_to_root_domain': 224212706,
              'deleted_pages_to_subdomain': 898844,
              'deleted_root_domains_to_page': 3696,
              'deleted_root_domains_to_root_domain': 177001,
              'deleted_root_domains_to_subdomain': 9251,
              'domain_authority': 95,
              'external_indirect_pages_to_root_domain': 156562794,
              'external_nofollow_pages_to_page': 163849,
              'external_nofollow_pages_to_root_domain': 72093550,
              'external_nofollow_pages_to_subdomain': 294697,
              'external_pages_to_page': 1165187,
              'external_pages_to_root_domain': 514661963,
              'external_pages_to_subdomain': 2310818,
              'external_redirect_pages_to_page': 3049,
              'external_redirect_pages_to_root_domain': 4827448,
              'external_redirect_pages_to_subdomain': 8140,
              'http_code': 301,
              'indirect_root_domains_to_page': 1439,
              'indirect_root_domains_to_root_domain': 30315,
              'last_crawled': '2023-03-31',
              'link_propensity': 0.02704063244,
              'nofollow_pages_from_page': 0,
              'nofollow_pages_from_root_domain': 97163,
              'nofollow_pages_to_page': 163881,
              'nofollow_pages_to_root_domain': 72644206,
              'nofollow_pages_to_subdomain': 294765,
              'nofollow_root_domains_from_page': 0,
              'nofollow_root_domains_from_root_domain': 22711,
              'nofollow_root_domains_to_page': 5647,
              'nofollow_root_domains_to_root_domain': 178651,
              'nofollow_root_domains_to_subdomain': 11590,
              'page': 'nytimes.com/',
              'page_authority': 82,
              'pages_crawled_from_root_domain': 13567138,
              'pages_from_page': 0,
              'pages_from_root_domain': 3152122,
              'pages_to_page': 1170498,
              'pages_to_root_domain': 763781494,
              'pages_to_subdomain': 2489707,
              'redirect_pages_to_page': 3053,
              'redirect_pages_to_root_domain': 9268395,
              'redirect_pages_to_subdomain': 14273,
              'root_domain': 'nytimes.com',
              'root_domains_from_page': 0,
              'root_domains_from_root_domain': 366864,
              'root_domains_to_page': 25307,
              'root_domains_to_root_domain': 2200598,
              'root_domains_to_subdomain': 62699,
              'spam_score': 1,
              'subdomain': 'nytimes.com',
              'title': ''}]}

12. Usage Data (usage_data)
This endpoint Returns the number of rows consumed so far in the current billing period. The count returned might not reflect rows consumed in the last hour. The count returned reflects rows consumed by requests to both the v1 (Moz Links API) and v2 Links APIs.

{'rows_consumed': 254}



Source link

See also  Instagram Marketing: An In-Depth Gui
Keep an eye on what we are doing
Be the first to get latest updates and exclusive content straight to your email inbox.
We promise not to spam you. You can unsubscribe at any time.
Invalid email address
Continue Reading

MARKETING

12 AI Tools to Help You Grow Your Blog

Published

on

12 AI Tools to Help You Grow Your Blog

OK, you get it. Artificial intelligence is kind of a big deal. It’s a huge buzzword in the marketing community, with people talking daily about how it’ll change the world. And you can’t throw a rock without hitting a company with AI in the name these days.

Free Guide: How to Use AI in Content Marketing [Download Now]
(more…)

See also  Twitter's Revenue Down 40% As 500 Top Advertisers Pull Out
Keep an eye on what we are doing
Be the first to get latest updates and exclusive content straight to your email inbox.
We promise not to spam you. You can unsubscribe at any time.
Invalid email address
Continue Reading

MARKETING

Salesforce summer 2023 release: The business executive’s guide

Published

on

Salesforce summer 2023 release: The business executive's guide

Salesforce’s summer release delivers a series of enhancements to improve the user experience and saving time through efficiency. After all, what good is a tool if it’s challenging to use and takes up a bunch of time that none of us have? 

Highlights covered in this edition include admin and CRM enhancements, Account Engagement (formerly Pardot), and feature upgrades for Commerce.

Admin and CRM enhancements 

Whether you’re a seasoned pro or a first-time user of Salesforce, these admin and CRM enhancement enable you to customize the experience and find things faster.

  • Layout. Imagine trying to read a book, but the words are all jumbled together, making it nearly impossible to understand. Before the latest layout updates, that’s how Salesforce used to feel for many users — especially first-timers. The updated layout includes consolidated address fields, phone numbers, and well-spaced elements to improve readability and navigability. In addition, you can now align fields horizontally for user adoption and data visibility.
  • Optimized app pages. Users can customize and optimize app pages, making information more accessible and digestible for users. Maximizing and minimizing sections of pages will help you and your team find what you’re looking for faster, which means less time spent scrolling.   
  • Gender-neutral salutations. The importance of honoring all of your customers cannot be overstated. Salesforce has adopted gender-neutral salutations so you can better reflect the diversity of your customers. An “Mx.” salutation is now available, which is a significant step towards making everyone feel seen and valued.
  • Customizable dashboards. The dashboard, which has been a significant source of frustration, is now customizable and can be tailored to your customers with the ability to add custom images and text. Plus, you can add up to five filters and focus your dashboard. All this is to say that you can set your workspace to suit your needs and preferences, making it more efficient and narrowly tailored for your target audience.
  • Updated calendar. The last important update in this section is that the calendar feature has been revamped to include a drag-and-drop capability to move events around easily. Plus, there are now overlapping event tiles and color-coded events for better usability. Updates to calendar functions have been a longtime request by Salesforce users, and the upgrades are exciting because they lead to increased productivity. 
See also  Native video tops social media in brand awareness study

Account Engagement 

Salesforce’s Account Engagement, formerly known as Pardot, has received several significant updates to improve efficiency and effectiveness.

  • Completed actions + external actions. Trigger partner completion actions with external actions in the same setup. Previously, external actions had to be triggered via Engagement Studio, but you can use your Account Engagement platform and third-party tools to automatically create a multi-touch experience while also creating operational efficiencies between marketing systems. Let’s say you have a user fill out a form on your site. You can now automatically register them via your webinar tool. You can also create an automatic second touch by sending them a text message after the form completion. 
  • Optimizer tool. The new optimizer tool for Account Engagement allows users to see how the tool and your business unit(s) are operating at any time. This includes identifying areas to improve your overall performance, which in turn creates more efficient touchpoints for your customer.  A great example of the tool at work is identifying the overuse of automation rules that can slow overall operational processes ‘behind the scenes’ (which can delay critical communications to your customers!). In digital, every second counts; Optimizer’s ability to surface risks to Account Engagement users means you’ll be spending time fixing automations rather than manually auditing your tool.
  • Data Cloud. Account Engagement now works with Salesforce Data Cloud (formerly Salesforce CDP) to connect data from multiple sources and unify that data into unified customer profiles. Once unified profiles are available, Account Engagement users can segment and personalize their customer communications, driving increased engagement and revenue.
See also  8 Ways to Attract Top Talent as a Startup

Guest check-out upgrade among Commerce enhancements

Several significant updates that enhance customer experience were included in this release: upgrades to guest checkout, a self-service reorder portal, a Pay Now feature, and saved payment methods.

  • Guest check-out feature. Allows customers to browse and check out anonymously, making the shopping experience faster and less intrusive.
  • Self-service reorder portal. Simplifies the process of placing repeat orders, saving time and effort. 
  • Pay Now: Makes it easier to process payments without going through the checkout process by letting businesses send a URL or a page to a customer so they can make a payment immediately. Think of it as skipping the line and going straight to the cashier.
  • Saved payment methods.  Also enables quicker checkouts by eliminating the need to re-enter payment information each time. This feature mimics a digital wallet, only you don’t need to dig around to find your credit card. 

Want to see all the details? The full Salesforce Summer ‘23 Release notes are here. 


Get MarTech! Daily. Free. In your inbox.



Opinions expressed in this article are those of the guest author and not necessarily MarTech. Staff authors are listed here.


See also  Your stack's past and limitations

About the author

Joe Anzalone

Joe is Vice President, Salesforce Technology at Shift7 Digital. As a member of the Shift7 leadership team, Joe works to craft solutions and architectures that meet ambitious client goals using the power of the Salesforce platform, including product ownership for Shift7’s Industry GTM Accelerators. Joe brings more than 20 years of experience implementing Salesforce and other digital platforms including enterprise solutions and complex technology implementations. He sits on the Salesforce B2B Commerce product advisory board. Shift7 Digital is a Salesforce Ventures-backed agency, revolutionizing the digital experience for manufacturers, distributors, and their customers.

Source link

Keep an eye on what we are doing
Be the first to get latest updates and exclusive content straight to your email inbox.
We promise not to spam you. You can unsubscribe at any time.
Invalid email address
Continue Reading

Trending

en_USEnglish