Import
import_from_url
Scrapes a public HTTPS page via Firecrawl and returns the page display name, bio, and extracted links as raw material for the agent to turn into cards.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| url | string | Yes | Publicly accessible HTTPS URL to scrape. Must use the https:// scheme. Bare IP addresses (IPv4 and IPv6 literals), localhost, loopback names, private-network hostnames (.local, .internal, .cluster.local), and URLs containing userinfo (user:pass@host) are rejected before any network call. |
Response
| Field | Type | What it means |
|---|---|---|
| url | string | The canonicalised URL that was scraped. |
| displayName | string | null | Creator name from the page title (link-in-bio suffixes stripped) or first H1/H2. Null when nothing useful was found. |
| bio | string | null | Bio from og:description, meta description, or the first substantive paragraph in the page markdown. Null when nothing was extractable. |
| links | array | All labelled links on the page as objects with label (anchor text or raw URL) and url. Use as candidates for card CTAs or social links. |
| partial | boolean | True when the scrape returned no bio AND no links. Warn the creator and suggest retrying or using a different URL. |
Example
Request
json
{
"url": "https://saffronink.studio"
}Response
json
{
"url": "https://saffronink.studio",
"displayName": "Saffron Ink Studio",
"bio": "Fine line tattoos · Portland, OR · DMs open for bookings",
"links": [
{ "label": "Book a session", "url": "https://saffronink.studio/book" },
{ "label": "Instagram", "url": "https://instagram.com/saffron.ink" },
{ "label": "Portfolio", "url": "https://saffronink.studio/portfolio" }
],
"partial": false
}When to use
Use at step 3 of the create-curate-optimize loop (after get_guidance and get_taste_fingerprint) when the creator wants to seed their profile from an existing website instead of Instagram. Also useful to pull in an external project or portfolio URL before building stacks with add_card.
Gotchas
Watch out
- Rate limit is shared with import_from_instagram: both draw from the same 20-imports-per-hour-per-user bucket; hitting it on either tool blocks both.
- partial:true is not an error: the tool returns success with partial:true when Firecrawl times out (20 s) or returns empty content. Always check this field before using the result.
- links[] contains all links Firecrawl found including nav and footer links, not just social profiles; the agent must curate which are worth surfacing.
- Only https:// is accepted. http://, data:, file:, and other schemes return VALIDATION_ERROR before any network call is made.