canonical: https://jentic.com/apis/nasc.gov.au/nasc

# NASC - Partner Data API

The NASC Partner Data API lets partner organisations of Australia's National Anti-Scam Centre submit scam reports and retrieve report datasets. A submission carries 1 to 100 scam_reprot records, each with details such as the scammer's contact method, website, phone, and impersonated entity, the amount taken, consent flags for sharing, and any linked bank, crypto, or digital currency exchange transactions. Both submission and retrieval are asynchronous: the API returns a response_id, and you poll for the processing status, record-level validation errors, or paged results. Retrieval filters scam reports by a date_of_scam_report range.

## For AI agents

Submit batches of scam reports with linked bank, crypto, and exchange transactions to the NASC partner data service, then poll for validation results or pull paged scam report data by report date.

## Scope

Does not block payments, take down scam websites, or accept reports from the public. Use for partner submission and retrieval of NASC scam report datasets only.

## Capabilities

- Submit 1 to 100 scam reports in one dataset_payload, each with scammer contact, impersonation, and loss details
- Attach bank_transactions, crypto_transactions, and dce_transactions to a scam report
- Poll a submission by response_id for its status and per-record properties_errors
- Request scam report data filtered by a date_of_scam_report between two dates
- Page through retrieved results with page_number, total_pages, and has_more_records
- Check service health with ping and read the API metadata, including version and documentation link

## Use cases

### Agent-assisted scam report submission through Jentic

A partner organisation's agent, connected through Jentic, batches the scam reports collected from customers and submits them as one dataset. Each record carries a uid plus fields such as scammer_contact_method, scammer_website_url, how_much_money_was_taken, and consent_to_share_report. The agent then polls the submission by response_id and reports any records that failed validation so staff can fix them.

Example prompt: Call POST `/api/v1/datasets/submission` with a RequestId header, dataset_version_no, and a dataset_payload of scam_reprot records, then poll GET `/api/v1/datasets/submission/{response_id}/response` until response_status is completed or failed

### Pulling scam report data by date range

To analyse recent scam activity, a partner requests scam report data for a period. The retrieval request takes dataset_version_no and a dataset_filters_payload whose scam_reports_filter sets date_of_scam_report with the between operator and two date-times. The service answers with a response_id, and the agent pages through results as they become available.

Example prompt: Call POST `/api/v1/datasets/retreivedata` with a RequestId header and a filter on date_of_scam_report between 2026-10-01T00:00:00Z and 2026-10-31T23:59:59Z, then call GET `/api/v1/datasets/retreivedata/{response_id}/results/{page}` from page 1 while has_more_records is true

### Fixing rejected scam report records

When some records in a batch fail validation, the submission status can come back as compeleted_with_errors, the enum value as spelled in the spec. Each failing record lists properties_errors with property_name, record_no, and the error detail, so an agent can correct only those records and resubmit them instead of the whole batch.

Example prompt: Call GET `/api/v1/datasets/submission/{response_id}/response`, collect every record with properties_errors, and list each property_name and record_no for correction

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/api/v1/datasets/submission` | Submit a scam report dataset |
| GET | `/api/v1/datasets/submission/{response_id}/response` | Get submission status and errors |
| POST | `/api/v1/datasets/retreivedata` | Request filtered scam report data |
| GET | `/api/v1/datasets/retreivedata/{response_id}/results/{page}` | Get a page of retrieved results |
| GET | `/api/v1/metadata` | Read API metadata |
| GET | `/api/v1/ping` | Check service health |

## Key resources

- **Scam reports** — Scam report records with scammer details, losses, reporter details, and sharing consents
- **Transactions** — Bank, crypto, and digital currency exchange transactions linked to a report
- **Submissions** — Asynchronous dataset submissions tracked by response_id with record-level errors
- **Retrievals** — Asynchronous filtered data requests returned as paged results

## AI readiness

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

- **Score:** 0 / 100
- **Maturity:** Non-Ready
- **Dimensions:**
  - Foundational Compliance: 100 / 100
  - Developer Experience & Jentic Compatibility: 69 / 100
  - AI-Readiness & Agent Experience: 21 / 100
  - Agent Usability: 94 / 100
  - Security: 33 / 100
  - AI Discoverability: 0 / 100
- **View full report:** https://jentic.com/apis/nasc.gov.au/nasc/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring the NASC partner service by hand means sending the API key in a header or query parameter, generating a RequestId UUID for every call, and handling the asynchronous submit-then-poll flow with its misspelled field and path names. Through Jentic you install once, import it from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** The NASC Partner Data API carries the scam reports and filters inside the request body, so rules bound which operations your agent may call, not which reports. Limit the agent to the operations it needs, such as submitting reports and checking their status.
- **Credential handling:** Your NASC partner API key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'submit scam reports' or 'retrieve scam reports by date', and Jentic returns the matching NASC operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **AbuseIPDB API** — Shared database of IP addresses reported for abuse
- **FraudLabs Pro API** — Real-time fraud scoring for orders and transactions

## FAQ

### What authentication does the NASC Partner Data API use?

Per its OpenAPI spec, the NASC Partner Data API accepts an API key either in the Api-Key header or in the api-key query parameter. Each operation also requires a RequestId header holding a UUID for the request. Through Jentic, the key is stored once by your own Jentic One instance and injected at call time.

### How does submitting scam reports work?

POST `/api/v1/datasets/submission` takes dataset_version_no and a dataset_payload of 1 to 100 unique scam_reprot records, each with a required uid. It returns 202 with a response_id. Poll GET `/api/v1/datasets/submission/{response_id}/response` for a response_status of submitted, in_progress, completed, failed, or compeleted_with_errors, along with per-record validation errors.

### How do I retrieve scam report data with the NASC Partner Data API?

Send POST `/api/v1/datasets/retreivedata` with dataset_version_no and a dataset_filters_payload whose scam_reports_filter sets date_of_scam_report with the between operator and two date-times. Then call GET `/api/v1/datasets/retreivedata/{response_id}/results/{page}`; each page reports page_number, page_size, total_pages, total_records, and has_more_records.

### What are the rate limits for the NASC Partner Data API?

The OpenAPI spec does not specify rate limits, and the only server it lists is apidev.nasc.gov.au, a development host. Partner access, production hosts, and limits come from the National Anti-Scam Centre at https://www.nasc.gov.au.

### How do I submit scam reports through Jentic?

Install Jentic One with `curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh`, import the NASC Partner Data API from the API Directory, and store your partner API key once. Your agent searches for 'submit scam reports', gets datasets_submission with its input schema, and calls it with your dataset_payload. To run it on your own infrastructure, install Jentic One from its GitHub repo.

### Can I limit what my agent is allowed to do with the NASC Partner Data API?

Yes. For a submit-only workflow, write a rule that allows datasets_submission and datasets_submission_status_response, so the agent can send scam reports and check their validation but cannot request or read back report datasets. Add the retrieval operations only for an agent that should analyse report data.
