Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
openapi: 3.2.0
info:
title: DataScoop Signup API
version: 1.0.0
summary: 'Official public datasets as filtered rows: CSV, JSON and MCP.'
description: 'Preview any dataset free (25 rows per call, no key). Pro keys can access every matching row: REST JSON returns up to 10,000 rows per page, with offset for pagination; omit limit for a full Pro CSV export. Fields marked personal in the schema are excluded; every response carries the attribution to keep. MCP endpoint: https://datascoop.io/mcp. Machine-readable overview: https://datascoop.io/llms.txt'
termsOfService: https://datascoop.io/terms
contact:
url: https://datascoop.io/contact
license:
name: Data reused under the open licence listed per dataset
url: https://datascoop.io/licences
servers:
- url: https://datascoop.io
security:
- {}
- bearerAuth: []
- apiKeyQuery: []
tags:
- name: Signup
paths:
/signup:
post:
operationId: signup
summary: Create a free account and API key
description: Returns the key once. If the email already has an account, no key is returned; use /login. Optional signup purpose must be explicitly chosen, never inferred from the client. See /privacy for its use in account next steps, purchase records and grouped service counts.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
email:
type: string
format: email
signup_purpose:
type: string
enum:
- ''
- unknown
- spreadsheet
- api
- ai_agent
- exploring
description: 'Optional declared purpose: spreadsheet download, API, AI assistant, or exploring. Omitted, blank and unrecognised answers become unknown. Do not infer an answer.'
required:
- email
responses:
'200':
description: Key issued
content:
application/json:
schema:
type: object
properties:
email:
type: string
api_key:
type: string
plan:
type: string
signup_purpose:
type: string
enum:
- unknown
- spreadsheet
- api
- ai_agent
- exploring
account_url:
type: string
description: Relative account URL with validated continuation context; never contains the API key.
'409':
description: Account exists
tags:
- Signup
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: DataScoop API key from /signup
apiKeyQuery:
type: apiKey
in: query
name: api_key
externalDocs:
url: https://datascoop.io/docs
description: Docs