Abwab Digital APIabwabdigital.com ↗
Access Abwab Digital's service catalogue, job postings, blog articles, portfolio projects, and contact info via 7 structured API endpoints with bilingual EN/AR fields.
What is the Abwab Digital API?
The Abwab Digital API exposes 7 endpoints covering the full public content of the Abwab Digital (Rasad) agency website. You can retrieve the agency's service catalogue, contact details, open job postings with filtering by department and employment type, full blog articles as structured sections, and portfolio projects. The get_blog_post endpoint, for example, returns article body content as an ordered array of typed sections — each carrying both English text and an Arabic counterpart.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/66ecbf0a-2f65-460c-b853-3d6e0e431456/list_services' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace abwabdigital-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Abwab Digital site API — services, projects, jobs, and blog posts."""
from parse_apis.abwabdigital_com_api import AbwabDigital, InputNotFound
client = AbwabDigital()
# Browse the service catalogue
for svc in client.services.list(limit=5):
print(svc.title, "-", svc.short_description)
# List portfolio projects and inspect technologies
for project in client.projects.list(limit=3):
print(project.title, project.year, project.technologies)
# Drill into a job posting: list summaries, then fetch full details
job_summary = client.job_summaries.list(limit=1).first()
if job_summary is not None:
try:
job = job_summary.details()
print(job.title, job.department, job.location)
print("Skills:", job.skills)
print("Benefits:", job.benefits)
except InputNotFound as e:
print("Job no longer available:", e.message)
# Search blog posts, then read the full article for the first hit
post_summary = client.post_summaries.list(search="AI", limit=1).first()
if post_summary is not None:
post = post_summary.details()
print(post.title, f"({post.reading_time_minutes} min read, {post.views} views)")
for section in (post.sections or [])[:3]:
if section.text:
print(f" [{section.type} L{section.level}] {section.text}")
elif section.body:
print(f" {section.body[:100]}...")
# Fetch company contact info
info = client.contact_info.get()
print(info.site_name, "-", info.tagline)
print("Phone:", info.phone, "| Email:", info.email)
if info.social:
print("LinkedIn:", info.social.linkedin)
print("Stats:", info.company_stats.projects_delivered, "projects,",
info.company_stats.team_size, "team")
print("exercised: services.list / projects.list / job_summaries.list /"
" details / post_summaries.list / details / contact_info.get")
Returns the complete list of services the agency offers (one row per service, ordered by the site's display order). Each service carries its English and Arabic title and short description plus the feature bullet list. Single round trip; the catalogue is small (8 services at build time) and not paginated. Empty list only if the site publishes no services.
No input parameters required.
{
"type": "object",
"fields": {
"total": "number of services returned",
"services": "array of service objects: id, slug, title, title_ar, short_description, short_description_ar, features (array of strings), features_ar, icon, image (site-relative path), order, is_active"
},
"sample": {
"data": {
"total": 8,
"services": [
{
"id": "6a6bd545e0149d08f38369cc",
"icon": "mobile-dev",
"slug": "mobile-app-engineering",
"image": "/images/services/application-design.webp",
"order": 1,
"title": "Mobile App Engineering",
"features": [
"Flutter Cross-Platform",
"Native iOS & Android",
"Push Notifications"
],
"title_ar": "هندسة تطبيقات الجوال",
"is_active": true,
"features_ar": [
"Flutter متعدد المنصات",
"iOS و Android أصلي",
"إشعارات فورية"
],
"short_description": "Revenue-generating iOS & Android apps built with Flutter and native.",
"short_description_ar": "تطبيقات iOS و Android تولّد إيرادات بـ Flutter والأصلية."
}
]
},
"status": "success"
}
}About the Abwab Digital API
Service Catalogue and Company Profile
list_services returns all agency offerings in display order — each with id, slug, title, title_ar, short_description, short_description_ar, and a features array of bullet strings. The current catalogue covers 8 services. get_contact_info returns a single object with the agency's email, phone, address (and address_ar), tagline, markets, website, social profile URLs (linkedin, twitter, instagram, clutch), and a company_stats object containing founded_year, team_size, projects_delivered, active_users, client_revenue, and client_satisfaction.
Jobs and Careers
list_jobs paginates open positions and accepts optional filters: department (e.g. engineering, design, sales, marketing), type (e.g. full_time, contract), location (e.g. remote, hybrid, on-site), and a featured boolean. Each summary row includes slug, title, title_ar, short_description, department, type, and location. Pass a slug from that list to get_job to retrieve the full posting: long description in both languages, responsibilities, requirements, skills, benefits, city, country, experience range, and status.
Blog Posts and Portfolio Projects
list_blog_posts paginates published posts newest-first, with optional search for text matching across titles and content. Each summary carries excerpt, category, tags, author, and dates. get_blog_post accepts a slug and returns the full article body as a sections array — each element has a type (heading or paragraph), optional level, and parallel text/text_ar or body/body_ar fields; unused fields are null. list_projects paginates portfolio case studies, each row including category, tags, client, technologies, year, country, and delivery_time alongside bilingual title and short description.
The Abwab Digital API is a managed, monitored endpoint for abwabdigital.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when abwabdigital.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official abwabdigital.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a bilingual agency profile page using
get_contact_infofields includingtagline_ar,address_ar, andcompany_stats. - Aggregate open engineering and design roles from
list_jobsfiltered bydepartmentandlocationfor a jobs board. - Render the full Arabic-language version of a blog article using
get_blog_postsections[*].body_arfields. - Display a project portfolio grid using
list_projectsfields:category,technologies,client, andyear. - Index the agency's service feature bullets from
list_servicesfeaturesarrays for a comparison or discovery tool. - Track new blog content by polling
list_blog_postswithpage=1and comparingposts[*].idagainst a stored set. - Surface only featured job postings using
list_jobswithfeatured=truefor a highlighted careers widget.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Abwab Digital provide an official developer API?+
What does `get_job` return beyond what `list_jobs` includes?+
list_jobs returns summary fields: slug, title, title_ar, short_description, department, type, and location. get_job adds the full long description in both languages, responsibilities, requirements, educational_requirements, skills, benefits, city, country, experience range, and posting status. The slug from the list endpoint is the required input.How does the blog post body structure work in `get_blog_post`?+
sections array is ordered and typed. Heading sections carry a level integer and text/text_ar fields; paragraph sections carry body/body_ar. Fields that don't apply to a given section type are returned as null. This lets you reconstruct the article hierarchy without parsing HTML.Does the API expose individual project detail pages, not just the portfolio list?+
list_projects returns summary fields per project — title, short_description, category, tags, client, technologies, year, country, and delivery_time — but there is no get_project endpoint for full case-study content. You can fork this API on Parse and revise it to add a detail endpoint using the project slug.Are filter values for `list_jobs` validated, and what happens with an unrecognised value?+
department, type, or location value will return an empty jobs array and a total of 0 rather than an error response. Use the values documented in the endpoint spec — such as full_time, remote, or engineering — to get results.