A style file close to the one you want is the named style, which is not compatible with natbib, however, and has nothing to do with apa specifications.
If you want to use it, add the following lines in the preamble
\makeatletter
\let\@internalcite\cite
\def\cite{\def\citeauthoryear##1##2{##1, ##2}\@internalcite}
\def\shortcite{\def\citeauthoryear##1##2{##2}\@internalcite}
\def\@biblabel#1{\def\citeauthoryear##1##2{##1, ##2}[#1]\hfill}
\makeatother
and then use
\bibliographystyle{named}
MWE:
\documentclass{article}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@Book{Batty:2007,
author = {Michael Batty},
title = {Cities and Complexity},
publisher = {MIT Press},
year = 2007}
\end{filecontents*}
\makeatletter
\let\@internalcite\cite
\def\cite{\def\citeauthoryear##1##2{##1, ##2}\@internalcite}
\def\shortcite{\def\citeauthoryear##1##2{##2}\@internalcite}
\def\@biblabel#1{\def\citeauthoryear##1##2{##1, ##2}[#1]\hfill}
\makeatother
\begin{document}
This a citation \cite{Batty:2007}
\bibliographystyle{named}
\bibliography{\jobname}
\end{document}
Output:

apastyle is like. See Verbal descriptions of bibliography styles for a description of the basic kinds of styles available. You might want to usebiblatexinstead, since it has lots more options in one package, and they are easier to customize. See also What to do to switch to biblatex? and bibtex vs. biber and biblatex vs. natbib – Alan Munn Aug 20 '15 at 20:23biblatexand found that it is not easier to use square brackets... it still requires a ton of code :( – Yan King Yin Nov 27 '17 at 05:06